1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package securityhub
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/securityhub/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	"math"
20	"strings"
21)
22
23type awsRestjson1_deserializeOpAcceptAdministratorInvitation struct {
24}
25
26func (*awsRestjson1_deserializeOpAcceptAdministratorInvitation) ID() string {
27	return "OperationDeserializer"
28}
29
30func (m *awsRestjson1_deserializeOpAcceptAdministratorInvitation) 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_deserializeOpErrorAcceptAdministratorInvitation(response, &metadata)
45	}
46	output := &AcceptAdministratorInvitationOutput{}
47	out.Result = output
48
49	return out, metadata, err
50}
51
52func awsRestjson1_deserializeOpErrorAcceptAdministratorInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error {
53	var errorBuffer bytes.Buffer
54	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
55		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
56	}
57	errorBody := bytes.NewReader(errorBuffer.Bytes())
58
59	errorCode := "UnknownError"
60	errorMessage := errorCode
61
62	code := response.Header.Get("X-Amzn-ErrorType")
63	if len(code) != 0 {
64		errorCode = restjson.SanitizeErrorCode(code)
65	}
66
67	var buff [1024]byte
68	ringBuffer := smithyio.NewRingBuffer(buff[:])
69
70	body := io.TeeReader(errorBody, ringBuffer)
71	decoder := json.NewDecoder(body)
72	decoder.UseNumber()
73	code, message, err := restjson.GetErrorInfo(decoder)
74	if err != nil {
75		var snapshot bytes.Buffer
76		io.Copy(&snapshot, ringBuffer)
77		err = &smithy.DeserializationError{
78			Err:      fmt.Errorf("failed to decode response body, %w", err),
79			Snapshot: snapshot.Bytes(),
80		}
81		return err
82	}
83
84	errorBody.Seek(0, io.SeekStart)
85	if len(code) != 0 {
86		errorCode = restjson.SanitizeErrorCode(code)
87	}
88	if len(message) != 0 {
89		errorMessage = message
90	}
91
92	switch {
93	case strings.EqualFold("InternalException", errorCode):
94		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
95
96	case strings.EqualFold("InvalidAccessException", errorCode):
97		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
98
99	case strings.EqualFold("InvalidInputException", errorCode):
100		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
101
102	case strings.EqualFold("LimitExceededException", errorCode):
103		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
104
105	case strings.EqualFold("ResourceNotFoundException", errorCode):
106		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
107
108	default:
109		genericError := &smithy.GenericAPIError{
110			Code:    errorCode,
111			Message: errorMessage,
112		}
113		return genericError
114
115	}
116}
117
118type awsRestjson1_deserializeOpAcceptInvitation struct {
119}
120
121func (*awsRestjson1_deserializeOpAcceptInvitation) ID() string {
122	return "OperationDeserializer"
123}
124
125func (m *awsRestjson1_deserializeOpAcceptInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
126	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
127) {
128	out, metadata, err = next.HandleDeserialize(ctx, in)
129	if err != nil {
130		return out, metadata, err
131	}
132
133	response, ok := out.RawResponse.(*smithyhttp.Response)
134	if !ok {
135		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
136	}
137
138	if response.StatusCode < 200 || response.StatusCode >= 300 {
139		return out, metadata, awsRestjson1_deserializeOpErrorAcceptInvitation(response, &metadata)
140	}
141	output := &AcceptInvitationOutput{}
142	out.Result = output
143
144	return out, metadata, err
145}
146
147func awsRestjson1_deserializeOpErrorAcceptInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error {
148	var errorBuffer bytes.Buffer
149	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
150		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
151	}
152	errorBody := bytes.NewReader(errorBuffer.Bytes())
153
154	errorCode := "UnknownError"
155	errorMessage := errorCode
156
157	code := response.Header.Get("X-Amzn-ErrorType")
158	if len(code) != 0 {
159		errorCode = restjson.SanitizeErrorCode(code)
160	}
161
162	var buff [1024]byte
163	ringBuffer := smithyio.NewRingBuffer(buff[:])
164
165	body := io.TeeReader(errorBody, ringBuffer)
166	decoder := json.NewDecoder(body)
167	decoder.UseNumber()
168	code, message, err := restjson.GetErrorInfo(decoder)
169	if err != nil {
170		var snapshot bytes.Buffer
171		io.Copy(&snapshot, ringBuffer)
172		err = &smithy.DeserializationError{
173			Err:      fmt.Errorf("failed to decode response body, %w", err),
174			Snapshot: snapshot.Bytes(),
175		}
176		return err
177	}
178
179	errorBody.Seek(0, io.SeekStart)
180	if len(code) != 0 {
181		errorCode = restjson.SanitizeErrorCode(code)
182	}
183	if len(message) != 0 {
184		errorMessage = message
185	}
186
187	switch {
188	case strings.EqualFold("InternalException", errorCode):
189		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
190
191	case strings.EqualFold("InvalidAccessException", errorCode):
192		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
193
194	case strings.EqualFold("InvalidInputException", errorCode):
195		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
196
197	case strings.EqualFold("LimitExceededException", errorCode):
198		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
199
200	case strings.EqualFold("ResourceNotFoundException", errorCode):
201		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
202
203	default:
204		genericError := &smithy.GenericAPIError{
205			Code:    errorCode,
206			Message: errorMessage,
207		}
208		return genericError
209
210	}
211}
212
213type awsRestjson1_deserializeOpBatchDisableStandards struct {
214}
215
216func (*awsRestjson1_deserializeOpBatchDisableStandards) ID() string {
217	return "OperationDeserializer"
218}
219
220func (m *awsRestjson1_deserializeOpBatchDisableStandards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
221	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
222) {
223	out, metadata, err = next.HandleDeserialize(ctx, in)
224	if err != nil {
225		return out, metadata, err
226	}
227
228	response, ok := out.RawResponse.(*smithyhttp.Response)
229	if !ok {
230		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
231	}
232
233	if response.StatusCode < 200 || response.StatusCode >= 300 {
234		return out, metadata, awsRestjson1_deserializeOpErrorBatchDisableStandards(response, &metadata)
235	}
236	output := &BatchDisableStandardsOutput{}
237	out.Result = output
238
239	var buff [1024]byte
240	ringBuffer := smithyio.NewRingBuffer(buff[:])
241
242	body := io.TeeReader(response.Body, ringBuffer)
243
244	decoder := json.NewDecoder(body)
245	decoder.UseNumber()
246	var shape interface{}
247	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
248		var snapshot bytes.Buffer
249		io.Copy(&snapshot, ringBuffer)
250		err = &smithy.DeserializationError{
251			Err:      fmt.Errorf("failed to decode response body, %w", err),
252			Snapshot: snapshot.Bytes(),
253		}
254		return out, metadata, err
255	}
256
257	err = awsRestjson1_deserializeOpDocumentBatchDisableStandardsOutput(&output, shape)
258	if err != nil {
259		var snapshot bytes.Buffer
260		io.Copy(&snapshot, ringBuffer)
261		return out, metadata, &smithy.DeserializationError{
262			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
263			Snapshot: snapshot.Bytes(),
264		}
265	}
266
267	return out, metadata, err
268}
269
270func awsRestjson1_deserializeOpErrorBatchDisableStandards(response *smithyhttp.Response, metadata *middleware.Metadata) error {
271	var errorBuffer bytes.Buffer
272	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
273		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
274	}
275	errorBody := bytes.NewReader(errorBuffer.Bytes())
276
277	errorCode := "UnknownError"
278	errorMessage := errorCode
279
280	code := response.Header.Get("X-Amzn-ErrorType")
281	if len(code) != 0 {
282		errorCode = restjson.SanitizeErrorCode(code)
283	}
284
285	var buff [1024]byte
286	ringBuffer := smithyio.NewRingBuffer(buff[:])
287
288	body := io.TeeReader(errorBody, ringBuffer)
289	decoder := json.NewDecoder(body)
290	decoder.UseNumber()
291	code, message, err := restjson.GetErrorInfo(decoder)
292	if err != nil {
293		var snapshot bytes.Buffer
294		io.Copy(&snapshot, ringBuffer)
295		err = &smithy.DeserializationError{
296			Err:      fmt.Errorf("failed to decode response body, %w", err),
297			Snapshot: snapshot.Bytes(),
298		}
299		return err
300	}
301
302	errorBody.Seek(0, io.SeekStart)
303	if len(code) != 0 {
304		errorCode = restjson.SanitizeErrorCode(code)
305	}
306	if len(message) != 0 {
307		errorMessage = message
308	}
309
310	switch {
311	case strings.EqualFold("InternalException", errorCode):
312		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
313
314	case strings.EqualFold("InvalidAccessException", errorCode):
315		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
316
317	case strings.EqualFold("InvalidInputException", errorCode):
318		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
319
320	case strings.EqualFold("LimitExceededException", errorCode):
321		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
322
323	default:
324		genericError := &smithy.GenericAPIError{
325			Code:    errorCode,
326			Message: errorMessage,
327		}
328		return genericError
329
330	}
331}
332
333func awsRestjson1_deserializeOpDocumentBatchDisableStandardsOutput(v **BatchDisableStandardsOutput, value interface{}) error {
334	if v == nil {
335		return fmt.Errorf("unexpected nil of type %T", v)
336	}
337	if value == nil {
338		return nil
339	}
340
341	shape, ok := value.(map[string]interface{})
342	if !ok {
343		return fmt.Errorf("unexpected JSON type %v", value)
344	}
345
346	var sv *BatchDisableStandardsOutput
347	if *v == nil {
348		sv = &BatchDisableStandardsOutput{}
349	} else {
350		sv = *v
351	}
352
353	for key, value := range shape {
354		switch key {
355		case "StandardsSubscriptions":
356			if err := awsRestjson1_deserializeDocumentStandardsSubscriptions(&sv.StandardsSubscriptions, value); err != nil {
357				return err
358			}
359
360		default:
361			_, _ = key, value
362
363		}
364	}
365	*v = sv
366	return nil
367}
368
369type awsRestjson1_deserializeOpBatchEnableStandards struct {
370}
371
372func (*awsRestjson1_deserializeOpBatchEnableStandards) ID() string {
373	return "OperationDeserializer"
374}
375
376func (m *awsRestjson1_deserializeOpBatchEnableStandards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
377	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
378) {
379	out, metadata, err = next.HandleDeserialize(ctx, in)
380	if err != nil {
381		return out, metadata, err
382	}
383
384	response, ok := out.RawResponse.(*smithyhttp.Response)
385	if !ok {
386		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
387	}
388
389	if response.StatusCode < 200 || response.StatusCode >= 300 {
390		return out, metadata, awsRestjson1_deserializeOpErrorBatchEnableStandards(response, &metadata)
391	}
392	output := &BatchEnableStandardsOutput{}
393	out.Result = output
394
395	var buff [1024]byte
396	ringBuffer := smithyio.NewRingBuffer(buff[:])
397
398	body := io.TeeReader(response.Body, ringBuffer)
399
400	decoder := json.NewDecoder(body)
401	decoder.UseNumber()
402	var shape interface{}
403	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
404		var snapshot bytes.Buffer
405		io.Copy(&snapshot, ringBuffer)
406		err = &smithy.DeserializationError{
407			Err:      fmt.Errorf("failed to decode response body, %w", err),
408			Snapshot: snapshot.Bytes(),
409		}
410		return out, metadata, err
411	}
412
413	err = awsRestjson1_deserializeOpDocumentBatchEnableStandardsOutput(&output, shape)
414	if err != nil {
415		var snapshot bytes.Buffer
416		io.Copy(&snapshot, ringBuffer)
417		return out, metadata, &smithy.DeserializationError{
418			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
419			Snapshot: snapshot.Bytes(),
420		}
421	}
422
423	return out, metadata, err
424}
425
426func awsRestjson1_deserializeOpErrorBatchEnableStandards(response *smithyhttp.Response, metadata *middleware.Metadata) error {
427	var errorBuffer bytes.Buffer
428	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
429		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
430	}
431	errorBody := bytes.NewReader(errorBuffer.Bytes())
432
433	errorCode := "UnknownError"
434	errorMessage := errorCode
435
436	code := response.Header.Get("X-Amzn-ErrorType")
437	if len(code) != 0 {
438		errorCode = restjson.SanitizeErrorCode(code)
439	}
440
441	var buff [1024]byte
442	ringBuffer := smithyio.NewRingBuffer(buff[:])
443
444	body := io.TeeReader(errorBody, ringBuffer)
445	decoder := json.NewDecoder(body)
446	decoder.UseNumber()
447	code, message, err := restjson.GetErrorInfo(decoder)
448	if err != nil {
449		var snapshot bytes.Buffer
450		io.Copy(&snapshot, ringBuffer)
451		err = &smithy.DeserializationError{
452			Err:      fmt.Errorf("failed to decode response body, %w", err),
453			Snapshot: snapshot.Bytes(),
454		}
455		return err
456	}
457
458	errorBody.Seek(0, io.SeekStart)
459	if len(code) != 0 {
460		errorCode = restjson.SanitizeErrorCode(code)
461	}
462	if len(message) != 0 {
463		errorMessage = message
464	}
465
466	switch {
467	case strings.EqualFold("InternalException", errorCode):
468		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
469
470	case strings.EqualFold("InvalidAccessException", errorCode):
471		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
472
473	case strings.EqualFold("InvalidInputException", errorCode):
474		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
475
476	case strings.EqualFold("LimitExceededException", errorCode):
477		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
478
479	default:
480		genericError := &smithy.GenericAPIError{
481			Code:    errorCode,
482			Message: errorMessage,
483		}
484		return genericError
485
486	}
487}
488
489func awsRestjson1_deserializeOpDocumentBatchEnableStandardsOutput(v **BatchEnableStandardsOutput, value interface{}) error {
490	if v == nil {
491		return fmt.Errorf("unexpected nil of type %T", v)
492	}
493	if value == nil {
494		return nil
495	}
496
497	shape, ok := value.(map[string]interface{})
498	if !ok {
499		return fmt.Errorf("unexpected JSON type %v", value)
500	}
501
502	var sv *BatchEnableStandardsOutput
503	if *v == nil {
504		sv = &BatchEnableStandardsOutput{}
505	} else {
506		sv = *v
507	}
508
509	for key, value := range shape {
510		switch key {
511		case "StandardsSubscriptions":
512			if err := awsRestjson1_deserializeDocumentStandardsSubscriptions(&sv.StandardsSubscriptions, value); err != nil {
513				return err
514			}
515
516		default:
517			_, _ = key, value
518
519		}
520	}
521	*v = sv
522	return nil
523}
524
525type awsRestjson1_deserializeOpBatchImportFindings struct {
526}
527
528func (*awsRestjson1_deserializeOpBatchImportFindings) ID() string {
529	return "OperationDeserializer"
530}
531
532func (m *awsRestjson1_deserializeOpBatchImportFindings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
533	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
534) {
535	out, metadata, err = next.HandleDeserialize(ctx, in)
536	if err != nil {
537		return out, metadata, err
538	}
539
540	response, ok := out.RawResponse.(*smithyhttp.Response)
541	if !ok {
542		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
543	}
544
545	if response.StatusCode < 200 || response.StatusCode >= 300 {
546		return out, metadata, awsRestjson1_deserializeOpErrorBatchImportFindings(response, &metadata)
547	}
548	output := &BatchImportFindingsOutput{}
549	out.Result = output
550
551	var buff [1024]byte
552	ringBuffer := smithyio.NewRingBuffer(buff[:])
553
554	body := io.TeeReader(response.Body, ringBuffer)
555
556	decoder := json.NewDecoder(body)
557	decoder.UseNumber()
558	var shape interface{}
559	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
560		var snapshot bytes.Buffer
561		io.Copy(&snapshot, ringBuffer)
562		err = &smithy.DeserializationError{
563			Err:      fmt.Errorf("failed to decode response body, %w", err),
564			Snapshot: snapshot.Bytes(),
565		}
566		return out, metadata, err
567	}
568
569	err = awsRestjson1_deserializeOpDocumentBatchImportFindingsOutput(&output, shape)
570	if err != nil {
571		var snapshot bytes.Buffer
572		io.Copy(&snapshot, ringBuffer)
573		return out, metadata, &smithy.DeserializationError{
574			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
575			Snapshot: snapshot.Bytes(),
576		}
577	}
578
579	return out, metadata, err
580}
581
582func awsRestjson1_deserializeOpErrorBatchImportFindings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
583	var errorBuffer bytes.Buffer
584	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
585		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
586	}
587	errorBody := bytes.NewReader(errorBuffer.Bytes())
588
589	errorCode := "UnknownError"
590	errorMessage := errorCode
591
592	code := response.Header.Get("X-Amzn-ErrorType")
593	if len(code) != 0 {
594		errorCode = restjson.SanitizeErrorCode(code)
595	}
596
597	var buff [1024]byte
598	ringBuffer := smithyio.NewRingBuffer(buff[:])
599
600	body := io.TeeReader(errorBody, ringBuffer)
601	decoder := json.NewDecoder(body)
602	decoder.UseNumber()
603	code, message, err := restjson.GetErrorInfo(decoder)
604	if err != nil {
605		var snapshot bytes.Buffer
606		io.Copy(&snapshot, ringBuffer)
607		err = &smithy.DeserializationError{
608			Err:      fmt.Errorf("failed to decode response body, %w", err),
609			Snapshot: snapshot.Bytes(),
610		}
611		return err
612	}
613
614	errorBody.Seek(0, io.SeekStart)
615	if len(code) != 0 {
616		errorCode = restjson.SanitizeErrorCode(code)
617	}
618	if len(message) != 0 {
619		errorMessage = message
620	}
621
622	switch {
623	case strings.EqualFold("InternalException", errorCode):
624		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
625
626	case strings.EqualFold("InvalidAccessException", errorCode):
627		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
628
629	case strings.EqualFold("InvalidInputException", errorCode):
630		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
631
632	case strings.EqualFold("LimitExceededException", errorCode):
633		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
634
635	default:
636		genericError := &smithy.GenericAPIError{
637			Code:    errorCode,
638			Message: errorMessage,
639		}
640		return genericError
641
642	}
643}
644
645func awsRestjson1_deserializeOpDocumentBatchImportFindingsOutput(v **BatchImportFindingsOutput, value interface{}) error {
646	if v == nil {
647		return fmt.Errorf("unexpected nil of type %T", v)
648	}
649	if value == nil {
650		return nil
651	}
652
653	shape, ok := value.(map[string]interface{})
654	if !ok {
655		return fmt.Errorf("unexpected JSON type %v", value)
656	}
657
658	var sv *BatchImportFindingsOutput
659	if *v == nil {
660		sv = &BatchImportFindingsOutput{}
661	} else {
662		sv = *v
663	}
664
665	for key, value := range shape {
666		switch key {
667		case "FailedCount":
668			if value != nil {
669				jtv, ok := value.(json.Number)
670				if !ok {
671					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
672				}
673				i64, err := jtv.Int64()
674				if err != nil {
675					return err
676				}
677				sv.FailedCount = int32(i64)
678			}
679
680		case "FailedFindings":
681			if err := awsRestjson1_deserializeDocumentImportFindingsErrorList(&sv.FailedFindings, value); err != nil {
682				return err
683			}
684
685		case "SuccessCount":
686			if value != nil {
687				jtv, ok := value.(json.Number)
688				if !ok {
689					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
690				}
691				i64, err := jtv.Int64()
692				if err != nil {
693					return err
694				}
695				sv.SuccessCount = int32(i64)
696			}
697
698		default:
699			_, _ = key, value
700
701		}
702	}
703	*v = sv
704	return nil
705}
706
707type awsRestjson1_deserializeOpBatchUpdateFindings struct {
708}
709
710func (*awsRestjson1_deserializeOpBatchUpdateFindings) ID() string {
711	return "OperationDeserializer"
712}
713
714func (m *awsRestjson1_deserializeOpBatchUpdateFindings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
715	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
716) {
717	out, metadata, err = next.HandleDeserialize(ctx, in)
718	if err != nil {
719		return out, metadata, err
720	}
721
722	response, ok := out.RawResponse.(*smithyhttp.Response)
723	if !ok {
724		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
725	}
726
727	if response.StatusCode < 200 || response.StatusCode >= 300 {
728		return out, metadata, awsRestjson1_deserializeOpErrorBatchUpdateFindings(response, &metadata)
729	}
730	output := &BatchUpdateFindingsOutput{}
731	out.Result = output
732
733	var buff [1024]byte
734	ringBuffer := smithyio.NewRingBuffer(buff[:])
735
736	body := io.TeeReader(response.Body, ringBuffer)
737
738	decoder := json.NewDecoder(body)
739	decoder.UseNumber()
740	var shape interface{}
741	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
742		var snapshot bytes.Buffer
743		io.Copy(&snapshot, ringBuffer)
744		err = &smithy.DeserializationError{
745			Err:      fmt.Errorf("failed to decode response body, %w", err),
746			Snapshot: snapshot.Bytes(),
747		}
748		return out, metadata, err
749	}
750
751	err = awsRestjson1_deserializeOpDocumentBatchUpdateFindingsOutput(&output, shape)
752	if err != nil {
753		var snapshot bytes.Buffer
754		io.Copy(&snapshot, ringBuffer)
755		return out, metadata, &smithy.DeserializationError{
756			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
757			Snapshot: snapshot.Bytes(),
758		}
759	}
760
761	return out, metadata, err
762}
763
764func awsRestjson1_deserializeOpErrorBatchUpdateFindings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
765	var errorBuffer bytes.Buffer
766	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
767		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
768	}
769	errorBody := bytes.NewReader(errorBuffer.Bytes())
770
771	errorCode := "UnknownError"
772	errorMessage := errorCode
773
774	code := response.Header.Get("X-Amzn-ErrorType")
775	if len(code) != 0 {
776		errorCode = restjson.SanitizeErrorCode(code)
777	}
778
779	var buff [1024]byte
780	ringBuffer := smithyio.NewRingBuffer(buff[:])
781
782	body := io.TeeReader(errorBody, ringBuffer)
783	decoder := json.NewDecoder(body)
784	decoder.UseNumber()
785	code, message, err := restjson.GetErrorInfo(decoder)
786	if err != nil {
787		var snapshot bytes.Buffer
788		io.Copy(&snapshot, ringBuffer)
789		err = &smithy.DeserializationError{
790			Err:      fmt.Errorf("failed to decode response body, %w", err),
791			Snapshot: snapshot.Bytes(),
792		}
793		return err
794	}
795
796	errorBody.Seek(0, io.SeekStart)
797	if len(code) != 0 {
798		errorCode = restjson.SanitizeErrorCode(code)
799	}
800	if len(message) != 0 {
801		errorMessage = message
802	}
803
804	switch {
805	case strings.EqualFold("InternalException", errorCode):
806		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
807
808	case strings.EqualFold("InvalidAccessException", errorCode):
809		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
810
811	case strings.EqualFold("InvalidInputException", errorCode):
812		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
813
814	case strings.EqualFold("LimitExceededException", errorCode):
815		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
816
817	default:
818		genericError := &smithy.GenericAPIError{
819			Code:    errorCode,
820			Message: errorMessage,
821		}
822		return genericError
823
824	}
825}
826
827func awsRestjson1_deserializeOpDocumentBatchUpdateFindingsOutput(v **BatchUpdateFindingsOutput, value interface{}) error {
828	if v == nil {
829		return fmt.Errorf("unexpected nil of type %T", v)
830	}
831	if value == nil {
832		return nil
833	}
834
835	shape, ok := value.(map[string]interface{})
836	if !ok {
837		return fmt.Errorf("unexpected JSON type %v", value)
838	}
839
840	var sv *BatchUpdateFindingsOutput
841	if *v == nil {
842		sv = &BatchUpdateFindingsOutput{}
843	} else {
844		sv = *v
845	}
846
847	for key, value := range shape {
848		switch key {
849		case "ProcessedFindings":
850			if err := awsRestjson1_deserializeDocumentAwsSecurityFindingIdentifierList(&sv.ProcessedFindings, value); err != nil {
851				return err
852			}
853
854		case "UnprocessedFindings":
855			if err := awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFindingsList(&sv.UnprocessedFindings, value); err != nil {
856				return err
857			}
858
859		default:
860			_, _ = key, value
861
862		}
863	}
864	*v = sv
865	return nil
866}
867
868type awsRestjson1_deserializeOpCreateActionTarget struct {
869}
870
871func (*awsRestjson1_deserializeOpCreateActionTarget) ID() string {
872	return "OperationDeserializer"
873}
874
875func (m *awsRestjson1_deserializeOpCreateActionTarget) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
876	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
877) {
878	out, metadata, err = next.HandleDeserialize(ctx, in)
879	if err != nil {
880		return out, metadata, err
881	}
882
883	response, ok := out.RawResponse.(*smithyhttp.Response)
884	if !ok {
885		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
886	}
887
888	if response.StatusCode < 200 || response.StatusCode >= 300 {
889		return out, metadata, awsRestjson1_deserializeOpErrorCreateActionTarget(response, &metadata)
890	}
891	output := &CreateActionTargetOutput{}
892	out.Result = output
893
894	var buff [1024]byte
895	ringBuffer := smithyio.NewRingBuffer(buff[:])
896
897	body := io.TeeReader(response.Body, ringBuffer)
898
899	decoder := json.NewDecoder(body)
900	decoder.UseNumber()
901	var shape interface{}
902	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
903		var snapshot bytes.Buffer
904		io.Copy(&snapshot, ringBuffer)
905		err = &smithy.DeserializationError{
906			Err:      fmt.Errorf("failed to decode response body, %w", err),
907			Snapshot: snapshot.Bytes(),
908		}
909		return out, metadata, err
910	}
911
912	err = awsRestjson1_deserializeOpDocumentCreateActionTargetOutput(&output, shape)
913	if err != nil {
914		var snapshot bytes.Buffer
915		io.Copy(&snapshot, ringBuffer)
916		return out, metadata, &smithy.DeserializationError{
917			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
918			Snapshot: snapshot.Bytes(),
919		}
920	}
921
922	return out, metadata, err
923}
924
925func awsRestjson1_deserializeOpErrorCreateActionTarget(response *smithyhttp.Response, metadata *middleware.Metadata) error {
926	var errorBuffer bytes.Buffer
927	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
928		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
929	}
930	errorBody := bytes.NewReader(errorBuffer.Bytes())
931
932	errorCode := "UnknownError"
933	errorMessage := errorCode
934
935	code := response.Header.Get("X-Amzn-ErrorType")
936	if len(code) != 0 {
937		errorCode = restjson.SanitizeErrorCode(code)
938	}
939
940	var buff [1024]byte
941	ringBuffer := smithyio.NewRingBuffer(buff[:])
942
943	body := io.TeeReader(errorBody, ringBuffer)
944	decoder := json.NewDecoder(body)
945	decoder.UseNumber()
946	code, message, err := restjson.GetErrorInfo(decoder)
947	if err != nil {
948		var snapshot bytes.Buffer
949		io.Copy(&snapshot, ringBuffer)
950		err = &smithy.DeserializationError{
951			Err:      fmt.Errorf("failed to decode response body, %w", err),
952			Snapshot: snapshot.Bytes(),
953		}
954		return err
955	}
956
957	errorBody.Seek(0, io.SeekStart)
958	if len(code) != 0 {
959		errorCode = restjson.SanitizeErrorCode(code)
960	}
961	if len(message) != 0 {
962		errorMessage = message
963	}
964
965	switch {
966	case strings.EqualFold("InternalException", errorCode):
967		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
968
969	case strings.EqualFold("InvalidAccessException", errorCode):
970		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
971
972	case strings.EqualFold("InvalidInputException", errorCode):
973		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
974
975	case strings.EqualFold("LimitExceededException", errorCode):
976		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
977
978	case strings.EqualFold("ResourceConflictException", errorCode):
979		return awsRestjson1_deserializeErrorResourceConflictException(response, errorBody)
980
981	default:
982		genericError := &smithy.GenericAPIError{
983			Code:    errorCode,
984			Message: errorMessage,
985		}
986		return genericError
987
988	}
989}
990
991func awsRestjson1_deserializeOpDocumentCreateActionTargetOutput(v **CreateActionTargetOutput, value interface{}) error {
992	if v == nil {
993		return fmt.Errorf("unexpected nil of type %T", v)
994	}
995	if value == nil {
996		return nil
997	}
998
999	shape, ok := value.(map[string]interface{})
1000	if !ok {
1001		return fmt.Errorf("unexpected JSON type %v", value)
1002	}
1003
1004	var sv *CreateActionTargetOutput
1005	if *v == nil {
1006		sv = &CreateActionTargetOutput{}
1007	} else {
1008		sv = *v
1009	}
1010
1011	for key, value := range shape {
1012		switch key {
1013		case "ActionTargetArn":
1014			if value != nil {
1015				jtv, ok := value.(string)
1016				if !ok {
1017					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
1018				}
1019				sv.ActionTargetArn = ptr.String(jtv)
1020			}
1021
1022		default:
1023			_, _ = key, value
1024
1025		}
1026	}
1027	*v = sv
1028	return nil
1029}
1030
1031type awsRestjson1_deserializeOpCreateInsight struct {
1032}
1033
1034func (*awsRestjson1_deserializeOpCreateInsight) ID() string {
1035	return "OperationDeserializer"
1036}
1037
1038func (m *awsRestjson1_deserializeOpCreateInsight) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1039	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1040) {
1041	out, metadata, err = next.HandleDeserialize(ctx, in)
1042	if err != nil {
1043		return out, metadata, err
1044	}
1045
1046	response, ok := out.RawResponse.(*smithyhttp.Response)
1047	if !ok {
1048		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1049	}
1050
1051	if response.StatusCode < 200 || response.StatusCode >= 300 {
1052		return out, metadata, awsRestjson1_deserializeOpErrorCreateInsight(response, &metadata)
1053	}
1054	output := &CreateInsightOutput{}
1055	out.Result = output
1056
1057	var buff [1024]byte
1058	ringBuffer := smithyio.NewRingBuffer(buff[:])
1059
1060	body := io.TeeReader(response.Body, ringBuffer)
1061
1062	decoder := json.NewDecoder(body)
1063	decoder.UseNumber()
1064	var shape interface{}
1065	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1066		var snapshot bytes.Buffer
1067		io.Copy(&snapshot, ringBuffer)
1068		err = &smithy.DeserializationError{
1069			Err:      fmt.Errorf("failed to decode response body, %w", err),
1070			Snapshot: snapshot.Bytes(),
1071		}
1072		return out, metadata, err
1073	}
1074
1075	err = awsRestjson1_deserializeOpDocumentCreateInsightOutput(&output, shape)
1076	if err != nil {
1077		var snapshot bytes.Buffer
1078		io.Copy(&snapshot, ringBuffer)
1079		return out, metadata, &smithy.DeserializationError{
1080			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1081			Snapshot: snapshot.Bytes(),
1082		}
1083	}
1084
1085	return out, metadata, err
1086}
1087
1088func awsRestjson1_deserializeOpErrorCreateInsight(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1089	var errorBuffer bytes.Buffer
1090	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1091		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1092	}
1093	errorBody := bytes.NewReader(errorBuffer.Bytes())
1094
1095	errorCode := "UnknownError"
1096	errorMessage := errorCode
1097
1098	code := response.Header.Get("X-Amzn-ErrorType")
1099	if len(code) != 0 {
1100		errorCode = restjson.SanitizeErrorCode(code)
1101	}
1102
1103	var buff [1024]byte
1104	ringBuffer := smithyio.NewRingBuffer(buff[:])
1105
1106	body := io.TeeReader(errorBody, ringBuffer)
1107	decoder := json.NewDecoder(body)
1108	decoder.UseNumber()
1109	code, message, err := restjson.GetErrorInfo(decoder)
1110	if err != nil {
1111		var snapshot bytes.Buffer
1112		io.Copy(&snapshot, ringBuffer)
1113		err = &smithy.DeserializationError{
1114			Err:      fmt.Errorf("failed to decode response body, %w", err),
1115			Snapshot: snapshot.Bytes(),
1116		}
1117		return err
1118	}
1119
1120	errorBody.Seek(0, io.SeekStart)
1121	if len(code) != 0 {
1122		errorCode = restjson.SanitizeErrorCode(code)
1123	}
1124	if len(message) != 0 {
1125		errorMessage = message
1126	}
1127
1128	switch {
1129	case strings.EqualFold("InternalException", errorCode):
1130		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1131
1132	case strings.EqualFold("InvalidAccessException", errorCode):
1133		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1134
1135	case strings.EqualFold("InvalidInputException", errorCode):
1136		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1137
1138	case strings.EqualFold("LimitExceededException", errorCode):
1139		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
1140
1141	case strings.EqualFold("ResourceConflictException", errorCode):
1142		return awsRestjson1_deserializeErrorResourceConflictException(response, errorBody)
1143
1144	default:
1145		genericError := &smithy.GenericAPIError{
1146			Code:    errorCode,
1147			Message: errorMessage,
1148		}
1149		return genericError
1150
1151	}
1152}
1153
1154func awsRestjson1_deserializeOpDocumentCreateInsightOutput(v **CreateInsightOutput, value interface{}) error {
1155	if v == nil {
1156		return fmt.Errorf("unexpected nil of type %T", v)
1157	}
1158	if value == nil {
1159		return nil
1160	}
1161
1162	shape, ok := value.(map[string]interface{})
1163	if !ok {
1164		return fmt.Errorf("unexpected JSON type %v", value)
1165	}
1166
1167	var sv *CreateInsightOutput
1168	if *v == nil {
1169		sv = &CreateInsightOutput{}
1170	} else {
1171		sv = *v
1172	}
1173
1174	for key, value := range shape {
1175		switch key {
1176		case "InsightArn":
1177			if value != nil {
1178				jtv, ok := value.(string)
1179				if !ok {
1180					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
1181				}
1182				sv.InsightArn = ptr.String(jtv)
1183			}
1184
1185		default:
1186			_, _ = key, value
1187
1188		}
1189	}
1190	*v = sv
1191	return nil
1192}
1193
1194type awsRestjson1_deserializeOpCreateMembers struct {
1195}
1196
1197func (*awsRestjson1_deserializeOpCreateMembers) ID() string {
1198	return "OperationDeserializer"
1199}
1200
1201func (m *awsRestjson1_deserializeOpCreateMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1202	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1203) {
1204	out, metadata, err = next.HandleDeserialize(ctx, in)
1205	if err != nil {
1206		return out, metadata, err
1207	}
1208
1209	response, ok := out.RawResponse.(*smithyhttp.Response)
1210	if !ok {
1211		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1212	}
1213
1214	if response.StatusCode < 200 || response.StatusCode >= 300 {
1215		return out, metadata, awsRestjson1_deserializeOpErrorCreateMembers(response, &metadata)
1216	}
1217	output := &CreateMembersOutput{}
1218	out.Result = output
1219
1220	var buff [1024]byte
1221	ringBuffer := smithyio.NewRingBuffer(buff[:])
1222
1223	body := io.TeeReader(response.Body, ringBuffer)
1224
1225	decoder := json.NewDecoder(body)
1226	decoder.UseNumber()
1227	var shape interface{}
1228	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1229		var snapshot bytes.Buffer
1230		io.Copy(&snapshot, ringBuffer)
1231		err = &smithy.DeserializationError{
1232			Err:      fmt.Errorf("failed to decode response body, %w", err),
1233			Snapshot: snapshot.Bytes(),
1234		}
1235		return out, metadata, err
1236	}
1237
1238	err = awsRestjson1_deserializeOpDocumentCreateMembersOutput(&output, shape)
1239	if err != nil {
1240		var snapshot bytes.Buffer
1241		io.Copy(&snapshot, ringBuffer)
1242		return out, metadata, &smithy.DeserializationError{
1243			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1244			Snapshot: snapshot.Bytes(),
1245		}
1246	}
1247
1248	return out, metadata, err
1249}
1250
1251func awsRestjson1_deserializeOpErrorCreateMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1252	var errorBuffer bytes.Buffer
1253	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1254		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1255	}
1256	errorBody := bytes.NewReader(errorBuffer.Bytes())
1257
1258	errorCode := "UnknownError"
1259	errorMessage := errorCode
1260
1261	code := response.Header.Get("X-Amzn-ErrorType")
1262	if len(code) != 0 {
1263		errorCode = restjson.SanitizeErrorCode(code)
1264	}
1265
1266	var buff [1024]byte
1267	ringBuffer := smithyio.NewRingBuffer(buff[:])
1268
1269	body := io.TeeReader(errorBody, ringBuffer)
1270	decoder := json.NewDecoder(body)
1271	decoder.UseNumber()
1272	code, message, err := restjson.GetErrorInfo(decoder)
1273	if err != nil {
1274		var snapshot bytes.Buffer
1275		io.Copy(&snapshot, ringBuffer)
1276		err = &smithy.DeserializationError{
1277			Err:      fmt.Errorf("failed to decode response body, %w", err),
1278			Snapshot: snapshot.Bytes(),
1279		}
1280		return err
1281	}
1282
1283	errorBody.Seek(0, io.SeekStart)
1284	if len(code) != 0 {
1285		errorCode = restjson.SanitizeErrorCode(code)
1286	}
1287	if len(message) != 0 {
1288		errorMessage = message
1289	}
1290
1291	switch {
1292	case strings.EqualFold("InternalException", errorCode):
1293		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1294
1295	case strings.EqualFold("InvalidAccessException", errorCode):
1296		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1297
1298	case strings.EqualFold("InvalidInputException", errorCode):
1299		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1300
1301	case strings.EqualFold("LimitExceededException", errorCode):
1302		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
1303
1304	case strings.EqualFold("ResourceConflictException", errorCode):
1305		return awsRestjson1_deserializeErrorResourceConflictException(response, errorBody)
1306
1307	default:
1308		genericError := &smithy.GenericAPIError{
1309			Code:    errorCode,
1310			Message: errorMessage,
1311		}
1312		return genericError
1313
1314	}
1315}
1316
1317func awsRestjson1_deserializeOpDocumentCreateMembersOutput(v **CreateMembersOutput, value interface{}) error {
1318	if v == nil {
1319		return fmt.Errorf("unexpected nil of type %T", v)
1320	}
1321	if value == nil {
1322		return nil
1323	}
1324
1325	shape, ok := value.(map[string]interface{})
1326	if !ok {
1327		return fmt.Errorf("unexpected JSON type %v", value)
1328	}
1329
1330	var sv *CreateMembersOutput
1331	if *v == nil {
1332		sv = &CreateMembersOutput{}
1333	} else {
1334		sv = *v
1335	}
1336
1337	for key, value := range shape {
1338		switch key {
1339		case "UnprocessedAccounts":
1340			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
1341				return err
1342			}
1343
1344		default:
1345			_, _ = key, value
1346
1347		}
1348	}
1349	*v = sv
1350	return nil
1351}
1352
1353type awsRestjson1_deserializeOpDeclineInvitations struct {
1354}
1355
1356func (*awsRestjson1_deserializeOpDeclineInvitations) ID() string {
1357	return "OperationDeserializer"
1358}
1359
1360func (m *awsRestjson1_deserializeOpDeclineInvitations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1361	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1362) {
1363	out, metadata, err = next.HandleDeserialize(ctx, in)
1364	if err != nil {
1365		return out, metadata, err
1366	}
1367
1368	response, ok := out.RawResponse.(*smithyhttp.Response)
1369	if !ok {
1370		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1371	}
1372
1373	if response.StatusCode < 200 || response.StatusCode >= 300 {
1374		return out, metadata, awsRestjson1_deserializeOpErrorDeclineInvitations(response, &metadata)
1375	}
1376	output := &DeclineInvitationsOutput{}
1377	out.Result = output
1378
1379	var buff [1024]byte
1380	ringBuffer := smithyio.NewRingBuffer(buff[:])
1381
1382	body := io.TeeReader(response.Body, ringBuffer)
1383
1384	decoder := json.NewDecoder(body)
1385	decoder.UseNumber()
1386	var shape interface{}
1387	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1388		var snapshot bytes.Buffer
1389		io.Copy(&snapshot, ringBuffer)
1390		err = &smithy.DeserializationError{
1391			Err:      fmt.Errorf("failed to decode response body, %w", err),
1392			Snapshot: snapshot.Bytes(),
1393		}
1394		return out, metadata, err
1395	}
1396
1397	err = awsRestjson1_deserializeOpDocumentDeclineInvitationsOutput(&output, shape)
1398	if err != nil {
1399		var snapshot bytes.Buffer
1400		io.Copy(&snapshot, ringBuffer)
1401		return out, metadata, &smithy.DeserializationError{
1402			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1403			Snapshot: snapshot.Bytes(),
1404		}
1405	}
1406
1407	return out, metadata, err
1408}
1409
1410func awsRestjson1_deserializeOpErrorDeclineInvitations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1411	var errorBuffer bytes.Buffer
1412	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1413		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1414	}
1415	errorBody := bytes.NewReader(errorBuffer.Bytes())
1416
1417	errorCode := "UnknownError"
1418	errorMessage := errorCode
1419
1420	code := response.Header.Get("X-Amzn-ErrorType")
1421	if len(code) != 0 {
1422		errorCode = restjson.SanitizeErrorCode(code)
1423	}
1424
1425	var buff [1024]byte
1426	ringBuffer := smithyio.NewRingBuffer(buff[:])
1427
1428	body := io.TeeReader(errorBody, ringBuffer)
1429	decoder := json.NewDecoder(body)
1430	decoder.UseNumber()
1431	code, message, err := restjson.GetErrorInfo(decoder)
1432	if err != nil {
1433		var snapshot bytes.Buffer
1434		io.Copy(&snapshot, ringBuffer)
1435		err = &smithy.DeserializationError{
1436			Err:      fmt.Errorf("failed to decode response body, %w", err),
1437			Snapshot: snapshot.Bytes(),
1438		}
1439		return err
1440	}
1441
1442	errorBody.Seek(0, io.SeekStart)
1443	if len(code) != 0 {
1444		errorCode = restjson.SanitizeErrorCode(code)
1445	}
1446	if len(message) != 0 {
1447		errorMessage = message
1448	}
1449
1450	switch {
1451	case strings.EqualFold("InternalException", errorCode):
1452		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1453
1454	case strings.EqualFold("InvalidAccessException", errorCode):
1455		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1456
1457	case strings.EqualFold("InvalidInputException", errorCode):
1458		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1459
1460	case strings.EqualFold("ResourceNotFoundException", errorCode):
1461		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
1462
1463	default:
1464		genericError := &smithy.GenericAPIError{
1465			Code:    errorCode,
1466			Message: errorMessage,
1467		}
1468		return genericError
1469
1470	}
1471}
1472
1473func awsRestjson1_deserializeOpDocumentDeclineInvitationsOutput(v **DeclineInvitationsOutput, value interface{}) error {
1474	if v == nil {
1475		return fmt.Errorf("unexpected nil of type %T", v)
1476	}
1477	if value == nil {
1478		return nil
1479	}
1480
1481	shape, ok := value.(map[string]interface{})
1482	if !ok {
1483		return fmt.Errorf("unexpected JSON type %v", value)
1484	}
1485
1486	var sv *DeclineInvitationsOutput
1487	if *v == nil {
1488		sv = &DeclineInvitationsOutput{}
1489	} else {
1490		sv = *v
1491	}
1492
1493	for key, value := range shape {
1494		switch key {
1495		case "UnprocessedAccounts":
1496			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
1497				return err
1498			}
1499
1500		default:
1501			_, _ = key, value
1502
1503		}
1504	}
1505	*v = sv
1506	return nil
1507}
1508
1509type awsRestjson1_deserializeOpDeleteActionTarget struct {
1510}
1511
1512func (*awsRestjson1_deserializeOpDeleteActionTarget) ID() string {
1513	return "OperationDeserializer"
1514}
1515
1516func (m *awsRestjson1_deserializeOpDeleteActionTarget) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1517	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1518) {
1519	out, metadata, err = next.HandleDeserialize(ctx, in)
1520	if err != nil {
1521		return out, metadata, err
1522	}
1523
1524	response, ok := out.RawResponse.(*smithyhttp.Response)
1525	if !ok {
1526		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1527	}
1528
1529	if response.StatusCode < 200 || response.StatusCode >= 300 {
1530		return out, metadata, awsRestjson1_deserializeOpErrorDeleteActionTarget(response, &metadata)
1531	}
1532	output := &DeleteActionTargetOutput{}
1533	out.Result = output
1534
1535	var buff [1024]byte
1536	ringBuffer := smithyio.NewRingBuffer(buff[:])
1537
1538	body := io.TeeReader(response.Body, ringBuffer)
1539
1540	decoder := json.NewDecoder(body)
1541	decoder.UseNumber()
1542	var shape interface{}
1543	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1544		var snapshot bytes.Buffer
1545		io.Copy(&snapshot, ringBuffer)
1546		err = &smithy.DeserializationError{
1547			Err:      fmt.Errorf("failed to decode response body, %w", err),
1548			Snapshot: snapshot.Bytes(),
1549		}
1550		return out, metadata, err
1551	}
1552
1553	err = awsRestjson1_deserializeOpDocumentDeleteActionTargetOutput(&output, shape)
1554	if err != nil {
1555		var snapshot bytes.Buffer
1556		io.Copy(&snapshot, ringBuffer)
1557		return out, metadata, &smithy.DeserializationError{
1558			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1559			Snapshot: snapshot.Bytes(),
1560		}
1561	}
1562
1563	return out, metadata, err
1564}
1565
1566func awsRestjson1_deserializeOpErrorDeleteActionTarget(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1567	var errorBuffer bytes.Buffer
1568	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1569		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1570	}
1571	errorBody := bytes.NewReader(errorBuffer.Bytes())
1572
1573	errorCode := "UnknownError"
1574	errorMessage := errorCode
1575
1576	code := response.Header.Get("X-Amzn-ErrorType")
1577	if len(code) != 0 {
1578		errorCode = restjson.SanitizeErrorCode(code)
1579	}
1580
1581	var buff [1024]byte
1582	ringBuffer := smithyio.NewRingBuffer(buff[:])
1583
1584	body := io.TeeReader(errorBody, ringBuffer)
1585	decoder := json.NewDecoder(body)
1586	decoder.UseNumber()
1587	code, message, err := restjson.GetErrorInfo(decoder)
1588	if err != nil {
1589		var snapshot bytes.Buffer
1590		io.Copy(&snapshot, ringBuffer)
1591		err = &smithy.DeserializationError{
1592			Err:      fmt.Errorf("failed to decode response body, %w", err),
1593			Snapshot: snapshot.Bytes(),
1594		}
1595		return err
1596	}
1597
1598	errorBody.Seek(0, io.SeekStart)
1599	if len(code) != 0 {
1600		errorCode = restjson.SanitizeErrorCode(code)
1601	}
1602	if len(message) != 0 {
1603		errorMessage = message
1604	}
1605
1606	switch {
1607	case strings.EqualFold("InternalException", errorCode):
1608		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1609
1610	case strings.EqualFold("InvalidAccessException", errorCode):
1611		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1612
1613	case strings.EqualFold("InvalidInputException", errorCode):
1614		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1615
1616	case strings.EqualFold("ResourceNotFoundException", errorCode):
1617		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
1618
1619	default:
1620		genericError := &smithy.GenericAPIError{
1621			Code:    errorCode,
1622			Message: errorMessage,
1623		}
1624		return genericError
1625
1626	}
1627}
1628
1629func awsRestjson1_deserializeOpDocumentDeleteActionTargetOutput(v **DeleteActionTargetOutput, value interface{}) error {
1630	if v == nil {
1631		return fmt.Errorf("unexpected nil of type %T", v)
1632	}
1633	if value == nil {
1634		return nil
1635	}
1636
1637	shape, ok := value.(map[string]interface{})
1638	if !ok {
1639		return fmt.Errorf("unexpected JSON type %v", value)
1640	}
1641
1642	var sv *DeleteActionTargetOutput
1643	if *v == nil {
1644		sv = &DeleteActionTargetOutput{}
1645	} else {
1646		sv = *v
1647	}
1648
1649	for key, value := range shape {
1650		switch key {
1651		case "ActionTargetArn":
1652			if value != nil {
1653				jtv, ok := value.(string)
1654				if !ok {
1655					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
1656				}
1657				sv.ActionTargetArn = ptr.String(jtv)
1658			}
1659
1660		default:
1661			_, _ = key, value
1662
1663		}
1664	}
1665	*v = sv
1666	return nil
1667}
1668
1669type awsRestjson1_deserializeOpDeleteInsight struct {
1670}
1671
1672func (*awsRestjson1_deserializeOpDeleteInsight) ID() string {
1673	return "OperationDeserializer"
1674}
1675
1676func (m *awsRestjson1_deserializeOpDeleteInsight) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1677	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1678) {
1679	out, metadata, err = next.HandleDeserialize(ctx, in)
1680	if err != nil {
1681		return out, metadata, err
1682	}
1683
1684	response, ok := out.RawResponse.(*smithyhttp.Response)
1685	if !ok {
1686		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1687	}
1688
1689	if response.StatusCode < 200 || response.StatusCode >= 300 {
1690		return out, metadata, awsRestjson1_deserializeOpErrorDeleteInsight(response, &metadata)
1691	}
1692	output := &DeleteInsightOutput{}
1693	out.Result = output
1694
1695	var buff [1024]byte
1696	ringBuffer := smithyio.NewRingBuffer(buff[:])
1697
1698	body := io.TeeReader(response.Body, ringBuffer)
1699
1700	decoder := json.NewDecoder(body)
1701	decoder.UseNumber()
1702	var shape interface{}
1703	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1704		var snapshot bytes.Buffer
1705		io.Copy(&snapshot, ringBuffer)
1706		err = &smithy.DeserializationError{
1707			Err:      fmt.Errorf("failed to decode response body, %w", err),
1708			Snapshot: snapshot.Bytes(),
1709		}
1710		return out, metadata, err
1711	}
1712
1713	err = awsRestjson1_deserializeOpDocumentDeleteInsightOutput(&output, shape)
1714	if err != nil {
1715		var snapshot bytes.Buffer
1716		io.Copy(&snapshot, ringBuffer)
1717		return out, metadata, &smithy.DeserializationError{
1718			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1719			Snapshot: snapshot.Bytes(),
1720		}
1721	}
1722
1723	return out, metadata, err
1724}
1725
1726func awsRestjson1_deserializeOpErrorDeleteInsight(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1727	var errorBuffer bytes.Buffer
1728	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1729		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1730	}
1731	errorBody := bytes.NewReader(errorBuffer.Bytes())
1732
1733	errorCode := "UnknownError"
1734	errorMessage := errorCode
1735
1736	code := response.Header.Get("X-Amzn-ErrorType")
1737	if len(code) != 0 {
1738		errorCode = restjson.SanitizeErrorCode(code)
1739	}
1740
1741	var buff [1024]byte
1742	ringBuffer := smithyio.NewRingBuffer(buff[:])
1743
1744	body := io.TeeReader(errorBody, ringBuffer)
1745	decoder := json.NewDecoder(body)
1746	decoder.UseNumber()
1747	code, message, err := restjson.GetErrorInfo(decoder)
1748	if err != nil {
1749		var snapshot bytes.Buffer
1750		io.Copy(&snapshot, ringBuffer)
1751		err = &smithy.DeserializationError{
1752			Err:      fmt.Errorf("failed to decode response body, %w", err),
1753			Snapshot: snapshot.Bytes(),
1754		}
1755		return err
1756	}
1757
1758	errorBody.Seek(0, io.SeekStart)
1759	if len(code) != 0 {
1760		errorCode = restjson.SanitizeErrorCode(code)
1761	}
1762	if len(message) != 0 {
1763		errorMessage = message
1764	}
1765
1766	switch {
1767	case strings.EqualFold("InternalException", errorCode):
1768		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1769
1770	case strings.EqualFold("InvalidAccessException", errorCode):
1771		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1772
1773	case strings.EqualFold("InvalidInputException", errorCode):
1774		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1775
1776	case strings.EqualFold("LimitExceededException", errorCode):
1777		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
1778
1779	case strings.EqualFold("ResourceNotFoundException", errorCode):
1780		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
1781
1782	default:
1783		genericError := &smithy.GenericAPIError{
1784			Code:    errorCode,
1785			Message: errorMessage,
1786		}
1787		return genericError
1788
1789	}
1790}
1791
1792func awsRestjson1_deserializeOpDocumentDeleteInsightOutput(v **DeleteInsightOutput, value interface{}) error {
1793	if v == nil {
1794		return fmt.Errorf("unexpected nil of type %T", v)
1795	}
1796	if value == nil {
1797		return nil
1798	}
1799
1800	shape, ok := value.(map[string]interface{})
1801	if !ok {
1802		return fmt.Errorf("unexpected JSON type %v", value)
1803	}
1804
1805	var sv *DeleteInsightOutput
1806	if *v == nil {
1807		sv = &DeleteInsightOutput{}
1808	} else {
1809		sv = *v
1810	}
1811
1812	for key, value := range shape {
1813		switch key {
1814		case "InsightArn":
1815			if value != nil {
1816				jtv, ok := value.(string)
1817				if !ok {
1818					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
1819				}
1820				sv.InsightArn = ptr.String(jtv)
1821			}
1822
1823		default:
1824			_, _ = key, value
1825
1826		}
1827	}
1828	*v = sv
1829	return nil
1830}
1831
1832type awsRestjson1_deserializeOpDeleteInvitations struct {
1833}
1834
1835func (*awsRestjson1_deserializeOpDeleteInvitations) ID() string {
1836	return "OperationDeserializer"
1837}
1838
1839func (m *awsRestjson1_deserializeOpDeleteInvitations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1840	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1841) {
1842	out, metadata, err = next.HandleDeserialize(ctx, in)
1843	if err != nil {
1844		return out, metadata, err
1845	}
1846
1847	response, ok := out.RawResponse.(*smithyhttp.Response)
1848	if !ok {
1849		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1850	}
1851
1852	if response.StatusCode < 200 || response.StatusCode >= 300 {
1853		return out, metadata, awsRestjson1_deserializeOpErrorDeleteInvitations(response, &metadata)
1854	}
1855	output := &DeleteInvitationsOutput{}
1856	out.Result = output
1857
1858	var buff [1024]byte
1859	ringBuffer := smithyio.NewRingBuffer(buff[:])
1860
1861	body := io.TeeReader(response.Body, ringBuffer)
1862
1863	decoder := json.NewDecoder(body)
1864	decoder.UseNumber()
1865	var shape interface{}
1866	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1867		var snapshot bytes.Buffer
1868		io.Copy(&snapshot, ringBuffer)
1869		err = &smithy.DeserializationError{
1870			Err:      fmt.Errorf("failed to decode response body, %w", err),
1871			Snapshot: snapshot.Bytes(),
1872		}
1873		return out, metadata, err
1874	}
1875
1876	err = awsRestjson1_deserializeOpDocumentDeleteInvitationsOutput(&output, shape)
1877	if err != nil {
1878		var snapshot bytes.Buffer
1879		io.Copy(&snapshot, ringBuffer)
1880		return out, metadata, &smithy.DeserializationError{
1881			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1882			Snapshot: snapshot.Bytes(),
1883		}
1884	}
1885
1886	return out, metadata, err
1887}
1888
1889func awsRestjson1_deserializeOpErrorDeleteInvitations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1890	var errorBuffer bytes.Buffer
1891	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1892		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1893	}
1894	errorBody := bytes.NewReader(errorBuffer.Bytes())
1895
1896	errorCode := "UnknownError"
1897	errorMessage := errorCode
1898
1899	code := response.Header.Get("X-Amzn-ErrorType")
1900	if len(code) != 0 {
1901		errorCode = restjson.SanitizeErrorCode(code)
1902	}
1903
1904	var buff [1024]byte
1905	ringBuffer := smithyio.NewRingBuffer(buff[:])
1906
1907	body := io.TeeReader(errorBody, ringBuffer)
1908	decoder := json.NewDecoder(body)
1909	decoder.UseNumber()
1910	code, message, err := restjson.GetErrorInfo(decoder)
1911	if err != nil {
1912		var snapshot bytes.Buffer
1913		io.Copy(&snapshot, ringBuffer)
1914		err = &smithy.DeserializationError{
1915			Err:      fmt.Errorf("failed to decode response body, %w", err),
1916			Snapshot: snapshot.Bytes(),
1917		}
1918		return err
1919	}
1920
1921	errorBody.Seek(0, io.SeekStart)
1922	if len(code) != 0 {
1923		errorCode = restjson.SanitizeErrorCode(code)
1924	}
1925	if len(message) != 0 {
1926		errorMessage = message
1927	}
1928
1929	switch {
1930	case strings.EqualFold("InternalException", errorCode):
1931		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
1932
1933	case strings.EqualFold("InvalidAccessException", errorCode):
1934		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
1935
1936	case strings.EqualFold("InvalidInputException", errorCode):
1937		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
1938
1939	case strings.EqualFold("LimitExceededException", errorCode):
1940		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
1941
1942	case strings.EqualFold("ResourceNotFoundException", errorCode):
1943		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
1944
1945	default:
1946		genericError := &smithy.GenericAPIError{
1947			Code:    errorCode,
1948			Message: errorMessage,
1949		}
1950		return genericError
1951
1952	}
1953}
1954
1955func awsRestjson1_deserializeOpDocumentDeleteInvitationsOutput(v **DeleteInvitationsOutput, value interface{}) error {
1956	if v == nil {
1957		return fmt.Errorf("unexpected nil of type %T", v)
1958	}
1959	if value == nil {
1960		return nil
1961	}
1962
1963	shape, ok := value.(map[string]interface{})
1964	if !ok {
1965		return fmt.Errorf("unexpected JSON type %v", value)
1966	}
1967
1968	var sv *DeleteInvitationsOutput
1969	if *v == nil {
1970		sv = &DeleteInvitationsOutput{}
1971	} else {
1972		sv = *v
1973	}
1974
1975	for key, value := range shape {
1976		switch key {
1977		case "UnprocessedAccounts":
1978			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
1979				return err
1980			}
1981
1982		default:
1983			_, _ = key, value
1984
1985		}
1986	}
1987	*v = sv
1988	return nil
1989}
1990
1991type awsRestjson1_deserializeOpDeleteMembers struct {
1992}
1993
1994func (*awsRestjson1_deserializeOpDeleteMembers) ID() string {
1995	return "OperationDeserializer"
1996}
1997
1998func (m *awsRestjson1_deserializeOpDeleteMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1999	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2000) {
2001	out, metadata, err = next.HandleDeserialize(ctx, in)
2002	if err != nil {
2003		return out, metadata, err
2004	}
2005
2006	response, ok := out.RawResponse.(*smithyhttp.Response)
2007	if !ok {
2008		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2009	}
2010
2011	if response.StatusCode < 200 || response.StatusCode >= 300 {
2012		return out, metadata, awsRestjson1_deserializeOpErrorDeleteMembers(response, &metadata)
2013	}
2014	output := &DeleteMembersOutput{}
2015	out.Result = output
2016
2017	var buff [1024]byte
2018	ringBuffer := smithyio.NewRingBuffer(buff[:])
2019
2020	body := io.TeeReader(response.Body, ringBuffer)
2021
2022	decoder := json.NewDecoder(body)
2023	decoder.UseNumber()
2024	var shape interface{}
2025	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2026		var snapshot bytes.Buffer
2027		io.Copy(&snapshot, ringBuffer)
2028		err = &smithy.DeserializationError{
2029			Err:      fmt.Errorf("failed to decode response body, %w", err),
2030			Snapshot: snapshot.Bytes(),
2031		}
2032		return out, metadata, err
2033	}
2034
2035	err = awsRestjson1_deserializeOpDocumentDeleteMembersOutput(&output, shape)
2036	if err != nil {
2037		var snapshot bytes.Buffer
2038		io.Copy(&snapshot, ringBuffer)
2039		return out, metadata, &smithy.DeserializationError{
2040			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2041			Snapshot: snapshot.Bytes(),
2042		}
2043	}
2044
2045	return out, metadata, err
2046}
2047
2048func awsRestjson1_deserializeOpErrorDeleteMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2049	var errorBuffer bytes.Buffer
2050	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2051		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2052	}
2053	errorBody := bytes.NewReader(errorBuffer.Bytes())
2054
2055	errorCode := "UnknownError"
2056	errorMessage := errorCode
2057
2058	code := response.Header.Get("X-Amzn-ErrorType")
2059	if len(code) != 0 {
2060		errorCode = restjson.SanitizeErrorCode(code)
2061	}
2062
2063	var buff [1024]byte
2064	ringBuffer := smithyio.NewRingBuffer(buff[:])
2065
2066	body := io.TeeReader(errorBody, ringBuffer)
2067	decoder := json.NewDecoder(body)
2068	decoder.UseNumber()
2069	code, message, err := restjson.GetErrorInfo(decoder)
2070	if err != nil {
2071		var snapshot bytes.Buffer
2072		io.Copy(&snapshot, ringBuffer)
2073		err = &smithy.DeserializationError{
2074			Err:      fmt.Errorf("failed to decode response body, %w", err),
2075			Snapshot: snapshot.Bytes(),
2076		}
2077		return err
2078	}
2079
2080	errorBody.Seek(0, io.SeekStart)
2081	if len(code) != 0 {
2082		errorCode = restjson.SanitizeErrorCode(code)
2083	}
2084	if len(message) != 0 {
2085		errorMessage = message
2086	}
2087
2088	switch {
2089	case strings.EqualFold("InternalException", errorCode):
2090		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2091
2092	case strings.EqualFold("InvalidAccessException", errorCode):
2093		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2094
2095	case strings.EqualFold("InvalidInputException", errorCode):
2096		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2097
2098	case strings.EqualFold("LimitExceededException", errorCode):
2099		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
2100
2101	case strings.EqualFold("ResourceNotFoundException", errorCode):
2102		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
2103
2104	default:
2105		genericError := &smithy.GenericAPIError{
2106			Code:    errorCode,
2107			Message: errorMessage,
2108		}
2109		return genericError
2110
2111	}
2112}
2113
2114func awsRestjson1_deserializeOpDocumentDeleteMembersOutput(v **DeleteMembersOutput, value interface{}) error {
2115	if v == nil {
2116		return fmt.Errorf("unexpected nil of type %T", v)
2117	}
2118	if value == nil {
2119		return nil
2120	}
2121
2122	shape, ok := value.(map[string]interface{})
2123	if !ok {
2124		return fmt.Errorf("unexpected JSON type %v", value)
2125	}
2126
2127	var sv *DeleteMembersOutput
2128	if *v == nil {
2129		sv = &DeleteMembersOutput{}
2130	} else {
2131		sv = *v
2132	}
2133
2134	for key, value := range shape {
2135		switch key {
2136		case "UnprocessedAccounts":
2137			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
2138				return err
2139			}
2140
2141		default:
2142			_, _ = key, value
2143
2144		}
2145	}
2146	*v = sv
2147	return nil
2148}
2149
2150type awsRestjson1_deserializeOpDescribeActionTargets struct {
2151}
2152
2153func (*awsRestjson1_deserializeOpDescribeActionTargets) ID() string {
2154	return "OperationDeserializer"
2155}
2156
2157func (m *awsRestjson1_deserializeOpDescribeActionTargets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2158	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2159) {
2160	out, metadata, err = next.HandleDeserialize(ctx, in)
2161	if err != nil {
2162		return out, metadata, err
2163	}
2164
2165	response, ok := out.RawResponse.(*smithyhttp.Response)
2166	if !ok {
2167		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2168	}
2169
2170	if response.StatusCode < 200 || response.StatusCode >= 300 {
2171		return out, metadata, awsRestjson1_deserializeOpErrorDescribeActionTargets(response, &metadata)
2172	}
2173	output := &DescribeActionTargetsOutput{}
2174	out.Result = output
2175
2176	var buff [1024]byte
2177	ringBuffer := smithyio.NewRingBuffer(buff[:])
2178
2179	body := io.TeeReader(response.Body, ringBuffer)
2180
2181	decoder := json.NewDecoder(body)
2182	decoder.UseNumber()
2183	var shape interface{}
2184	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2185		var snapshot bytes.Buffer
2186		io.Copy(&snapshot, ringBuffer)
2187		err = &smithy.DeserializationError{
2188			Err:      fmt.Errorf("failed to decode response body, %w", err),
2189			Snapshot: snapshot.Bytes(),
2190		}
2191		return out, metadata, err
2192	}
2193
2194	err = awsRestjson1_deserializeOpDocumentDescribeActionTargetsOutput(&output, shape)
2195	if err != nil {
2196		var snapshot bytes.Buffer
2197		io.Copy(&snapshot, ringBuffer)
2198		return out, metadata, &smithy.DeserializationError{
2199			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2200			Snapshot: snapshot.Bytes(),
2201		}
2202	}
2203
2204	return out, metadata, err
2205}
2206
2207func awsRestjson1_deserializeOpErrorDescribeActionTargets(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2208	var errorBuffer bytes.Buffer
2209	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2210		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2211	}
2212	errorBody := bytes.NewReader(errorBuffer.Bytes())
2213
2214	errorCode := "UnknownError"
2215	errorMessage := errorCode
2216
2217	code := response.Header.Get("X-Amzn-ErrorType")
2218	if len(code) != 0 {
2219		errorCode = restjson.SanitizeErrorCode(code)
2220	}
2221
2222	var buff [1024]byte
2223	ringBuffer := smithyio.NewRingBuffer(buff[:])
2224
2225	body := io.TeeReader(errorBody, ringBuffer)
2226	decoder := json.NewDecoder(body)
2227	decoder.UseNumber()
2228	code, message, err := restjson.GetErrorInfo(decoder)
2229	if err != nil {
2230		var snapshot bytes.Buffer
2231		io.Copy(&snapshot, ringBuffer)
2232		err = &smithy.DeserializationError{
2233			Err:      fmt.Errorf("failed to decode response body, %w", err),
2234			Snapshot: snapshot.Bytes(),
2235		}
2236		return err
2237	}
2238
2239	errorBody.Seek(0, io.SeekStart)
2240	if len(code) != 0 {
2241		errorCode = restjson.SanitizeErrorCode(code)
2242	}
2243	if len(message) != 0 {
2244		errorMessage = message
2245	}
2246
2247	switch {
2248	case strings.EqualFold("InternalException", errorCode):
2249		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2250
2251	case strings.EqualFold("InvalidAccessException", errorCode):
2252		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2253
2254	case strings.EqualFold("InvalidInputException", errorCode):
2255		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2256
2257	case strings.EqualFold("ResourceNotFoundException", errorCode):
2258		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
2259
2260	default:
2261		genericError := &smithy.GenericAPIError{
2262			Code:    errorCode,
2263			Message: errorMessage,
2264		}
2265		return genericError
2266
2267	}
2268}
2269
2270func awsRestjson1_deserializeOpDocumentDescribeActionTargetsOutput(v **DescribeActionTargetsOutput, value interface{}) error {
2271	if v == nil {
2272		return fmt.Errorf("unexpected nil of type %T", v)
2273	}
2274	if value == nil {
2275		return nil
2276	}
2277
2278	shape, ok := value.(map[string]interface{})
2279	if !ok {
2280		return fmt.Errorf("unexpected JSON type %v", value)
2281	}
2282
2283	var sv *DescribeActionTargetsOutput
2284	if *v == nil {
2285		sv = &DescribeActionTargetsOutput{}
2286	} else {
2287		sv = *v
2288	}
2289
2290	for key, value := range shape {
2291		switch key {
2292		case "ActionTargets":
2293			if err := awsRestjson1_deserializeDocumentActionTargetList(&sv.ActionTargets, value); err != nil {
2294				return err
2295			}
2296
2297		case "NextToken":
2298			if value != nil {
2299				jtv, ok := value.(string)
2300				if !ok {
2301					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
2302				}
2303				sv.NextToken = ptr.String(jtv)
2304			}
2305
2306		default:
2307			_, _ = key, value
2308
2309		}
2310	}
2311	*v = sv
2312	return nil
2313}
2314
2315type awsRestjson1_deserializeOpDescribeHub struct {
2316}
2317
2318func (*awsRestjson1_deserializeOpDescribeHub) ID() string {
2319	return "OperationDeserializer"
2320}
2321
2322func (m *awsRestjson1_deserializeOpDescribeHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2323	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2324) {
2325	out, metadata, err = next.HandleDeserialize(ctx, in)
2326	if err != nil {
2327		return out, metadata, err
2328	}
2329
2330	response, ok := out.RawResponse.(*smithyhttp.Response)
2331	if !ok {
2332		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2333	}
2334
2335	if response.StatusCode < 200 || response.StatusCode >= 300 {
2336		return out, metadata, awsRestjson1_deserializeOpErrorDescribeHub(response, &metadata)
2337	}
2338	output := &DescribeHubOutput{}
2339	out.Result = output
2340
2341	var buff [1024]byte
2342	ringBuffer := smithyio.NewRingBuffer(buff[:])
2343
2344	body := io.TeeReader(response.Body, ringBuffer)
2345
2346	decoder := json.NewDecoder(body)
2347	decoder.UseNumber()
2348	var shape interface{}
2349	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2350		var snapshot bytes.Buffer
2351		io.Copy(&snapshot, ringBuffer)
2352		err = &smithy.DeserializationError{
2353			Err:      fmt.Errorf("failed to decode response body, %w", err),
2354			Snapshot: snapshot.Bytes(),
2355		}
2356		return out, metadata, err
2357	}
2358
2359	err = awsRestjson1_deserializeOpDocumentDescribeHubOutput(&output, shape)
2360	if err != nil {
2361		var snapshot bytes.Buffer
2362		io.Copy(&snapshot, ringBuffer)
2363		return out, metadata, &smithy.DeserializationError{
2364			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2365			Snapshot: snapshot.Bytes(),
2366		}
2367	}
2368
2369	return out, metadata, err
2370}
2371
2372func awsRestjson1_deserializeOpErrorDescribeHub(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2373	var errorBuffer bytes.Buffer
2374	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2375		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2376	}
2377	errorBody := bytes.NewReader(errorBuffer.Bytes())
2378
2379	errorCode := "UnknownError"
2380	errorMessage := errorCode
2381
2382	code := response.Header.Get("X-Amzn-ErrorType")
2383	if len(code) != 0 {
2384		errorCode = restjson.SanitizeErrorCode(code)
2385	}
2386
2387	var buff [1024]byte
2388	ringBuffer := smithyio.NewRingBuffer(buff[:])
2389
2390	body := io.TeeReader(errorBody, ringBuffer)
2391	decoder := json.NewDecoder(body)
2392	decoder.UseNumber()
2393	code, message, err := restjson.GetErrorInfo(decoder)
2394	if err != nil {
2395		var snapshot bytes.Buffer
2396		io.Copy(&snapshot, ringBuffer)
2397		err = &smithy.DeserializationError{
2398			Err:      fmt.Errorf("failed to decode response body, %w", err),
2399			Snapshot: snapshot.Bytes(),
2400		}
2401		return err
2402	}
2403
2404	errorBody.Seek(0, io.SeekStart)
2405	if len(code) != 0 {
2406		errorCode = restjson.SanitizeErrorCode(code)
2407	}
2408	if len(message) != 0 {
2409		errorMessage = message
2410	}
2411
2412	switch {
2413	case strings.EqualFold("InternalException", errorCode):
2414		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2415
2416	case strings.EqualFold("InvalidAccessException", errorCode):
2417		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2418
2419	case strings.EqualFold("InvalidInputException", errorCode):
2420		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2421
2422	case strings.EqualFold("LimitExceededException", errorCode):
2423		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
2424
2425	case strings.EqualFold("ResourceNotFoundException", errorCode):
2426		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
2427
2428	default:
2429		genericError := &smithy.GenericAPIError{
2430			Code:    errorCode,
2431			Message: errorMessage,
2432		}
2433		return genericError
2434
2435	}
2436}
2437
2438func awsRestjson1_deserializeOpDocumentDescribeHubOutput(v **DescribeHubOutput, value interface{}) error {
2439	if v == nil {
2440		return fmt.Errorf("unexpected nil of type %T", v)
2441	}
2442	if value == nil {
2443		return nil
2444	}
2445
2446	shape, ok := value.(map[string]interface{})
2447	if !ok {
2448		return fmt.Errorf("unexpected JSON type %v", value)
2449	}
2450
2451	var sv *DescribeHubOutput
2452	if *v == nil {
2453		sv = &DescribeHubOutput{}
2454	} else {
2455		sv = *v
2456	}
2457
2458	for key, value := range shape {
2459		switch key {
2460		case "AutoEnableControls":
2461			if value != nil {
2462				jtv, ok := value.(bool)
2463				if !ok {
2464					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
2465				}
2466				sv.AutoEnableControls = jtv
2467			}
2468
2469		case "HubArn":
2470			if value != nil {
2471				jtv, ok := value.(string)
2472				if !ok {
2473					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
2474				}
2475				sv.HubArn = ptr.String(jtv)
2476			}
2477
2478		case "SubscribedAt":
2479			if value != nil {
2480				jtv, ok := value.(string)
2481				if !ok {
2482					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
2483				}
2484				sv.SubscribedAt = ptr.String(jtv)
2485			}
2486
2487		default:
2488			_, _ = key, value
2489
2490		}
2491	}
2492	*v = sv
2493	return nil
2494}
2495
2496type awsRestjson1_deserializeOpDescribeOrganizationConfiguration struct {
2497}
2498
2499func (*awsRestjson1_deserializeOpDescribeOrganizationConfiguration) ID() string {
2500	return "OperationDeserializer"
2501}
2502
2503func (m *awsRestjson1_deserializeOpDescribeOrganizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2504	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2505) {
2506	out, metadata, err = next.HandleDeserialize(ctx, in)
2507	if err != nil {
2508		return out, metadata, err
2509	}
2510
2511	response, ok := out.RawResponse.(*smithyhttp.Response)
2512	if !ok {
2513		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2514	}
2515
2516	if response.StatusCode < 200 || response.StatusCode >= 300 {
2517		return out, metadata, awsRestjson1_deserializeOpErrorDescribeOrganizationConfiguration(response, &metadata)
2518	}
2519	output := &DescribeOrganizationConfigurationOutput{}
2520	out.Result = output
2521
2522	var buff [1024]byte
2523	ringBuffer := smithyio.NewRingBuffer(buff[:])
2524
2525	body := io.TeeReader(response.Body, ringBuffer)
2526
2527	decoder := json.NewDecoder(body)
2528	decoder.UseNumber()
2529	var shape interface{}
2530	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2531		var snapshot bytes.Buffer
2532		io.Copy(&snapshot, ringBuffer)
2533		err = &smithy.DeserializationError{
2534			Err:      fmt.Errorf("failed to decode response body, %w", err),
2535			Snapshot: snapshot.Bytes(),
2536		}
2537		return out, metadata, err
2538	}
2539
2540	err = awsRestjson1_deserializeOpDocumentDescribeOrganizationConfigurationOutput(&output, shape)
2541	if err != nil {
2542		var snapshot bytes.Buffer
2543		io.Copy(&snapshot, ringBuffer)
2544		return out, metadata, &smithy.DeserializationError{
2545			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2546			Snapshot: snapshot.Bytes(),
2547		}
2548	}
2549
2550	return out, metadata, err
2551}
2552
2553func awsRestjson1_deserializeOpErrorDescribeOrganizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2554	var errorBuffer bytes.Buffer
2555	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2556		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2557	}
2558	errorBody := bytes.NewReader(errorBuffer.Bytes())
2559
2560	errorCode := "UnknownError"
2561	errorMessage := errorCode
2562
2563	code := response.Header.Get("X-Amzn-ErrorType")
2564	if len(code) != 0 {
2565		errorCode = restjson.SanitizeErrorCode(code)
2566	}
2567
2568	var buff [1024]byte
2569	ringBuffer := smithyio.NewRingBuffer(buff[:])
2570
2571	body := io.TeeReader(errorBody, ringBuffer)
2572	decoder := json.NewDecoder(body)
2573	decoder.UseNumber()
2574	code, message, err := restjson.GetErrorInfo(decoder)
2575	if err != nil {
2576		var snapshot bytes.Buffer
2577		io.Copy(&snapshot, ringBuffer)
2578		err = &smithy.DeserializationError{
2579			Err:      fmt.Errorf("failed to decode response body, %w", err),
2580			Snapshot: snapshot.Bytes(),
2581		}
2582		return err
2583	}
2584
2585	errorBody.Seek(0, io.SeekStart)
2586	if len(code) != 0 {
2587		errorCode = restjson.SanitizeErrorCode(code)
2588	}
2589	if len(message) != 0 {
2590		errorMessage = message
2591	}
2592
2593	switch {
2594	case strings.EqualFold("InternalException", errorCode):
2595		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2596
2597	case strings.EqualFold("InvalidAccessException", errorCode):
2598		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2599
2600	case strings.EqualFold("InvalidInputException", errorCode):
2601		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2602
2603	case strings.EqualFold("LimitExceededException", errorCode):
2604		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
2605
2606	default:
2607		genericError := &smithy.GenericAPIError{
2608			Code:    errorCode,
2609			Message: errorMessage,
2610		}
2611		return genericError
2612
2613	}
2614}
2615
2616func awsRestjson1_deserializeOpDocumentDescribeOrganizationConfigurationOutput(v **DescribeOrganizationConfigurationOutput, value interface{}) error {
2617	if v == nil {
2618		return fmt.Errorf("unexpected nil of type %T", v)
2619	}
2620	if value == nil {
2621		return nil
2622	}
2623
2624	shape, ok := value.(map[string]interface{})
2625	if !ok {
2626		return fmt.Errorf("unexpected JSON type %v", value)
2627	}
2628
2629	var sv *DescribeOrganizationConfigurationOutput
2630	if *v == nil {
2631		sv = &DescribeOrganizationConfigurationOutput{}
2632	} else {
2633		sv = *v
2634	}
2635
2636	for key, value := range shape {
2637		switch key {
2638		case "AutoEnable":
2639			if value != nil {
2640				jtv, ok := value.(bool)
2641				if !ok {
2642					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
2643				}
2644				sv.AutoEnable = jtv
2645			}
2646
2647		case "MemberAccountLimitReached":
2648			if value != nil {
2649				jtv, ok := value.(bool)
2650				if !ok {
2651					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
2652				}
2653				sv.MemberAccountLimitReached = jtv
2654			}
2655
2656		default:
2657			_, _ = key, value
2658
2659		}
2660	}
2661	*v = sv
2662	return nil
2663}
2664
2665type awsRestjson1_deserializeOpDescribeProducts struct {
2666}
2667
2668func (*awsRestjson1_deserializeOpDescribeProducts) ID() string {
2669	return "OperationDeserializer"
2670}
2671
2672func (m *awsRestjson1_deserializeOpDescribeProducts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2673	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2674) {
2675	out, metadata, err = next.HandleDeserialize(ctx, in)
2676	if err != nil {
2677		return out, metadata, err
2678	}
2679
2680	response, ok := out.RawResponse.(*smithyhttp.Response)
2681	if !ok {
2682		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2683	}
2684
2685	if response.StatusCode < 200 || response.StatusCode >= 300 {
2686		return out, metadata, awsRestjson1_deserializeOpErrorDescribeProducts(response, &metadata)
2687	}
2688	output := &DescribeProductsOutput{}
2689	out.Result = output
2690
2691	var buff [1024]byte
2692	ringBuffer := smithyio.NewRingBuffer(buff[:])
2693
2694	body := io.TeeReader(response.Body, ringBuffer)
2695
2696	decoder := json.NewDecoder(body)
2697	decoder.UseNumber()
2698	var shape interface{}
2699	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2700		var snapshot bytes.Buffer
2701		io.Copy(&snapshot, ringBuffer)
2702		err = &smithy.DeserializationError{
2703			Err:      fmt.Errorf("failed to decode response body, %w", err),
2704			Snapshot: snapshot.Bytes(),
2705		}
2706		return out, metadata, err
2707	}
2708
2709	err = awsRestjson1_deserializeOpDocumentDescribeProductsOutput(&output, shape)
2710	if err != nil {
2711		var snapshot bytes.Buffer
2712		io.Copy(&snapshot, ringBuffer)
2713		return out, metadata, &smithy.DeserializationError{
2714			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2715			Snapshot: snapshot.Bytes(),
2716		}
2717	}
2718
2719	return out, metadata, err
2720}
2721
2722func awsRestjson1_deserializeOpErrorDescribeProducts(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2723	var errorBuffer bytes.Buffer
2724	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2725		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2726	}
2727	errorBody := bytes.NewReader(errorBuffer.Bytes())
2728
2729	errorCode := "UnknownError"
2730	errorMessage := errorCode
2731
2732	code := response.Header.Get("X-Amzn-ErrorType")
2733	if len(code) != 0 {
2734		errorCode = restjson.SanitizeErrorCode(code)
2735	}
2736
2737	var buff [1024]byte
2738	ringBuffer := smithyio.NewRingBuffer(buff[:])
2739
2740	body := io.TeeReader(errorBody, ringBuffer)
2741	decoder := json.NewDecoder(body)
2742	decoder.UseNumber()
2743	code, message, err := restjson.GetErrorInfo(decoder)
2744	if err != nil {
2745		var snapshot bytes.Buffer
2746		io.Copy(&snapshot, ringBuffer)
2747		err = &smithy.DeserializationError{
2748			Err:      fmt.Errorf("failed to decode response body, %w", err),
2749			Snapshot: snapshot.Bytes(),
2750		}
2751		return err
2752	}
2753
2754	errorBody.Seek(0, io.SeekStart)
2755	if len(code) != 0 {
2756		errorCode = restjson.SanitizeErrorCode(code)
2757	}
2758	if len(message) != 0 {
2759		errorMessage = message
2760	}
2761
2762	switch {
2763	case strings.EqualFold("InternalException", errorCode):
2764		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2765
2766	case strings.EqualFold("InvalidAccessException", errorCode):
2767		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2768
2769	case strings.EqualFold("InvalidInputException", errorCode):
2770		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2771
2772	case strings.EqualFold("LimitExceededException", errorCode):
2773		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
2774
2775	default:
2776		genericError := &smithy.GenericAPIError{
2777			Code:    errorCode,
2778			Message: errorMessage,
2779		}
2780		return genericError
2781
2782	}
2783}
2784
2785func awsRestjson1_deserializeOpDocumentDescribeProductsOutput(v **DescribeProductsOutput, value interface{}) error {
2786	if v == nil {
2787		return fmt.Errorf("unexpected nil of type %T", v)
2788	}
2789	if value == nil {
2790		return nil
2791	}
2792
2793	shape, ok := value.(map[string]interface{})
2794	if !ok {
2795		return fmt.Errorf("unexpected JSON type %v", value)
2796	}
2797
2798	var sv *DescribeProductsOutput
2799	if *v == nil {
2800		sv = &DescribeProductsOutput{}
2801	} else {
2802		sv = *v
2803	}
2804
2805	for key, value := range shape {
2806		switch key {
2807		case "NextToken":
2808			if value != nil {
2809				jtv, ok := value.(string)
2810				if !ok {
2811					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
2812				}
2813				sv.NextToken = ptr.String(jtv)
2814			}
2815
2816		case "Products":
2817			if err := awsRestjson1_deserializeDocumentProductsList(&sv.Products, value); err != nil {
2818				return err
2819			}
2820
2821		default:
2822			_, _ = key, value
2823
2824		}
2825	}
2826	*v = sv
2827	return nil
2828}
2829
2830type awsRestjson1_deserializeOpDescribeStandards struct {
2831}
2832
2833func (*awsRestjson1_deserializeOpDescribeStandards) ID() string {
2834	return "OperationDeserializer"
2835}
2836
2837func (m *awsRestjson1_deserializeOpDescribeStandards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2838	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2839) {
2840	out, metadata, err = next.HandleDeserialize(ctx, in)
2841	if err != nil {
2842		return out, metadata, err
2843	}
2844
2845	response, ok := out.RawResponse.(*smithyhttp.Response)
2846	if !ok {
2847		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2848	}
2849
2850	if response.StatusCode < 200 || response.StatusCode >= 300 {
2851		return out, metadata, awsRestjson1_deserializeOpErrorDescribeStandards(response, &metadata)
2852	}
2853	output := &DescribeStandardsOutput{}
2854	out.Result = output
2855
2856	var buff [1024]byte
2857	ringBuffer := smithyio.NewRingBuffer(buff[:])
2858
2859	body := io.TeeReader(response.Body, ringBuffer)
2860
2861	decoder := json.NewDecoder(body)
2862	decoder.UseNumber()
2863	var shape interface{}
2864	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2865		var snapshot bytes.Buffer
2866		io.Copy(&snapshot, ringBuffer)
2867		err = &smithy.DeserializationError{
2868			Err:      fmt.Errorf("failed to decode response body, %w", err),
2869			Snapshot: snapshot.Bytes(),
2870		}
2871		return out, metadata, err
2872	}
2873
2874	err = awsRestjson1_deserializeOpDocumentDescribeStandardsOutput(&output, shape)
2875	if err != nil {
2876		var snapshot bytes.Buffer
2877		io.Copy(&snapshot, ringBuffer)
2878		return out, metadata, &smithy.DeserializationError{
2879			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2880			Snapshot: snapshot.Bytes(),
2881		}
2882	}
2883
2884	return out, metadata, err
2885}
2886
2887func awsRestjson1_deserializeOpErrorDescribeStandards(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2888	var errorBuffer bytes.Buffer
2889	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2890		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2891	}
2892	errorBody := bytes.NewReader(errorBuffer.Bytes())
2893
2894	errorCode := "UnknownError"
2895	errorMessage := errorCode
2896
2897	code := response.Header.Get("X-Amzn-ErrorType")
2898	if len(code) != 0 {
2899		errorCode = restjson.SanitizeErrorCode(code)
2900	}
2901
2902	var buff [1024]byte
2903	ringBuffer := smithyio.NewRingBuffer(buff[:])
2904
2905	body := io.TeeReader(errorBody, ringBuffer)
2906	decoder := json.NewDecoder(body)
2907	decoder.UseNumber()
2908	code, message, err := restjson.GetErrorInfo(decoder)
2909	if err != nil {
2910		var snapshot bytes.Buffer
2911		io.Copy(&snapshot, ringBuffer)
2912		err = &smithy.DeserializationError{
2913			Err:      fmt.Errorf("failed to decode response body, %w", err),
2914			Snapshot: snapshot.Bytes(),
2915		}
2916		return err
2917	}
2918
2919	errorBody.Seek(0, io.SeekStart)
2920	if len(code) != 0 {
2921		errorCode = restjson.SanitizeErrorCode(code)
2922	}
2923	if len(message) != 0 {
2924		errorMessage = message
2925	}
2926
2927	switch {
2928	case strings.EqualFold("InternalException", errorCode):
2929		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
2930
2931	case strings.EqualFold("InvalidAccessException", errorCode):
2932		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
2933
2934	case strings.EqualFold("InvalidInputException", errorCode):
2935		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
2936
2937	default:
2938		genericError := &smithy.GenericAPIError{
2939			Code:    errorCode,
2940			Message: errorMessage,
2941		}
2942		return genericError
2943
2944	}
2945}
2946
2947func awsRestjson1_deserializeOpDocumentDescribeStandardsOutput(v **DescribeStandardsOutput, value interface{}) error {
2948	if v == nil {
2949		return fmt.Errorf("unexpected nil of type %T", v)
2950	}
2951	if value == nil {
2952		return nil
2953	}
2954
2955	shape, ok := value.(map[string]interface{})
2956	if !ok {
2957		return fmt.Errorf("unexpected JSON type %v", value)
2958	}
2959
2960	var sv *DescribeStandardsOutput
2961	if *v == nil {
2962		sv = &DescribeStandardsOutput{}
2963	} else {
2964		sv = *v
2965	}
2966
2967	for key, value := range shape {
2968		switch key {
2969		case "NextToken":
2970			if value != nil {
2971				jtv, ok := value.(string)
2972				if !ok {
2973					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
2974				}
2975				sv.NextToken = ptr.String(jtv)
2976			}
2977
2978		case "Standards":
2979			if err := awsRestjson1_deserializeDocumentStandards(&sv.Standards, value); err != nil {
2980				return err
2981			}
2982
2983		default:
2984			_, _ = key, value
2985
2986		}
2987	}
2988	*v = sv
2989	return nil
2990}
2991
2992type awsRestjson1_deserializeOpDescribeStandardsControls struct {
2993}
2994
2995func (*awsRestjson1_deserializeOpDescribeStandardsControls) ID() string {
2996	return "OperationDeserializer"
2997}
2998
2999func (m *awsRestjson1_deserializeOpDescribeStandardsControls) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3000	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3001) {
3002	out, metadata, err = next.HandleDeserialize(ctx, in)
3003	if err != nil {
3004		return out, metadata, err
3005	}
3006
3007	response, ok := out.RawResponse.(*smithyhttp.Response)
3008	if !ok {
3009		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3010	}
3011
3012	if response.StatusCode < 200 || response.StatusCode >= 300 {
3013		return out, metadata, awsRestjson1_deserializeOpErrorDescribeStandardsControls(response, &metadata)
3014	}
3015	output := &DescribeStandardsControlsOutput{}
3016	out.Result = output
3017
3018	var buff [1024]byte
3019	ringBuffer := smithyio.NewRingBuffer(buff[:])
3020
3021	body := io.TeeReader(response.Body, ringBuffer)
3022
3023	decoder := json.NewDecoder(body)
3024	decoder.UseNumber()
3025	var shape interface{}
3026	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3027		var snapshot bytes.Buffer
3028		io.Copy(&snapshot, ringBuffer)
3029		err = &smithy.DeserializationError{
3030			Err:      fmt.Errorf("failed to decode response body, %w", err),
3031			Snapshot: snapshot.Bytes(),
3032		}
3033		return out, metadata, err
3034	}
3035
3036	err = awsRestjson1_deserializeOpDocumentDescribeStandardsControlsOutput(&output, shape)
3037	if err != nil {
3038		var snapshot bytes.Buffer
3039		io.Copy(&snapshot, ringBuffer)
3040		return out, metadata, &smithy.DeserializationError{
3041			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3042			Snapshot: snapshot.Bytes(),
3043		}
3044	}
3045
3046	return out, metadata, err
3047}
3048
3049func awsRestjson1_deserializeOpErrorDescribeStandardsControls(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3050	var errorBuffer bytes.Buffer
3051	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3052		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3053	}
3054	errorBody := bytes.NewReader(errorBuffer.Bytes())
3055
3056	errorCode := "UnknownError"
3057	errorMessage := errorCode
3058
3059	code := response.Header.Get("X-Amzn-ErrorType")
3060	if len(code) != 0 {
3061		errorCode = restjson.SanitizeErrorCode(code)
3062	}
3063
3064	var buff [1024]byte
3065	ringBuffer := smithyio.NewRingBuffer(buff[:])
3066
3067	body := io.TeeReader(errorBody, ringBuffer)
3068	decoder := json.NewDecoder(body)
3069	decoder.UseNumber()
3070	code, message, err := restjson.GetErrorInfo(decoder)
3071	if err != nil {
3072		var snapshot bytes.Buffer
3073		io.Copy(&snapshot, ringBuffer)
3074		err = &smithy.DeserializationError{
3075			Err:      fmt.Errorf("failed to decode response body, %w", err),
3076			Snapshot: snapshot.Bytes(),
3077		}
3078		return err
3079	}
3080
3081	errorBody.Seek(0, io.SeekStart)
3082	if len(code) != 0 {
3083		errorCode = restjson.SanitizeErrorCode(code)
3084	}
3085	if len(message) != 0 {
3086		errorMessage = message
3087	}
3088
3089	switch {
3090	case strings.EqualFold("InternalException", errorCode):
3091		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3092
3093	case strings.EqualFold("InvalidAccessException", errorCode):
3094		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3095
3096	case strings.EqualFold("InvalidInputException", errorCode):
3097		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3098
3099	case strings.EqualFold("ResourceNotFoundException", errorCode):
3100		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3101
3102	default:
3103		genericError := &smithy.GenericAPIError{
3104			Code:    errorCode,
3105			Message: errorMessage,
3106		}
3107		return genericError
3108
3109	}
3110}
3111
3112func awsRestjson1_deserializeOpDocumentDescribeStandardsControlsOutput(v **DescribeStandardsControlsOutput, value interface{}) error {
3113	if v == nil {
3114		return fmt.Errorf("unexpected nil of type %T", v)
3115	}
3116	if value == nil {
3117		return nil
3118	}
3119
3120	shape, ok := value.(map[string]interface{})
3121	if !ok {
3122		return fmt.Errorf("unexpected JSON type %v", value)
3123	}
3124
3125	var sv *DescribeStandardsControlsOutput
3126	if *v == nil {
3127		sv = &DescribeStandardsControlsOutput{}
3128	} else {
3129		sv = *v
3130	}
3131
3132	for key, value := range shape {
3133		switch key {
3134		case "Controls":
3135			if err := awsRestjson1_deserializeDocumentStandardsControls(&sv.Controls, value); err != nil {
3136				return err
3137			}
3138
3139		case "NextToken":
3140			if value != nil {
3141				jtv, ok := value.(string)
3142				if !ok {
3143					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
3144				}
3145				sv.NextToken = ptr.String(jtv)
3146			}
3147
3148		default:
3149			_, _ = key, value
3150
3151		}
3152	}
3153	*v = sv
3154	return nil
3155}
3156
3157type awsRestjson1_deserializeOpDisableImportFindingsForProduct struct {
3158}
3159
3160func (*awsRestjson1_deserializeOpDisableImportFindingsForProduct) ID() string {
3161	return "OperationDeserializer"
3162}
3163
3164func (m *awsRestjson1_deserializeOpDisableImportFindingsForProduct) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3165	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3166) {
3167	out, metadata, err = next.HandleDeserialize(ctx, in)
3168	if err != nil {
3169		return out, metadata, err
3170	}
3171
3172	response, ok := out.RawResponse.(*smithyhttp.Response)
3173	if !ok {
3174		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3175	}
3176
3177	if response.StatusCode < 200 || response.StatusCode >= 300 {
3178		return out, metadata, awsRestjson1_deserializeOpErrorDisableImportFindingsForProduct(response, &metadata)
3179	}
3180	output := &DisableImportFindingsForProductOutput{}
3181	out.Result = output
3182
3183	return out, metadata, err
3184}
3185
3186func awsRestjson1_deserializeOpErrorDisableImportFindingsForProduct(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3187	var errorBuffer bytes.Buffer
3188	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3189		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3190	}
3191	errorBody := bytes.NewReader(errorBuffer.Bytes())
3192
3193	errorCode := "UnknownError"
3194	errorMessage := errorCode
3195
3196	code := response.Header.Get("X-Amzn-ErrorType")
3197	if len(code) != 0 {
3198		errorCode = restjson.SanitizeErrorCode(code)
3199	}
3200
3201	var buff [1024]byte
3202	ringBuffer := smithyio.NewRingBuffer(buff[:])
3203
3204	body := io.TeeReader(errorBody, ringBuffer)
3205	decoder := json.NewDecoder(body)
3206	decoder.UseNumber()
3207	code, message, err := restjson.GetErrorInfo(decoder)
3208	if err != nil {
3209		var snapshot bytes.Buffer
3210		io.Copy(&snapshot, ringBuffer)
3211		err = &smithy.DeserializationError{
3212			Err:      fmt.Errorf("failed to decode response body, %w", err),
3213			Snapshot: snapshot.Bytes(),
3214		}
3215		return err
3216	}
3217
3218	errorBody.Seek(0, io.SeekStart)
3219	if len(code) != 0 {
3220		errorCode = restjson.SanitizeErrorCode(code)
3221	}
3222	if len(message) != 0 {
3223		errorMessage = message
3224	}
3225
3226	switch {
3227	case strings.EqualFold("InternalException", errorCode):
3228		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3229
3230	case strings.EqualFold("InvalidAccessException", errorCode):
3231		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3232
3233	case strings.EqualFold("InvalidInputException", errorCode):
3234		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3235
3236	case strings.EqualFold("LimitExceededException", errorCode):
3237		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3238
3239	case strings.EqualFold("ResourceNotFoundException", errorCode):
3240		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3241
3242	default:
3243		genericError := &smithy.GenericAPIError{
3244			Code:    errorCode,
3245			Message: errorMessage,
3246		}
3247		return genericError
3248
3249	}
3250}
3251
3252type awsRestjson1_deserializeOpDisableOrganizationAdminAccount struct {
3253}
3254
3255func (*awsRestjson1_deserializeOpDisableOrganizationAdminAccount) ID() string {
3256	return "OperationDeserializer"
3257}
3258
3259func (m *awsRestjson1_deserializeOpDisableOrganizationAdminAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3260	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3261) {
3262	out, metadata, err = next.HandleDeserialize(ctx, in)
3263	if err != nil {
3264		return out, metadata, err
3265	}
3266
3267	response, ok := out.RawResponse.(*smithyhttp.Response)
3268	if !ok {
3269		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3270	}
3271
3272	if response.StatusCode < 200 || response.StatusCode >= 300 {
3273		return out, metadata, awsRestjson1_deserializeOpErrorDisableOrganizationAdminAccount(response, &metadata)
3274	}
3275	output := &DisableOrganizationAdminAccountOutput{}
3276	out.Result = output
3277
3278	return out, metadata, err
3279}
3280
3281func awsRestjson1_deserializeOpErrorDisableOrganizationAdminAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3282	var errorBuffer bytes.Buffer
3283	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3284		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3285	}
3286	errorBody := bytes.NewReader(errorBuffer.Bytes())
3287
3288	errorCode := "UnknownError"
3289	errorMessage := errorCode
3290
3291	code := response.Header.Get("X-Amzn-ErrorType")
3292	if len(code) != 0 {
3293		errorCode = restjson.SanitizeErrorCode(code)
3294	}
3295
3296	var buff [1024]byte
3297	ringBuffer := smithyio.NewRingBuffer(buff[:])
3298
3299	body := io.TeeReader(errorBody, ringBuffer)
3300	decoder := json.NewDecoder(body)
3301	decoder.UseNumber()
3302	code, message, err := restjson.GetErrorInfo(decoder)
3303	if err != nil {
3304		var snapshot bytes.Buffer
3305		io.Copy(&snapshot, ringBuffer)
3306		err = &smithy.DeserializationError{
3307			Err:      fmt.Errorf("failed to decode response body, %w", err),
3308			Snapshot: snapshot.Bytes(),
3309		}
3310		return err
3311	}
3312
3313	errorBody.Seek(0, io.SeekStart)
3314	if len(code) != 0 {
3315		errorCode = restjson.SanitizeErrorCode(code)
3316	}
3317	if len(message) != 0 {
3318		errorMessage = message
3319	}
3320
3321	switch {
3322	case strings.EqualFold("InternalException", errorCode):
3323		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3324
3325	case strings.EqualFold("InvalidAccessException", errorCode):
3326		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3327
3328	case strings.EqualFold("InvalidInputException", errorCode):
3329		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3330
3331	case strings.EqualFold("LimitExceededException", errorCode):
3332		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3333
3334	default:
3335		genericError := &smithy.GenericAPIError{
3336			Code:    errorCode,
3337			Message: errorMessage,
3338		}
3339		return genericError
3340
3341	}
3342}
3343
3344type awsRestjson1_deserializeOpDisableSecurityHub struct {
3345}
3346
3347func (*awsRestjson1_deserializeOpDisableSecurityHub) ID() string {
3348	return "OperationDeserializer"
3349}
3350
3351func (m *awsRestjson1_deserializeOpDisableSecurityHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3352	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3353) {
3354	out, metadata, err = next.HandleDeserialize(ctx, in)
3355	if err != nil {
3356		return out, metadata, err
3357	}
3358
3359	response, ok := out.RawResponse.(*smithyhttp.Response)
3360	if !ok {
3361		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3362	}
3363
3364	if response.StatusCode < 200 || response.StatusCode >= 300 {
3365		return out, metadata, awsRestjson1_deserializeOpErrorDisableSecurityHub(response, &metadata)
3366	}
3367	output := &DisableSecurityHubOutput{}
3368	out.Result = output
3369
3370	return out, metadata, err
3371}
3372
3373func awsRestjson1_deserializeOpErrorDisableSecurityHub(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3374	var errorBuffer bytes.Buffer
3375	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3376		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3377	}
3378	errorBody := bytes.NewReader(errorBuffer.Bytes())
3379
3380	errorCode := "UnknownError"
3381	errorMessage := errorCode
3382
3383	code := response.Header.Get("X-Amzn-ErrorType")
3384	if len(code) != 0 {
3385		errorCode = restjson.SanitizeErrorCode(code)
3386	}
3387
3388	var buff [1024]byte
3389	ringBuffer := smithyio.NewRingBuffer(buff[:])
3390
3391	body := io.TeeReader(errorBody, ringBuffer)
3392	decoder := json.NewDecoder(body)
3393	decoder.UseNumber()
3394	code, message, err := restjson.GetErrorInfo(decoder)
3395	if err != nil {
3396		var snapshot bytes.Buffer
3397		io.Copy(&snapshot, ringBuffer)
3398		err = &smithy.DeserializationError{
3399			Err:      fmt.Errorf("failed to decode response body, %w", err),
3400			Snapshot: snapshot.Bytes(),
3401		}
3402		return err
3403	}
3404
3405	errorBody.Seek(0, io.SeekStart)
3406	if len(code) != 0 {
3407		errorCode = restjson.SanitizeErrorCode(code)
3408	}
3409	if len(message) != 0 {
3410		errorMessage = message
3411	}
3412
3413	switch {
3414	case strings.EqualFold("InternalException", errorCode):
3415		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3416
3417	case strings.EqualFold("InvalidAccessException", errorCode):
3418		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3419
3420	case strings.EqualFold("LimitExceededException", errorCode):
3421		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3422
3423	case strings.EqualFold("ResourceNotFoundException", errorCode):
3424		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3425
3426	default:
3427		genericError := &smithy.GenericAPIError{
3428			Code:    errorCode,
3429			Message: errorMessage,
3430		}
3431		return genericError
3432
3433	}
3434}
3435
3436type awsRestjson1_deserializeOpDisassociateFromAdministratorAccount struct {
3437}
3438
3439func (*awsRestjson1_deserializeOpDisassociateFromAdministratorAccount) ID() string {
3440	return "OperationDeserializer"
3441}
3442
3443func (m *awsRestjson1_deserializeOpDisassociateFromAdministratorAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3444	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3445) {
3446	out, metadata, err = next.HandleDeserialize(ctx, in)
3447	if err != nil {
3448		return out, metadata, err
3449	}
3450
3451	response, ok := out.RawResponse.(*smithyhttp.Response)
3452	if !ok {
3453		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3454	}
3455
3456	if response.StatusCode < 200 || response.StatusCode >= 300 {
3457		return out, metadata, awsRestjson1_deserializeOpErrorDisassociateFromAdministratorAccount(response, &metadata)
3458	}
3459	output := &DisassociateFromAdministratorAccountOutput{}
3460	out.Result = output
3461
3462	return out, metadata, err
3463}
3464
3465func awsRestjson1_deserializeOpErrorDisassociateFromAdministratorAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3466	var errorBuffer bytes.Buffer
3467	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3468		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3469	}
3470	errorBody := bytes.NewReader(errorBuffer.Bytes())
3471
3472	errorCode := "UnknownError"
3473	errorMessage := errorCode
3474
3475	code := response.Header.Get("X-Amzn-ErrorType")
3476	if len(code) != 0 {
3477		errorCode = restjson.SanitizeErrorCode(code)
3478	}
3479
3480	var buff [1024]byte
3481	ringBuffer := smithyio.NewRingBuffer(buff[:])
3482
3483	body := io.TeeReader(errorBody, ringBuffer)
3484	decoder := json.NewDecoder(body)
3485	decoder.UseNumber()
3486	code, message, err := restjson.GetErrorInfo(decoder)
3487	if err != nil {
3488		var snapshot bytes.Buffer
3489		io.Copy(&snapshot, ringBuffer)
3490		err = &smithy.DeserializationError{
3491			Err:      fmt.Errorf("failed to decode response body, %w", err),
3492			Snapshot: snapshot.Bytes(),
3493		}
3494		return err
3495	}
3496
3497	errorBody.Seek(0, io.SeekStart)
3498	if len(code) != 0 {
3499		errorCode = restjson.SanitizeErrorCode(code)
3500	}
3501	if len(message) != 0 {
3502		errorMessage = message
3503	}
3504
3505	switch {
3506	case strings.EqualFold("InternalException", errorCode):
3507		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3508
3509	case strings.EqualFold("InvalidAccessException", errorCode):
3510		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3511
3512	case strings.EqualFold("InvalidInputException", errorCode):
3513		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3514
3515	case strings.EqualFold("LimitExceededException", errorCode):
3516		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3517
3518	case strings.EqualFold("ResourceNotFoundException", errorCode):
3519		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3520
3521	default:
3522		genericError := &smithy.GenericAPIError{
3523			Code:    errorCode,
3524			Message: errorMessage,
3525		}
3526		return genericError
3527
3528	}
3529}
3530
3531type awsRestjson1_deserializeOpDisassociateFromMasterAccount struct {
3532}
3533
3534func (*awsRestjson1_deserializeOpDisassociateFromMasterAccount) ID() string {
3535	return "OperationDeserializer"
3536}
3537
3538func (m *awsRestjson1_deserializeOpDisassociateFromMasterAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3539	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3540) {
3541	out, metadata, err = next.HandleDeserialize(ctx, in)
3542	if err != nil {
3543		return out, metadata, err
3544	}
3545
3546	response, ok := out.RawResponse.(*smithyhttp.Response)
3547	if !ok {
3548		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3549	}
3550
3551	if response.StatusCode < 200 || response.StatusCode >= 300 {
3552		return out, metadata, awsRestjson1_deserializeOpErrorDisassociateFromMasterAccount(response, &metadata)
3553	}
3554	output := &DisassociateFromMasterAccountOutput{}
3555	out.Result = output
3556
3557	return out, metadata, err
3558}
3559
3560func awsRestjson1_deserializeOpErrorDisassociateFromMasterAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3561	var errorBuffer bytes.Buffer
3562	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3563		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3564	}
3565	errorBody := bytes.NewReader(errorBuffer.Bytes())
3566
3567	errorCode := "UnknownError"
3568	errorMessage := errorCode
3569
3570	code := response.Header.Get("X-Amzn-ErrorType")
3571	if len(code) != 0 {
3572		errorCode = restjson.SanitizeErrorCode(code)
3573	}
3574
3575	var buff [1024]byte
3576	ringBuffer := smithyio.NewRingBuffer(buff[:])
3577
3578	body := io.TeeReader(errorBody, ringBuffer)
3579	decoder := json.NewDecoder(body)
3580	decoder.UseNumber()
3581	code, message, err := restjson.GetErrorInfo(decoder)
3582	if err != nil {
3583		var snapshot bytes.Buffer
3584		io.Copy(&snapshot, ringBuffer)
3585		err = &smithy.DeserializationError{
3586			Err:      fmt.Errorf("failed to decode response body, %w", err),
3587			Snapshot: snapshot.Bytes(),
3588		}
3589		return err
3590	}
3591
3592	errorBody.Seek(0, io.SeekStart)
3593	if len(code) != 0 {
3594		errorCode = restjson.SanitizeErrorCode(code)
3595	}
3596	if len(message) != 0 {
3597		errorMessage = message
3598	}
3599
3600	switch {
3601	case strings.EqualFold("InternalException", errorCode):
3602		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3603
3604	case strings.EqualFold("InvalidAccessException", errorCode):
3605		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3606
3607	case strings.EqualFold("InvalidInputException", errorCode):
3608		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3609
3610	case strings.EqualFold("LimitExceededException", errorCode):
3611		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3612
3613	case strings.EqualFold("ResourceNotFoundException", errorCode):
3614		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3615
3616	default:
3617		genericError := &smithy.GenericAPIError{
3618			Code:    errorCode,
3619			Message: errorMessage,
3620		}
3621		return genericError
3622
3623	}
3624}
3625
3626type awsRestjson1_deserializeOpDisassociateMembers struct {
3627}
3628
3629func (*awsRestjson1_deserializeOpDisassociateMembers) ID() string {
3630	return "OperationDeserializer"
3631}
3632
3633func (m *awsRestjson1_deserializeOpDisassociateMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3634	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3635) {
3636	out, metadata, err = next.HandleDeserialize(ctx, in)
3637	if err != nil {
3638		return out, metadata, err
3639	}
3640
3641	response, ok := out.RawResponse.(*smithyhttp.Response)
3642	if !ok {
3643		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3644	}
3645
3646	if response.StatusCode < 200 || response.StatusCode >= 300 {
3647		return out, metadata, awsRestjson1_deserializeOpErrorDisassociateMembers(response, &metadata)
3648	}
3649	output := &DisassociateMembersOutput{}
3650	out.Result = output
3651
3652	return out, metadata, err
3653}
3654
3655func awsRestjson1_deserializeOpErrorDisassociateMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3656	var errorBuffer bytes.Buffer
3657	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3658		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3659	}
3660	errorBody := bytes.NewReader(errorBuffer.Bytes())
3661
3662	errorCode := "UnknownError"
3663	errorMessage := errorCode
3664
3665	code := response.Header.Get("X-Amzn-ErrorType")
3666	if len(code) != 0 {
3667		errorCode = restjson.SanitizeErrorCode(code)
3668	}
3669
3670	var buff [1024]byte
3671	ringBuffer := smithyio.NewRingBuffer(buff[:])
3672
3673	body := io.TeeReader(errorBody, ringBuffer)
3674	decoder := json.NewDecoder(body)
3675	decoder.UseNumber()
3676	code, message, err := restjson.GetErrorInfo(decoder)
3677	if err != nil {
3678		var snapshot bytes.Buffer
3679		io.Copy(&snapshot, ringBuffer)
3680		err = &smithy.DeserializationError{
3681			Err:      fmt.Errorf("failed to decode response body, %w", err),
3682			Snapshot: snapshot.Bytes(),
3683		}
3684		return err
3685	}
3686
3687	errorBody.Seek(0, io.SeekStart)
3688	if len(code) != 0 {
3689		errorCode = restjson.SanitizeErrorCode(code)
3690	}
3691	if len(message) != 0 {
3692		errorMessage = message
3693	}
3694
3695	switch {
3696	case strings.EqualFold("InternalException", errorCode):
3697		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3698
3699	case strings.EqualFold("InvalidAccessException", errorCode):
3700		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3701
3702	case strings.EqualFold("InvalidInputException", errorCode):
3703		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3704
3705	case strings.EqualFold("LimitExceededException", errorCode):
3706		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3707
3708	case strings.EqualFold("ResourceNotFoundException", errorCode):
3709		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
3710
3711	default:
3712		genericError := &smithy.GenericAPIError{
3713			Code:    errorCode,
3714			Message: errorMessage,
3715		}
3716		return genericError
3717
3718	}
3719}
3720
3721type awsRestjson1_deserializeOpEnableImportFindingsForProduct struct {
3722}
3723
3724func (*awsRestjson1_deserializeOpEnableImportFindingsForProduct) ID() string {
3725	return "OperationDeserializer"
3726}
3727
3728func (m *awsRestjson1_deserializeOpEnableImportFindingsForProduct) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3729	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3730) {
3731	out, metadata, err = next.HandleDeserialize(ctx, in)
3732	if err != nil {
3733		return out, metadata, err
3734	}
3735
3736	response, ok := out.RawResponse.(*smithyhttp.Response)
3737	if !ok {
3738		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3739	}
3740
3741	if response.StatusCode < 200 || response.StatusCode >= 300 {
3742		return out, metadata, awsRestjson1_deserializeOpErrorEnableImportFindingsForProduct(response, &metadata)
3743	}
3744	output := &EnableImportFindingsForProductOutput{}
3745	out.Result = output
3746
3747	var buff [1024]byte
3748	ringBuffer := smithyio.NewRingBuffer(buff[:])
3749
3750	body := io.TeeReader(response.Body, ringBuffer)
3751
3752	decoder := json.NewDecoder(body)
3753	decoder.UseNumber()
3754	var shape interface{}
3755	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3756		var snapshot bytes.Buffer
3757		io.Copy(&snapshot, ringBuffer)
3758		err = &smithy.DeserializationError{
3759			Err:      fmt.Errorf("failed to decode response body, %w", err),
3760			Snapshot: snapshot.Bytes(),
3761		}
3762		return out, metadata, err
3763	}
3764
3765	err = awsRestjson1_deserializeOpDocumentEnableImportFindingsForProductOutput(&output, shape)
3766	if err != nil {
3767		var snapshot bytes.Buffer
3768		io.Copy(&snapshot, ringBuffer)
3769		return out, metadata, &smithy.DeserializationError{
3770			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3771			Snapshot: snapshot.Bytes(),
3772		}
3773	}
3774
3775	return out, metadata, err
3776}
3777
3778func awsRestjson1_deserializeOpErrorEnableImportFindingsForProduct(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3779	var errorBuffer bytes.Buffer
3780	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3781		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3782	}
3783	errorBody := bytes.NewReader(errorBuffer.Bytes())
3784
3785	errorCode := "UnknownError"
3786	errorMessage := errorCode
3787
3788	code := response.Header.Get("X-Amzn-ErrorType")
3789	if len(code) != 0 {
3790		errorCode = restjson.SanitizeErrorCode(code)
3791	}
3792
3793	var buff [1024]byte
3794	ringBuffer := smithyio.NewRingBuffer(buff[:])
3795
3796	body := io.TeeReader(errorBody, ringBuffer)
3797	decoder := json.NewDecoder(body)
3798	decoder.UseNumber()
3799	code, message, err := restjson.GetErrorInfo(decoder)
3800	if err != nil {
3801		var snapshot bytes.Buffer
3802		io.Copy(&snapshot, ringBuffer)
3803		err = &smithy.DeserializationError{
3804			Err:      fmt.Errorf("failed to decode response body, %w", err),
3805			Snapshot: snapshot.Bytes(),
3806		}
3807		return err
3808	}
3809
3810	errorBody.Seek(0, io.SeekStart)
3811	if len(code) != 0 {
3812		errorCode = restjson.SanitizeErrorCode(code)
3813	}
3814	if len(message) != 0 {
3815		errorMessage = message
3816	}
3817
3818	switch {
3819	case strings.EqualFold("InternalException", errorCode):
3820		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3821
3822	case strings.EqualFold("InvalidAccessException", errorCode):
3823		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3824
3825	case strings.EqualFold("InvalidInputException", errorCode):
3826		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3827
3828	case strings.EqualFold("LimitExceededException", errorCode):
3829		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3830
3831	case strings.EqualFold("ResourceConflictException", errorCode):
3832		return awsRestjson1_deserializeErrorResourceConflictException(response, errorBody)
3833
3834	default:
3835		genericError := &smithy.GenericAPIError{
3836			Code:    errorCode,
3837			Message: errorMessage,
3838		}
3839		return genericError
3840
3841	}
3842}
3843
3844func awsRestjson1_deserializeOpDocumentEnableImportFindingsForProductOutput(v **EnableImportFindingsForProductOutput, value interface{}) error {
3845	if v == nil {
3846		return fmt.Errorf("unexpected nil of type %T", v)
3847	}
3848	if value == nil {
3849		return nil
3850	}
3851
3852	shape, ok := value.(map[string]interface{})
3853	if !ok {
3854		return fmt.Errorf("unexpected JSON type %v", value)
3855	}
3856
3857	var sv *EnableImportFindingsForProductOutput
3858	if *v == nil {
3859		sv = &EnableImportFindingsForProductOutput{}
3860	} else {
3861		sv = *v
3862	}
3863
3864	for key, value := range shape {
3865		switch key {
3866		case "ProductSubscriptionArn":
3867			if value != nil {
3868				jtv, ok := value.(string)
3869				if !ok {
3870					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
3871				}
3872				sv.ProductSubscriptionArn = ptr.String(jtv)
3873			}
3874
3875		default:
3876			_, _ = key, value
3877
3878		}
3879	}
3880	*v = sv
3881	return nil
3882}
3883
3884type awsRestjson1_deserializeOpEnableOrganizationAdminAccount struct {
3885}
3886
3887func (*awsRestjson1_deserializeOpEnableOrganizationAdminAccount) ID() string {
3888	return "OperationDeserializer"
3889}
3890
3891func (m *awsRestjson1_deserializeOpEnableOrganizationAdminAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3892	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3893) {
3894	out, metadata, err = next.HandleDeserialize(ctx, in)
3895	if err != nil {
3896		return out, metadata, err
3897	}
3898
3899	response, ok := out.RawResponse.(*smithyhttp.Response)
3900	if !ok {
3901		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3902	}
3903
3904	if response.StatusCode < 200 || response.StatusCode >= 300 {
3905		return out, metadata, awsRestjson1_deserializeOpErrorEnableOrganizationAdminAccount(response, &metadata)
3906	}
3907	output := &EnableOrganizationAdminAccountOutput{}
3908	out.Result = output
3909
3910	return out, metadata, err
3911}
3912
3913func awsRestjson1_deserializeOpErrorEnableOrganizationAdminAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3914	var errorBuffer bytes.Buffer
3915	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3916		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3917	}
3918	errorBody := bytes.NewReader(errorBuffer.Bytes())
3919
3920	errorCode := "UnknownError"
3921	errorMessage := errorCode
3922
3923	code := response.Header.Get("X-Amzn-ErrorType")
3924	if len(code) != 0 {
3925		errorCode = restjson.SanitizeErrorCode(code)
3926	}
3927
3928	var buff [1024]byte
3929	ringBuffer := smithyio.NewRingBuffer(buff[:])
3930
3931	body := io.TeeReader(errorBody, ringBuffer)
3932	decoder := json.NewDecoder(body)
3933	decoder.UseNumber()
3934	code, message, err := restjson.GetErrorInfo(decoder)
3935	if err != nil {
3936		var snapshot bytes.Buffer
3937		io.Copy(&snapshot, ringBuffer)
3938		err = &smithy.DeserializationError{
3939			Err:      fmt.Errorf("failed to decode response body, %w", err),
3940			Snapshot: snapshot.Bytes(),
3941		}
3942		return err
3943	}
3944
3945	errorBody.Seek(0, io.SeekStart)
3946	if len(code) != 0 {
3947		errorCode = restjson.SanitizeErrorCode(code)
3948	}
3949	if len(message) != 0 {
3950		errorMessage = message
3951	}
3952
3953	switch {
3954	case strings.EqualFold("InternalException", errorCode):
3955		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
3956
3957	case strings.EqualFold("InvalidAccessException", errorCode):
3958		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
3959
3960	case strings.EqualFold("InvalidInputException", errorCode):
3961		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
3962
3963	case strings.EqualFold("LimitExceededException", errorCode):
3964		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
3965
3966	default:
3967		genericError := &smithy.GenericAPIError{
3968			Code:    errorCode,
3969			Message: errorMessage,
3970		}
3971		return genericError
3972
3973	}
3974}
3975
3976type awsRestjson1_deserializeOpEnableSecurityHub struct {
3977}
3978
3979func (*awsRestjson1_deserializeOpEnableSecurityHub) ID() string {
3980	return "OperationDeserializer"
3981}
3982
3983func (m *awsRestjson1_deserializeOpEnableSecurityHub) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3984	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3985) {
3986	out, metadata, err = next.HandleDeserialize(ctx, in)
3987	if err != nil {
3988		return out, metadata, err
3989	}
3990
3991	response, ok := out.RawResponse.(*smithyhttp.Response)
3992	if !ok {
3993		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3994	}
3995
3996	if response.StatusCode < 200 || response.StatusCode >= 300 {
3997		return out, metadata, awsRestjson1_deserializeOpErrorEnableSecurityHub(response, &metadata)
3998	}
3999	output := &EnableSecurityHubOutput{}
4000	out.Result = output
4001
4002	return out, metadata, err
4003}
4004
4005func awsRestjson1_deserializeOpErrorEnableSecurityHub(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4006	var errorBuffer bytes.Buffer
4007	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4008		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4009	}
4010	errorBody := bytes.NewReader(errorBuffer.Bytes())
4011
4012	errorCode := "UnknownError"
4013	errorMessage := errorCode
4014
4015	code := response.Header.Get("X-Amzn-ErrorType")
4016	if len(code) != 0 {
4017		errorCode = restjson.SanitizeErrorCode(code)
4018	}
4019
4020	var buff [1024]byte
4021	ringBuffer := smithyio.NewRingBuffer(buff[:])
4022
4023	body := io.TeeReader(errorBody, ringBuffer)
4024	decoder := json.NewDecoder(body)
4025	decoder.UseNumber()
4026	code, message, err := restjson.GetErrorInfo(decoder)
4027	if err != nil {
4028		var snapshot bytes.Buffer
4029		io.Copy(&snapshot, ringBuffer)
4030		err = &smithy.DeserializationError{
4031			Err:      fmt.Errorf("failed to decode response body, %w", err),
4032			Snapshot: snapshot.Bytes(),
4033		}
4034		return err
4035	}
4036
4037	errorBody.Seek(0, io.SeekStart)
4038	if len(code) != 0 {
4039		errorCode = restjson.SanitizeErrorCode(code)
4040	}
4041	if len(message) != 0 {
4042		errorMessage = message
4043	}
4044
4045	switch {
4046	case strings.EqualFold("AccessDeniedException", errorCode):
4047		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
4048
4049	case strings.EqualFold("InternalException", errorCode):
4050		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4051
4052	case strings.EqualFold("InvalidAccessException", errorCode):
4053		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4054
4055	case strings.EqualFold("LimitExceededException", errorCode):
4056		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4057
4058	case strings.EqualFold("ResourceConflictException", errorCode):
4059		return awsRestjson1_deserializeErrorResourceConflictException(response, errorBody)
4060
4061	default:
4062		genericError := &smithy.GenericAPIError{
4063			Code:    errorCode,
4064			Message: errorMessage,
4065		}
4066		return genericError
4067
4068	}
4069}
4070
4071type awsRestjson1_deserializeOpGetAdministratorAccount struct {
4072}
4073
4074func (*awsRestjson1_deserializeOpGetAdministratorAccount) ID() string {
4075	return "OperationDeserializer"
4076}
4077
4078func (m *awsRestjson1_deserializeOpGetAdministratorAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4079	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4080) {
4081	out, metadata, err = next.HandleDeserialize(ctx, in)
4082	if err != nil {
4083		return out, metadata, err
4084	}
4085
4086	response, ok := out.RawResponse.(*smithyhttp.Response)
4087	if !ok {
4088		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4089	}
4090
4091	if response.StatusCode < 200 || response.StatusCode >= 300 {
4092		return out, metadata, awsRestjson1_deserializeOpErrorGetAdministratorAccount(response, &metadata)
4093	}
4094	output := &GetAdministratorAccountOutput{}
4095	out.Result = output
4096
4097	var buff [1024]byte
4098	ringBuffer := smithyio.NewRingBuffer(buff[:])
4099
4100	body := io.TeeReader(response.Body, ringBuffer)
4101
4102	decoder := json.NewDecoder(body)
4103	decoder.UseNumber()
4104	var shape interface{}
4105	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4106		var snapshot bytes.Buffer
4107		io.Copy(&snapshot, ringBuffer)
4108		err = &smithy.DeserializationError{
4109			Err:      fmt.Errorf("failed to decode response body, %w", err),
4110			Snapshot: snapshot.Bytes(),
4111		}
4112		return out, metadata, err
4113	}
4114
4115	err = awsRestjson1_deserializeOpDocumentGetAdministratorAccountOutput(&output, shape)
4116	if err != nil {
4117		var snapshot bytes.Buffer
4118		io.Copy(&snapshot, ringBuffer)
4119		return out, metadata, &smithy.DeserializationError{
4120			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4121			Snapshot: snapshot.Bytes(),
4122		}
4123	}
4124
4125	return out, metadata, err
4126}
4127
4128func awsRestjson1_deserializeOpErrorGetAdministratorAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4129	var errorBuffer bytes.Buffer
4130	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4131		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4132	}
4133	errorBody := bytes.NewReader(errorBuffer.Bytes())
4134
4135	errorCode := "UnknownError"
4136	errorMessage := errorCode
4137
4138	code := response.Header.Get("X-Amzn-ErrorType")
4139	if len(code) != 0 {
4140		errorCode = restjson.SanitizeErrorCode(code)
4141	}
4142
4143	var buff [1024]byte
4144	ringBuffer := smithyio.NewRingBuffer(buff[:])
4145
4146	body := io.TeeReader(errorBody, ringBuffer)
4147	decoder := json.NewDecoder(body)
4148	decoder.UseNumber()
4149	code, message, err := restjson.GetErrorInfo(decoder)
4150	if err != nil {
4151		var snapshot bytes.Buffer
4152		io.Copy(&snapshot, ringBuffer)
4153		err = &smithy.DeserializationError{
4154			Err:      fmt.Errorf("failed to decode response body, %w", err),
4155			Snapshot: snapshot.Bytes(),
4156		}
4157		return err
4158	}
4159
4160	errorBody.Seek(0, io.SeekStart)
4161	if len(code) != 0 {
4162		errorCode = restjson.SanitizeErrorCode(code)
4163	}
4164	if len(message) != 0 {
4165		errorMessage = message
4166	}
4167
4168	switch {
4169	case strings.EqualFold("InternalException", errorCode):
4170		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4171
4172	case strings.EqualFold("InvalidAccessException", errorCode):
4173		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4174
4175	case strings.EqualFold("InvalidInputException", errorCode):
4176		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4177
4178	case strings.EqualFold("LimitExceededException", errorCode):
4179		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4180
4181	case strings.EqualFold("ResourceNotFoundException", errorCode):
4182		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
4183
4184	default:
4185		genericError := &smithy.GenericAPIError{
4186			Code:    errorCode,
4187			Message: errorMessage,
4188		}
4189		return genericError
4190
4191	}
4192}
4193
4194func awsRestjson1_deserializeOpDocumentGetAdministratorAccountOutput(v **GetAdministratorAccountOutput, value interface{}) error {
4195	if v == nil {
4196		return fmt.Errorf("unexpected nil of type %T", v)
4197	}
4198	if value == nil {
4199		return nil
4200	}
4201
4202	shape, ok := value.(map[string]interface{})
4203	if !ok {
4204		return fmt.Errorf("unexpected JSON type %v", value)
4205	}
4206
4207	var sv *GetAdministratorAccountOutput
4208	if *v == nil {
4209		sv = &GetAdministratorAccountOutput{}
4210	} else {
4211		sv = *v
4212	}
4213
4214	for key, value := range shape {
4215		switch key {
4216		case "Administrator":
4217			if err := awsRestjson1_deserializeDocumentInvitation(&sv.Administrator, value); err != nil {
4218				return err
4219			}
4220
4221		default:
4222			_, _ = key, value
4223
4224		}
4225	}
4226	*v = sv
4227	return nil
4228}
4229
4230type awsRestjson1_deserializeOpGetEnabledStandards struct {
4231}
4232
4233func (*awsRestjson1_deserializeOpGetEnabledStandards) ID() string {
4234	return "OperationDeserializer"
4235}
4236
4237func (m *awsRestjson1_deserializeOpGetEnabledStandards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4238	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4239) {
4240	out, metadata, err = next.HandleDeserialize(ctx, in)
4241	if err != nil {
4242		return out, metadata, err
4243	}
4244
4245	response, ok := out.RawResponse.(*smithyhttp.Response)
4246	if !ok {
4247		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4248	}
4249
4250	if response.StatusCode < 200 || response.StatusCode >= 300 {
4251		return out, metadata, awsRestjson1_deserializeOpErrorGetEnabledStandards(response, &metadata)
4252	}
4253	output := &GetEnabledStandardsOutput{}
4254	out.Result = output
4255
4256	var buff [1024]byte
4257	ringBuffer := smithyio.NewRingBuffer(buff[:])
4258
4259	body := io.TeeReader(response.Body, ringBuffer)
4260
4261	decoder := json.NewDecoder(body)
4262	decoder.UseNumber()
4263	var shape interface{}
4264	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4265		var snapshot bytes.Buffer
4266		io.Copy(&snapshot, ringBuffer)
4267		err = &smithy.DeserializationError{
4268			Err:      fmt.Errorf("failed to decode response body, %w", err),
4269			Snapshot: snapshot.Bytes(),
4270		}
4271		return out, metadata, err
4272	}
4273
4274	err = awsRestjson1_deserializeOpDocumentGetEnabledStandardsOutput(&output, shape)
4275	if err != nil {
4276		var snapshot bytes.Buffer
4277		io.Copy(&snapshot, ringBuffer)
4278		return out, metadata, &smithy.DeserializationError{
4279			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4280			Snapshot: snapshot.Bytes(),
4281		}
4282	}
4283
4284	return out, metadata, err
4285}
4286
4287func awsRestjson1_deserializeOpErrorGetEnabledStandards(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4288	var errorBuffer bytes.Buffer
4289	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4290		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4291	}
4292	errorBody := bytes.NewReader(errorBuffer.Bytes())
4293
4294	errorCode := "UnknownError"
4295	errorMessage := errorCode
4296
4297	code := response.Header.Get("X-Amzn-ErrorType")
4298	if len(code) != 0 {
4299		errorCode = restjson.SanitizeErrorCode(code)
4300	}
4301
4302	var buff [1024]byte
4303	ringBuffer := smithyio.NewRingBuffer(buff[:])
4304
4305	body := io.TeeReader(errorBody, ringBuffer)
4306	decoder := json.NewDecoder(body)
4307	decoder.UseNumber()
4308	code, message, err := restjson.GetErrorInfo(decoder)
4309	if err != nil {
4310		var snapshot bytes.Buffer
4311		io.Copy(&snapshot, ringBuffer)
4312		err = &smithy.DeserializationError{
4313			Err:      fmt.Errorf("failed to decode response body, %w", err),
4314			Snapshot: snapshot.Bytes(),
4315		}
4316		return err
4317	}
4318
4319	errorBody.Seek(0, io.SeekStart)
4320	if len(code) != 0 {
4321		errorCode = restjson.SanitizeErrorCode(code)
4322	}
4323	if len(message) != 0 {
4324		errorMessage = message
4325	}
4326
4327	switch {
4328	case strings.EqualFold("InternalException", errorCode):
4329		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4330
4331	case strings.EqualFold("InvalidAccessException", errorCode):
4332		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4333
4334	case strings.EqualFold("InvalidInputException", errorCode):
4335		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4336
4337	case strings.EqualFold("LimitExceededException", errorCode):
4338		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4339
4340	default:
4341		genericError := &smithy.GenericAPIError{
4342			Code:    errorCode,
4343			Message: errorMessage,
4344		}
4345		return genericError
4346
4347	}
4348}
4349
4350func awsRestjson1_deserializeOpDocumentGetEnabledStandardsOutput(v **GetEnabledStandardsOutput, value interface{}) error {
4351	if v == nil {
4352		return fmt.Errorf("unexpected nil of type %T", v)
4353	}
4354	if value == nil {
4355		return nil
4356	}
4357
4358	shape, ok := value.(map[string]interface{})
4359	if !ok {
4360		return fmt.Errorf("unexpected JSON type %v", value)
4361	}
4362
4363	var sv *GetEnabledStandardsOutput
4364	if *v == nil {
4365		sv = &GetEnabledStandardsOutput{}
4366	} else {
4367		sv = *v
4368	}
4369
4370	for key, value := range shape {
4371		switch key {
4372		case "NextToken":
4373			if value != nil {
4374				jtv, ok := value.(string)
4375				if !ok {
4376					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
4377				}
4378				sv.NextToken = ptr.String(jtv)
4379			}
4380
4381		case "StandardsSubscriptions":
4382			if err := awsRestjson1_deserializeDocumentStandardsSubscriptions(&sv.StandardsSubscriptions, value); err != nil {
4383				return err
4384			}
4385
4386		default:
4387			_, _ = key, value
4388
4389		}
4390	}
4391	*v = sv
4392	return nil
4393}
4394
4395type awsRestjson1_deserializeOpGetFindings struct {
4396}
4397
4398func (*awsRestjson1_deserializeOpGetFindings) ID() string {
4399	return "OperationDeserializer"
4400}
4401
4402func (m *awsRestjson1_deserializeOpGetFindings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4403	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4404) {
4405	out, metadata, err = next.HandleDeserialize(ctx, in)
4406	if err != nil {
4407		return out, metadata, err
4408	}
4409
4410	response, ok := out.RawResponse.(*smithyhttp.Response)
4411	if !ok {
4412		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4413	}
4414
4415	if response.StatusCode < 200 || response.StatusCode >= 300 {
4416		return out, metadata, awsRestjson1_deserializeOpErrorGetFindings(response, &metadata)
4417	}
4418	output := &GetFindingsOutput{}
4419	out.Result = output
4420
4421	var buff [1024]byte
4422	ringBuffer := smithyio.NewRingBuffer(buff[:])
4423
4424	body := io.TeeReader(response.Body, ringBuffer)
4425
4426	decoder := json.NewDecoder(body)
4427	decoder.UseNumber()
4428	var shape interface{}
4429	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4430		var snapshot bytes.Buffer
4431		io.Copy(&snapshot, ringBuffer)
4432		err = &smithy.DeserializationError{
4433			Err:      fmt.Errorf("failed to decode response body, %w", err),
4434			Snapshot: snapshot.Bytes(),
4435		}
4436		return out, metadata, err
4437	}
4438
4439	err = awsRestjson1_deserializeOpDocumentGetFindingsOutput(&output, shape)
4440	if err != nil {
4441		var snapshot bytes.Buffer
4442		io.Copy(&snapshot, ringBuffer)
4443		return out, metadata, &smithy.DeserializationError{
4444			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4445			Snapshot: snapshot.Bytes(),
4446		}
4447	}
4448
4449	return out, metadata, err
4450}
4451
4452func awsRestjson1_deserializeOpErrorGetFindings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4453	var errorBuffer bytes.Buffer
4454	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4455		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4456	}
4457	errorBody := bytes.NewReader(errorBuffer.Bytes())
4458
4459	errorCode := "UnknownError"
4460	errorMessage := errorCode
4461
4462	code := response.Header.Get("X-Amzn-ErrorType")
4463	if len(code) != 0 {
4464		errorCode = restjson.SanitizeErrorCode(code)
4465	}
4466
4467	var buff [1024]byte
4468	ringBuffer := smithyio.NewRingBuffer(buff[:])
4469
4470	body := io.TeeReader(errorBody, ringBuffer)
4471	decoder := json.NewDecoder(body)
4472	decoder.UseNumber()
4473	code, message, err := restjson.GetErrorInfo(decoder)
4474	if err != nil {
4475		var snapshot bytes.Buffer
4476		io.Copy(&snapshot, ringBuffer)
4477		err = &smithy.DeserializationError{
4478			Err:      fmt.Errorf("failed to decode response body, %w", err),
4479			Snapshot: snapshot.Bytes(),
4480		}
4481		return err
4482	}
4483
4484	errorBody.Seek(0, io.SeekStart)
4485	if len(code) != 0 {
4486		errorCode = restjson.SanitizeErrorCode(code)
4487	}
4488	if len(message) != 0 {
4489		errorMessage = message
4490	}
4491
4492	switch {
4493	case strings.EqualFold("InternalException", errorCode):
4494		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4495
4496	case strings.EqualFold("InvalidAccessException", errorCode):
4497		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4498
4499	case strings.EqualFold("InvalidInputException", errorCode):
4500		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4501
4502	case strings.EqualFold("LimitExceededException", errorCode):
4503		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4504
4505	default:
4506		genericError := &smithy.GenericAPIError{
4507			Code:    errorCode,
4508			Message: errorMessage,
4509		}
4510		return genericError
4511
4512	}
4513}
4514
4515func awsRestjson1_deserializeOpDocumentGetFindingsOutput(v **GetFindingsOutput, value interface{}) error {
4516	if v == nil {
4517		return fmt.Errorf("unexpected nil of type %T", v)
4518	}
4519	if value == nil {
4520		return nil
4521	}
4522
4523	shape, ok := value.(map[string]interface{})
4524	if !ok {
4525		return fmt.Errorf("unexpected JSON type %v", value)
4526	}
4527
4528	var sv *GetFindingsOutput
4529	if *v == nil {
4530		sv = &GetFindingsOutput{}
4531	} else {
4532		sv = *v
4533	}
4534
4535	for key, value := range shape {
4536		switch key {
4537		case "Findings":
4538			if err := awsRestjson1_deserializeDocumentAwsSecurityFindingList(&sv.Findings, value); err != nil {
4539				return err
4540			}
4541
4542		case "NextToken":
4543			if value != nil {
4544				jtv, ok := value.(string)
4545				if !ok {
4546					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
4547				}
4548				sv.NextToken = ptr.String(jtv)
4549			}
4550
4551		default:
4552			_, _ = key, value
4553
4554		}
4555	}
4556	*v = sv
4557	return nil
4558}
4559
4560type awsRestjson1_deserializeOpGetInsightResults struct {
4561}
4562
4563func (*awsRestjson1_deserializeOpGetInsightResults) ID() string {
4564	return "OperationDeserializer"
4565}
4566
4567func (m *awsRestjson1_deserializeOpGetInsightResults) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4568	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4569) {
4570	out, metadata, err = next.HandleDeserialize(ctx, in)
4571	if err != nil {
4572		return out, metadata, err
4573	}
4574
4575	response, ok := out.RawResponse.(*smithyhttp.Response)
4576	if !ok {
4577		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4578	}
4579
4580	if response.StatusCode < 200 || response.StatusCode >= 300 {
4581		return out, metadata, awsRestjson1_deserializeOpErrorGetInsightResults(response, &metadata)
4582	}
4583	output := &GetInsightResultsOutput{}
4584	out.Result = output
4585
4586	var buff [1024]byte
4587	ringBuffer := smithyio.NewRingBuffer(buff[:])
4588
4589	body := io.TeeReader(response.Body, ringBuffer)
4590
4591	decoder := json.NewDecoder(body)
4592	decoder.UseNumber()
4593	var shape interface{}
4594	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4595		var snapshot bytes.Buffer
4596		io.Copy(&snapshot, ringBuffer)
4597		err = &smithy.DeserializationError{
4598			Err:      fmt.Errorf("failed to decode response body, %w", err),
4599			Snapshot: snapshot.Bytes(),
4600		}
4601		return out, metadata, err
4602	}
4603
4604	err = awsRestjson1_deserializeOpDocumentGetInsightResultsOutput(&output, shape)
4605	if err != nil {
4606		var snapshot bytes.Buffer
4607		io.Copy(&snapshot, ringBuffer)
4608		return out, metadata, &smithy.DeserializationError{
4609			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4610			Snapshot: snapshot.Bytes(),
4611		}
4612	}
4613
4614	return out, metadata, err
4615}
4616
4617func awsRestjson1_deserializeOpErrorGetInsightResults(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4618	var errorBuffer bytes.Buffer
4619	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4620		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4621	}
4622	errorBody := bytes.NewReader(errorBuffer.Bytes())
4623
4624	errorCode := "UnknownError"
4625	errorMessage := errorCode
4626
4627	code := response.Header.Get("X-Amzn-ErrorType")
4628	if len(code) != 0 {
4629		errorCode = restjson.SanitizeErrorCode(code)
4630	}
4631
4632	var buff [1024]byte
4633	ringBuffer := smithyio.NewRingBuffer(buff[:])
4634
4635	body := io.TeeReader(errorBody, ringBuffer)
4636	decoder := json.NewDecoder(body)
4637	decoder.UseNumber()
4638	code, message, err := restjson.GetErrorInfo(decoder)
4639	if err != nil {
4640		var snapshot bytes.Buffer
4641		io.Copy(&snapshot, ringBuffer)
4642		err = &smithy.DeserializationError{
4643			Err:      fmt.Errorf("failed to decode response body, %w", err),
4644			Snapshot: snapshot.Bytes(),
4645		}
4646		return err
4647	}
4648
4649	errorBody.Seek(0, io.SeekStart)
4650	if len(code) != 0 {
4651		errorCode = restjson.SanitizeErrorCode(code)
4652	}
4653	if len(message) != 0 {
4654		errorMessage = message
4655	}
4656
4657	switch {
4658	case strings.EqualFold("InternalException", errorCode):
4659		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4660
4661	case strings.EqualFold("InvalidAccessException", errorCode):
4662		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4663
4664	case strings.EqualFold("InvalidInputException", errorCode):
4665		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4666
4667	case strings.EqualFold("LimitExceededException", errorCode):
4668		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4669
4670	case strings.EqualFold("ResourceNotFoundException", errorCode):
4671		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
4672
4673	default:
4674		genericError := &smithy.GenericAPIError{
4675			Code:    errorCode,
4676			Message: errorMessage,
4677		}
4678		return genericError
4679
4680	}
4681}
4682
4683func awsRestjson1_deserializeOpDocumentGetInsightResultsOutput(v **GetInsightResultsOutput, value interface{}) error {
4684	if v == nil {
4685		return fmt.Errorf("unexpected nil of type %T", v)
4686	}
4687	if value == nil {
4688		return nil
4689	}
4690
4691	shape, ok := value.(map[string]interface{})
4692	if !ok {
4693		return fmt.Errorf("unexpected JSON type %v", value)
4694	}
4695
4696	var sv *GetInsightResultsOutput
4697	if *v == nil {
4698		sv = &GetInsightResultsOutput{}
4699	} else {
4700		sv = *v
4701	}
4702
4703	for key, value := range shape {
4704		switch key {
4705		case "InsightResults":
4706			if err := awsRestjson1_deserializeDocumentInsightResults(&sv.InsightResults, value); err != nil {
4707				return err
4708			}
4709
4710		default:
4711			_, _ = key, value
4712
4713		}
4714	}
4715	*v = sv
4716	return nil
4717}
4718
4719type awsRestjson1_deserializeOpGetInsights struct {
4720}
4721
4722func (*awsRestjson1_deserializeOpGetInsights) ID() string {
4723	return "OperationDeserializer"
4724}
4725
4726func (m *awsRestjson1_deserializeOpGetInsights) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4727	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4728) {
4729	out, metadata, err = next.HandleDeserialize(ctx, in)
4730	if err != nil {
4731		return out, metadata, err
4732	}
4733
4734	response, ok := out.RawResponse.(*smithyhttp.Response)
4735	if !ok {
4736		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4737	}
4738
4739	if response.StatusCode < 200 || response.StatusCode >= 300 {
4740		return out, metadata, awsRestjson1_deserializeOpErrorGetInsights(response, &metadata)
4741	}
4742	output := &GetInsightsOutput{}
4743	out.Result = output
4744
4745	var buff [1024]byte
4746	ringBuffer := smithyio.NewRingBuffer(buff[:])
4747
4748	body := io.TeeReader(response.Body, ringBuffer)
4749
4750	decoder := json.NewDecoder(body)
4751	decoder.UseNumber()
4752	var shape interface{}
4753	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4754		var snapshot bytes.Buffer
4755		io.Copy(&snapshot, ringBuffer)
4756		err = &smithy.DeserializationError{
4757			Err:      fmt.Errorf("failed to decode response body, %w", err),
4758			Snapshot: snapshot.Bytes(),
4759		}
4760		return out, metadata, err
4761	}
4762
4763	err = awsRestjson1_deserializeOpDocumentGetInsightsOutput(&output, shape)
4764	if err != nil {
4765		var snapshot bytes.Buffer
4766		io.Copy(&snapshot, ringBuffer)
4767		return out, metadata, &smithy.DeserializationError{
4768			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4769			Snapshot: snapshot.Bytes(),
4770		}
4771	}
4772
4773	return out, metadata, err
4774}
4775
4776func awsRestjson1_deserializeOpErrorGetInsights(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4777	var errorBuffer bytes.Buffer
4778	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4779		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4780	}
4781	errorBody := bytes.NewReader(errorBuffer.Bytes())
4782
4783	errorCode := "UnknownError"
4784	errorMessage := errorCode
4785
4786	code := response.Header.Get("X-Amzn-ErrorType")
4787	if len(code) != 0 {
4788		errorCode = restjson.SanitizeErrorCode(code)
4789	}
4790
4791	var buff [1024]byte
4792	ringBuffer := smithyio.NewRingBuffer(buff[:])
4793
4794	body := io.TeeReader(errorBody, ringBuffer)
4795	decoder := json.NewDecoder(body)
4796	decoder.UseNumber()
4797	code, message, err := restjson.GetErrorInfo(decoder)
4798	if err != nil {
4799		var snapshot bytes.Buffer
4800		io.Copy(&snapshot, ringBuffer)
4801		err = &smithy.DeserializationError{
4802			Err:      fmt.Errorf("failed to decode response body, %w", err),
4803			Snapshot: snapshot.Bytes(),
4804		}
4805		return err
4806	}
4807
4808	errorBody.Seek(0, io.SeekStart)
4809	if len(code) != 0 {
4810		errorCode = restjson.SanitizeErrorCode(code)
4811	}
4812	if len(message) != 0 {
4813		errorMessage = message
4814	}
4815
4816	switch {
4817	case strings.EqualFold("InternalException", errorCode):
4818		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4819
4820	case strings.EqualFold("InvalidAccessException", errorCode):
4821		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4822
4823	case strings.EqualFold("InvalidInputException", errorCode):
4824		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4825
4826	case strings.EqualFold("LimitExceededException", errorCode):
4827		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4828
4829	case strings.EqualFold("ResourceNotFoundException", errorCode):
4830		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
4831
4832	default:
4833		genericError := &smithy.GenericAPIError{
4834			Code:    errorCode,
4835			Message: errorMessage,
4836		}
4837		return genericError
4838
4839	}
4840}
4841
4842func awsRestjson1_deserializeOpDocumentGetInsightsOutput(v **GetInsightsOutput, value interface{}) error {
4843	if v == nil {
4844		return fmt.Errorf("unexpected nil of type %T", v)
4845	}
4846	if value == nil {
4847		return nil
4848	}
4849
4850	shape, ok := value.(map[string]interface{})
4851	if !ok {
4852		return fmt.Errorf("unexpected JSON type %v", value)
4853	}
4854
4855	var sv *GetInsightsOutput
4856	if *v == nil {
4857		sv = &GetInsightsOutput{}
4858	} else {
4859		sv = *v
4860	}
4861
4862	for key, value := range shape {
4863		switch key {
4864		case "Insights":
4865			if err := awsRestjson1_deserializeDocumentInsightList(&sv.Insights, value); err != nil {
4866				return err
4867			}
4868
4869		case "NextToken":
4870			if value != nil {
4871				jtv, ok := value.(string)
4872				if !ok {
4873					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
4874				}
4875				sv.NextToken = ptr.String(jtv)
4876			}
4877
4878		default:
4879			_, _ = key, value
4880
4881		}
4882	}
4883	*v = sv
4884	return nil
4885}
4886
4887type awsRestjson1_deserializeOpGetInvitationsCount struct {
4888}
4889
4890func (*awsRestjson1_deserializeOpGetInvitationsCount) ID() string {
4891	return "OperationDeserializer"
4892}
4893
4894func (m *awsRestjson1_deserializeOpGetInvitationsCount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4895	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4896) {
4897	out, metadata, err = next.HandleDeserialize(ctx, in)
4898	if err != nil {
4899		return out, metadata, err
4900	}
4901
4902	response, ok := out.RawResponse.(*smithyhttp.Response)
4903	if !ok {
4904		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4905	}
4906
4907	if response.StatusCode < 200 || response.StatusCode >= 300 {
4908		return out, metadata, awsRestjson1_deserializeOpErrorGetInvitationsCount(response, &metadata)
4909	}
4910	output := &GetInvitationsCountOutput{}
4911	out.Result = output
4912
4913	var buff [1024]byte
4914	ringBuffer := smithyio.NewRingBuffer(buff[:])
4915
4916	body := io.TeeReader(response.Body, ringBuffer)
4917
4918	decoder := json.NewDecoder(body)
4919	decoder.UseNumber()
4920	var shape interface{}
4921	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4922		var snapshot bytes.Buffer
4923		io.Copy(&snapshot, ringBuffer)
4924		err = &smithy.DeserializationError{
4925			Err:      fmt.Errorf("failed to decode response body, %w", err),
4926			Snapshot: snapshot.Bytes(),
4927		}
4928		return out, metadata, err
4929	}
4930
4931	err = awsRestjson1_deserializeOpDocumentGetInvitationsCountOutput(&output, shape)
4932	if err != nil {
4933		var snapshot bytes.Buffer
4934		io.Copy(&snapshot, ringBuffer)
4935		return out, metadata, &smithy.DeserializationError{
4936			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4937			Snapshot: snapshot.Bytes(),
4938		}
4939	}
4940
4941	return out, metadata, err
4942}
4943
4944func awsRestjson1_deserializeOpErrorGetInvitationsCount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4945	var errorBuffer bytes.Buffer
4946	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4947		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4948	}
4949	errorBody := bytes.NewReader(errorBuffer.Bytes())
4950
4951	errorCode := "UnknownError"
4952	errorMessage := errorCode
4953
4954	code := response.Header.Get("X-Amzn-ErrorType")
4955	if len(code) != 0 {
4956		errorCode = restjson.SanitizeErrorCode(code)
4957	}
4958
4959	var buff [1024]byte
4960	ringBuffer := smithyio.NewRingBuffer(buff[:])
4961
4962	body := io.TeeReader(errorBody, ringBuffer)
4963	decoder := json.NewDecoder(body)
4964	decoder.UseNumber()
4965	code, message, err := restjson.GetErrorInfo(decoder)
4966	if err != nil {
4967		var snapshot bytes.Buffer
4968		io.Copy(&snapshot, ringBuffer)
4969		err = &smithy.DeserializationError{
4970			Err:      fmt.Errorf("failed to decode response body, %w", err),
4971			Snapshot: snapshot.Bytes(),
4972		}
4973		return err
4974	}
4975
4976	errorBody.Seek(0, io.SeekStart)
4977	if len(code) != 0 {
4978		errorCode = restjson.SanitizeErrorCode(code)
4979	}
4980	if len(message) != 0 {
4981		errorMessage = message
4982	}
4983
4984	switch {
4985	case strings.EqualFold("InternalException", errorCode):
4986		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
4987
4988	case strings.EqualFold("InvalidAccessException", errorCode):
4989		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
4990
4991	case strings.EqualFold("InvalidInputException", errorCode):
4992		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
4993
4994	case strings.EqualFold("LimitExceededException", errorCode):
4995		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
4996
4997	default:
4998		genericError := &smithy.GenericAPIError{
4999			Code:    errorCode,
5000			Message: errorMessage,
5001		}
5002		return genericError
5003
5004	}
5005}
5006
5007func awsRestjson1_deserializeOpDocumentGetInvitationsCountOutput(v **GetInvitationsCountOutput, value interface{}) error {
5008	if v == nil {
5009		return fmt.Errorf("unexpected nil of type %T", v)
5010	}
5011	if value == nil {
5012		return nil
5013	}
5014
5015	shape, ok := value.(map[string]interface{})
5016	if !ok {
5017		return fmt.Errorf("unexpected JSON type %v", value)
5018	}
5019
5020	var sv *GetInvitationsCountOutput
5021	if *v == nil {
5022		sv = &GetInvitationsCountOutput{}
5023	} else {
5024		sv = *v
5025	}
5026
5027	for key, value := range shape {
5028		switch key {
5029		case "InvitationsCount":
5030			if value != nil {
5031				jtv, ok := value.(json.Number)
5032				if !ok {
5033					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
5034				}
5035				i64, err := jtv.Int64()
5036				if err != nil {
5037					return err
5038				}
5039				sv.InvitationsCount = int32(i64)
5040			}
5041
5042		default:
5043			_, _ = key, value
5044
5045		}
5046	}
5047	*v = sv
5048	return nil
5049}
5050
5051type awsRestjson1_deserializeOpGetMasterAccount struct {
5052}
5053
5054func (*awsRestjson1_deserializeOpGetMasterAccount) ID() string {
5055	return "OperationDeserializer"
5056}
5057
5058func (m *awsRestjson1_deserializeOpGetMasterAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5059	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5060) {
5061	out, metadata, err = next.HandleDeserialize(ctx, in)
5062	if err != nil {
5063		return out, metadata, err
5064	}
5065
5066	response, ok := out.RawResponse.(*smithyhttp.Response)
5067	if !ok {
5068		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5069	}
5070
5071	if response.StatusCode < 200 || response.StatusCode >= 300 {
5072		return out, metadata, awsRestjson1_deserializeOpErrorGetMasterAccount(response, &metadata)
5073	}
5074	output := &GetMasterAccountOutput{}
5075	out.Result = output
5076
5077	var buff [1024]byte
5078	ringBuffer := smithyio.NewRingBuffer(buff[:])
5079
5080	body := io.TeeReader(response.Body, ringBuffer)
5081
5082	decoder := json.NewDecoder(body)
5083	decoder.UseNumber()
5084	var shape interface{}
5085	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5086		var snapshot bytes.Buffer
5087		io.Copy(&snapshot, ringBuffer)
5088		err = &smithy.DeserializationError{
5089			Err:      fmt.Errorf("failed to decode response body, %w", err),
5090			Snapshot: snapshot.Bytes(),
5091		}
5092		return out, metadata, err
5093	}
5094
5095	err = awsRestjson1_deserializeOpDocumentGetMasterAccountOutput(&output, shape)
5096	if err != nil {
5097		var snapshot bytes.Buffer
5098		io.Copy(&snapshot, ringBuffer)
5099		return out, metadata, &smithy.DeserializationError{
5100			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5101			Snapshot: snapshot.Bytes(),
5102		}
5103	}
5104
5105	return out, metadata, err
5106}
5107
5108func awsRestjson1_deserializeOpErrorGetMasterAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5109	var errorBuffer bytes.Buffer
5110	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5111		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5112	}
5113	errorBody := bytes.NewReader(errorBuffer.Bytes())
5114
5115	errorCode := "UnknownError"
5116	errorMessage := errorCode
5117
5118	code := response.Header.Get("X-Amzn-ErrorType")
5119	if len(code) != 0 {
5120		errorCode = restjson.SanitizeErrorCode(code)
5121	}
5122
5123	var buff [1024]byte
5124	ringBuffer := smithyio.NewRingBuffer(buff[:])
5125
5126	body := io.TeeReader(errorBody, ringBuffer)
5127	decoder := json.NewDecoder(body)
5128	decoder.UseNumber()
5129	code, message, err := restjson.GetErrorInfo(decoder)
5130	if err != nil {
5131		var snapshot bytes.Buffer
5132		io.Copy(&snapshot, ringBuffer)
5133		err = &smithy.DeserializationError{
5134			Err:      fmt.Errorf("failed to decode response body, %w", err),
5135			Snapshot: snapshot.Bytes(),
5136		}
5137		return err
5138	}
5139
5140	errorBody.Seek(0, io.SeekStart)
5141	if len(code) != 0 {
5142		errorCode = restjson.SanitizeErrorCode(code)
5143	}
5144	if len(message) != 0 {
5145		errorMessage = message
5146	}
5147
5148	switch {
5149	case strings.EqualFold("InternalException", errorCode):
5150		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5151
5152	case strings.EqualFold("InvalidAccessException", errorCode):
5153		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5154
5155	case strings.EqualFold("InvalidInputException", errorCode):
5156		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
5157
5158	case strings.EqualFold("LimitExceededException", errorCode):
5159		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5160
5161	case strings.EqualFold("ResourceNotFoundException", errorCode):
5162		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
5163
5164	default:
5165		genericError := &smithy.GenericAPIError{
5166			Code:    errorCode,
5167			Message: errorMessage,
5168		}
5169		return genericError
5170
5171	}
5172}
5173
5174func awsRestjson1_deserializeOpDocumentGetMasterAccountOutput(v **GetMasterAccountOutput, value interface{}) error {
5175	if v == nil {
5176		return fmt.Errorf("unexpected nil of type %T", v)
5177	}
5178	if value == nil {
5179		return nil
5180	}
5181
5182	shape, ok := value.(map[string]interface{})
5183	if !ok {
5184		return fmt.Errorf("unexpected JSON type %v", value)
5185	}
5186
5187	var sv *GetMasterAccountOutput
5188	if *v == nil {
5189		sv = &GetMasterAccountOutput{}
5190	} else {
5191		sv = *v
5192	}
5193
5194	for key, value := range shape {
5195		switch key {
5196		case "Master":
5197			if err := awsRestjson1_deserializeDocumentInvitation(&sv.Master, value); err != nil {
5198				return err
5199			}
5200
5201		default:
5202			_, _ = key, value
5203
5204		}
5205	}
5206	*v = sv
5207	return nil
5208}
5209
5210type awsRestjson1_deserializeOpGetMembers struct {
5211}
5212
5213func (*awsRestjson1_deserializeOpGetMembers) ID() string {
5214	return "OperationDeserializer"
5215}
5216
5217func (m *awsRestjson1_deserializeOpGetMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5218	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5219) {
5220	out, metadata, err = next.HandleDeserialize(ctx, in)
5221	if err != nil {
5222		return out, metadata, err
5223	}
5224
5225	response, ok := out.RawResponse.(*smithyhttp.Response)
5226	if !ok {
5227		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5228	}
5229
5230	if response.StatusCode < 200 || response.StatusCode >= 300 {
5231		return out, metadata, awsRestjson1_deserializeOpErrorGetMembers(response, &metadata)
5232	}
5233	output := &GetMembersOutput{}
5234	out.Result = output
5235
5236	var buff [1024]byte
5237	ringBuffer := smithyio.NewRingBuffer(buff[:])
5238
5239	body := io.TeeReader(response.Body, ringBuffer)
5240
5241	decoder := json.NewDecoder(body)
5242	decoder.UseNumber()
5243	var shape interface{}
5244	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5245		var snapshot bytes.Buffer
5246		io.Copy(&snapshot, ringBuffer)
5247		err = &smithy.DeserializationError{
5248			Err:      fmt.Errorf("failed to decode response body, %w", err),
5249			Snapshot: snapshot.Bytes(),
5250		}
5251		return out, metadata, err
5252	}
5253
5254	err = awsRestjson1_deserializeOpDocumentGetMembersOutput(&output, shape)
5255	if err != nil {
5256		var snapshot bytes.Buffer
5257		io.Copy(&snapshot, ringBuffer)
5258		return out, metadata, &smithy.DeserializationError{
5259			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5260			Snapshot: snapshot.Bytes(),
5261		}
5262	}
5263
5264	return out, metadata, err
5265}
5266
5267func awsRestjson1_deserializeOpErrorGetMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5268	var errorBuffer bytes.Buffer
5269	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5270		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5271	}
5272	errorBody := bytes.NewReader(errorBuffer.Bytes())
5273
5274	errorCode := "UnknownError"
5275	errorMessage := errorCode
5276
5277	code := response.Header.Get("X-Amzn-ErrorType")
5278	if len(code) != 0 {
5279		errorCode = restjson.SanitizeErrorCode(code)
5280	}
5281
5282	var buff [1024]byte
5283	ringBuffer := smithyio.NewRingBuffer(buff[:])
5284
5285	body := io.TeeReader(errorBody, ringBuffer)
5286	decoder := json.NewDecoder(body)
5287	decoder.UseNumber()
5288	code, message, err := restjson.GetErrorInfo(decoder)
5289	if err != nil {
5290		var snapshot bytes.Buffer
5291		io.Copy(&snapshot, ringBuffer)
5292		err = &smithy.DeserializationError{
5293			Err:      fmt.Errorf("failed to decode response body, %w", err),
5294			Snapshot: snapshot.Bytes(),
5295		}
5296		return err
5297	}
5298
5299	errorBody.Seek(0, io.SeekStart)
5300	if len(code) != 0 {
5301		errorCode = restjson.SanitizeErrorCode(code)
5302	}
5303	if len(message) != 0 {
5304		errorMessage = message
5305	}
5306
5307	switch {
5308	case strings.EqualFold("InternalException", errorCode):
5309		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5310
5311	case strings.EqualFold("InvalidAccessException", errorCode):
5312		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5313
5314	case strings.EqualFold("InvalidInputException", errorCode):
5315		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
5316
5317	case strings.EqualFold("LimitExceededException", errorCode):
5318		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5319
5320	case strings.EqualFold("ResourceNotFoundException", errorCode):
5321		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
5322
5323	default:
5324		genericError := &smithy.GenericAPIError{
5325			Code:    errorCode,
5326			Message: errorMessage,
5327		}
5328		return genericError
5329
5330	}
5331}
5332
5333func awsRestjson1_deserializeOpDocumentGetMembersOutput(v **GetMembersOutput, value interface{}) error {
5334	if v == nil {
5335		return fmt.Errorf("unexpected nil of type %T", v)
5336	}
5337	if value == nil {
5338		return nil
5339	}
5340
5341	shape, ok := value.(map[string]interface{})
5342	if !ok {
5343		return fmt.Errorf("unexpected JSON type %v", value)
5344	}
5345
5346	var sv *GetMembersOutput
5347	if *v == nil {
5348		sv = &GetMembersOutput{}
5349	} else {
5350		sv = *v
5351	}
5352
5353	for key, value := range shape {
5354		switch key {
5355		case "Members":
5356			if err := awsRestjson1_deserializeDocumentMemberList(&sv.Members, value); err != nil {
5357				return err
5358			}
5359
5360		case "UnprocessedAccounts":
5361			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
5362				return err
5363			}
5364
5365		default:
5366			_, _ = key, value
5367
5368		}
5369	}
5370	*v = sv
5371	return nil
5372}
5373
5374type awsRestjson1_deserializeOpInviteMembers struct {
5375}
5376
5377func (*awsRestjson1_deserializeOpInviteMembers) ID() string {
5378	return "OperationDeserializer"
5379}
5380
5381func (m *awsRestjson1_deserializeOpInviteMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5382	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5383) {
5384	out, metadata, err = next.HandleDeserialize(ctx, in)
5385	if err != nil {
5386		return out, metadata, err
5387	}
5388
5389	response, ok := out.RawResponse.(*smithyhttp.Response)
5390	if !ok {
5391		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5392	}
5393
5394	if response.StatusCode < 200 || response.StatusCode >= 300 {
5395		return out, metadata, awsRestjson1_deserializeOpErrorInviteMembers(response, &metadata)
5396	}
5397	output := &InviteMembersOutput{}
5398	out.Result = output
5399
5400	var buff [1024]byte
5401	ringBuffer := smithyio.NewRingBuffer(buff[:])
5402
5403	body := io.TeeReader(response.Body, ringBuffer)
5404
5405	decoder := json.NewDecoder(body)
5406	decoder.UseNumber()
5407	var shape interface{}
5408	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5409		var snapshot bytes.Buffer
5410		io.Copy(&snapshot, ringBuffer)
5411		err = &smithy.DeserializationError{
5412			Err:      fmt.Errorf("failed to decode response body, %w", err),
5413			Snapshot: snapshot.Bytes(),
5414		}
5415		return out, metadata, err
5416	}
5417
5418	err = awsRestjson1_deserializeOpDocumentInviteMembersOutput(&output, shape)
5419	if err != nil {
5420		var snapshot bytes.Buffer
5421		io.Copy(&snapshot, ringBuffer)
5422		return out, metadata, &smithy.DeserializationError{
5423			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5424			Snapshot: snapshot.Bytes(),
5425		}
5426	}
5427
5428	return out, metadata, err
5429}
5430
5431func awsRestjson1_deserializeOpErrorInviteMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5432	var errorBuffer bytes.Buffer
5433	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5434		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5435	}
5436	errorBody := bytes.NewReader(errorBuffer.Bytes())
5437
5438	errorCode := "UnknownError"
5439	errorMessage := errorCode
5440
5441	code := response.Header.Get("X-Amzn-ErrorType")
5442	if len(code) != 0 {
5443		errorCode = restjson.SanitizeErrorCode(code)
5444	}
5445
5446	var buff [1024]byte
5447	ringBuffer := smithyio.NewRingBuffer(buff[:])
5448
5449	body := io.TeeReader(errorBody, ringBuffer)
5450	decoder := json.NewDecoder(body)
5451	decoder.UseNumber()
5452	code, message, err := restjson.GetErrorInfo(decoder)
5453	if err != nil {
5454		var snapshot bytes.Buffer
5455		io.Copy(&snapshot, ringBuffer)
5456		err = &smithy.DeserializationError{
5457			Err:      fmt.Errorf("failed to decode response body, %w", err),
5458			Snapshot: snapshot.Bytes(),
5459		}
5460		return err
5461	}
5462
5463	errorBody.Seek(0, io.SeekStart)
5464	if len(code) != 0 {
5465		errorCode = restjson.SanitizeErrorCode(code)
5466	}
5467	if len(message) != 0 {
5468		errorMessage = message
5469	}
5470
5471	switch {
5472	case strings.EqualFold("InternalException", errorCode):
5473		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5474
5475	case strings.EqualFold("InvalidAccessException", errorCode):
5476		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5477
5478	case strings.EqualFold("InvalidInputException", errorCode):
5479		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
5480
5481	case strings.EqualFold("LimitExceededException", errorCode):
5482		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5483
5484	case strings.EqualFold("ResourceNotFoundException", errorCode):
5485		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
5486
5487	default:
5488		genericError := &smithy.GenericAPIError{
5489			Code:    errorCode,
5490			Message: errorMessage,
5491		}
5492		return genericError
5493
5494	}
5495}
5496
5497func awsRestjson1_deserializeOpDocumentInviteMembersOutput(v **InviteMembersOutput, value interface{}) error {
5498	if v == nil {
5499		return fmt.Errorf("unexpected nil of type %T", v)
5500	}
5501	if value == nil {
5502		return nil
5503	}
5504
5505	shape, ok := value.(map[string]interface{})
5506	if !ok {
5507		return fmt.Errorf("unexpected JSON type %v", value)
5508	}
5509
5510	var sv *InviteMembersOutput
5511	if *v == nil {
5512		sv = &InviteMembersOutput{}
5513	} else {
5514		sv = *v
5515	}
5516
5517	for key, value := range shape {
5518		switch key {
5519		case "UnprocessedAccounts":
5520			if err := awsRestjson1_deserializeDocumentResultList(&sv.UnprocessedAccounts, value); err != nil {
5521				return err
5522			}
5523
5524		default:
5525			_, _ = key, value
5526
5527		}
5528	}
5529	*v = sv
5530	return nil
5531}
5532
5533type awsRestjson1_deserializeOpListEnabledProductsForImport struct {
5534}
5535
5536func (*awsRestjson1_deserializeOpListEnabledProductsForImport) ID() string {
5537	return "OperationDeserializer"
5538}
5539
5540func (m *awsRestjson1_deserializeOpListEnabledProductsForImport) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5541	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5542) {
5543	out, metadata, err = next.HandleDeserialize(ctx, in)
5544	if err != nil {
5545		return out, metadata, err
5546	}
5547
5548	response, ok := out.RawResponse.(*smithyhttp.Response)
5549	if !ok {
5550		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5551	}
5552
5553	if response.StatusCode < 200 || response.StatusCode >= 300 {
5554		return out, metadata, awsRestjson1_deserializeOpErrorListEnabledProductsForImport(response, &metadata)
5555	}
5556	output := &ListEnabledProductsForImportOutput{}
5557	out.Result = output
5558
5559	var buff [1024]byte
5560	ringBuffer := smithyio.NewRingBuffer(buff[:])
5561
5562	body := io.TeeReader(response.Body, ringBuffer)
5563
5564	decoder := json.NewDecoder(body)
5565	decoder.UseNumber()
5566	var shape interface{}
5567	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5568		var snapshot bytes.Buffer
5569		io.Copy(&snapshot, ringBuffer)
5570		err = &smithy.DeserializationError{
5571			Err:      fmt.Errorf("failed to decode response body, %w", err),
5572			Snapshot: snapshot.Bytes(),
5573		}
5574		return out, metadata, err
5575	}
5576
5577	err = awsRestjson1_deserializeOpDocumentListEnabledProductsForImportOutput(&output, shape)
5578	if err != nil {
5579		var snapshot bytes.Buffer
5580		io.Copy(&snapshot, ringBuffer)
5581		return out, metadata, &smithy.DeserializationError{
5582			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5583			Snapshot: snapshot.Bytes(),
5584		}
5585	}
5586
5587	return out, metadata, err
5588}
5589
5590func awsRestjson1_deserializeOpErrorListEnabledProductsForImport(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5591	var errorBuffer bytes.Buffer
5592	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5593		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5594	}
5595	errorBody := bytes.NewReader(errorBuffer.Bytes())
5596
5597	errorCode := "UnknownError"
5598	errorMessage := errorCode
5599
5600	code := response.Header.Get("X-Amzn-ErrorType")
5601	if len(code) != 0 {
5602		errorCode = restjson.SanitizeErrorCode(code)
5603	}
5604
5605	var buff [1024]byte
5606	ringBuffer := smithyio.NewRingBuffer(buff[:])
5607
5608	body := io.TeeReader(errorBody, ringBuffer)
5609	decoder := json.NewDecoder(body)
5610	decoder.UseNumber()
5611	code, message, err := restjson.GetErrorInfo(decoder)
5612	if err != nil {
5613		var snapshot bytes.Buffer
5614		io.Copy(&snapshot, ringBuffer)
5615		err = &smithy.DeserializationError{
5616			Err:      fmt.Errorf("failed to decode response body, %w", err),
5617			Snapshot: snapshot.Bytes(),
5618		}
5619		return err
5620	}
5621
5622	errorBody.Seek(0, io.SeekStart)
5623	if len(code) != 0 {
5624		errorCode = restjson.SanitizeErrorCode(code)
5625	}
5626	if len(message) != 0 {
5627		errorMessage = message
5628	}
5629
5630	switch {
5631	case strings.EqualFold("InternalException", errorCode):
5632		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5633
5634	case strings.EqualFold("InvalidAccessException", errorCode):
5635		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5636
5637	case strings.EqualFold("LimitExceededException", errorCode):
5638		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5639
5640	default:
5641		genericError := &smithy.GenericAPIError{
5642			Code:    errorCode,
5643			Message: errorMessage,
5644		}
5645		return genericError
5646
5647	}
5648}
5649
5650func awsRestjson1_deserializeOpDocumentListEnabledProductsForImportOutput(v **ListEnabledProductsForImportOutput, value interface{}) error {
5651	if v == nil {
5652		return fmt.Errorf("unexpected nil of type %T", v)
5653	}
5654	if value == nil {
5655		return nil
5656	}
5657
5658	shape, ok := value.(map[string]interface{})
5659	if !ok {
5660		return fmt.Errorf("unexpected JSON type %v", value)
5661	}
5662
5663	var sv *ListEnabledProductsForImportOutput
5664	if *v == nil {
5665		sv = &ListEnabledProductsForImportOutput{}
5666	} else {
5667		sv = *v
5668	}
5669
5670	for key, value := range shape {
5671		switch key {
5672		case "NextToken":
5673			if value != nil {
5674				jtv, ok := value.(string)
5675				if !ok {
5676					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
5677				}
5678				sv.NextToken = ptr.String(jtv)
5679			}
5680
5681		case "ProductSubscriptions":
5682			if err := awsRestjson1_deserializeDocumentProductSubscriptionArnList(&sv.ProductSubscriptions, value); err != nil {
5683				return err
5684			}
5685
5686		default:
5687			_, _ = key, value
5688
5689		}
5690	}
5691	*v = sv
5692	return nil
5693}
5694
5695type awsRestjson1_deserializeOpListInvitations struct {
5696}
5697
5698func (*awsRestjson1_deserializeOpListInvitations) ID() string {
5699	return "OperationDeserializer"
5700}
5701
5702func (m *awsRestjson1_deserializeOpListInvitations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5703	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5704) {
5705	out, metadata, err = next.HandleDeserialize(ctx, in)
5706	if err != nil {
5707		return out, metadata, err
5708	}
5709
5710	response, ok := out.RawResponse.(*smithyhttp.Response)
5711	if !ok {
5712		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5713	}
5714
5715	if response.StatusCode < 200 || response.StatusCode >= 300 {
5716		return out, metadata, awsRestjson1_deserializeOpErrorListInvitations(response, &metadata)
5717	}
5718	output := &ListInvitationsOutput{}
5719	out.Result = output
5720
5721	var buff [1024]byte
5722	ringBuffer := smithyio.NewRingBuffer(buff[:])
5723
5724	body := io.TeeReader(response.Body, ringBuffer)
5725
5726	decoder := json.NewDecoder(body)
5727	decoder.UseNumber()
5728	var shape interface{}
5729	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5730		var snapshot bytes.Buffer
5731		io.Copy(&snapshot, ringBuffer)
5732		err = &smithy.DeserializationError{
5733			Err:      fmt.Errorf("failed to decode response body, %w", err),
5734			Snapshot: snapshot.Bytes(),
5735		}
5736		return out, metadata, err
5737	}
5738
5739	err = awsRestjson1_deserializeOpDocumentListInvitationsOutput(&output, shape)
5740	if err != nil {
5741		var snapshot bytes.Buffer
5742		io.Copy(&snapshot, ringBuffer)
5743		return out, metadata, &smithy.DeserializationError{
5744			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5745			Snapshot: snapshot.Bytes(),
5746		}
5747	}
5748
5749	return out, metadata, err
5750}
5751
5752func awsRestjson1_deserializeOpErrorListInvitations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5753	var errorBuffer bytes.Buffer
5754	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5755		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5756	}
5757	errorBody := bytes.NewReader(errorBuffer.Bytes())
5758
5759	errorCode := "UnknownError"
5760	errorMessage := errorCode
5761
5762	code := response.Header.Get("X-Amzn-ErrorType")
5763	if len(code) != 0 {
5764		errorCode = restjson.SanitizeErrorCode(code)
5765	}
5766
5767	var buff [1024]byte
5768	ringBuffer := smithyio.NewRingBuffer(buff[:])
5769
5770	body := io.TeeReader(errorBody, ringBuffer)
5771	decoder := json.NewDecoder(body)
5772	decoder.UseNumber()
5773	code, message, err := restjson.GetErrorInfo(decoder)
5774	if err != nil {
5775		var snapshot bytes.Buffer
5776		io.Copy(&snapshot, ringBuffer)
5777		err = &smithy.DeserializationError{
5778			Err:      fmt.Errorf("failed to decode response body, %w", err),
5779			Snapshot: snapshot.Bytes(),
5780		}
5781		return err
5782	}
5783
5784	errorBody.Seek(0, io.SeekStart)
5785	if len(code) != 0 {
5786		errorCode = restjson.SanitizeErrorCode(code)
5787	}
5788	if len(message) != 0 {
5789		errorMessage = message
5790	}
5791
5792	switch {
5793	case strings.EqualFold("InternalException", errorCode):
5794		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5795
5796	case strings.EqualFold("InvalidAccessException", errorCode):
5797		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5798
5799	case strings.EqualFold("InvalidInputException", errorCode):
5800		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
5801
5802	case strings.EqualFold("LimitExceededException", errorCode):
5803		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5804
5805	default:
5806		genericError := &smithy.GenericAPIError{
5807			Code:    errorCode,
5808			Message: errorMessage,
5809		}
5810		return genericError
5811
5812	}
5813}
5814
5815func awsRestjson1_deserializeOpDocumentListInvitationsOutput(v **ListInvitationsOutput, value interface{}) error {
5816	if v == nil {
5817		return fmt.Errorf("unexpected nil of type %T", v)
5818	}
5819	if value == nil {
5820		return nil
5821	}
5822
5823	shape, ok := value.(map[string]interface{})
5824	if !ok {
5825		return fmt.Errorf("unexpected JSON type %v", value)
5826	}
5827
5828	var sv *ListInvitationsOutput
5829	if *v == nil {
5830		sv = &ListInvitationsOutput{}
5831	} else {
5832		sv = *v
5833	}
5834
5835	for key, value := range shape {
5836		switch key {
5837		case "Invitations":
5838			if err := awsRestjson1_deserializeDocumentInvitationList(&sv.Invitations, value); err != nil {
5839				return err
5840			}
5841
5842		case "NextToken":
5843			if value != nil {
5844				jtv, ok := value.(string)
5845				if !ok {
5846					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
5847				}
5848				sv.NextToken = ptr.String(jtv)
5849			}
5850
5851		default:
5852			_, _ = key, value
5853
5854		}
5855	}
5856	*v = sv
5857	return nil
5858}
5859
5860type awsRestjson1_deserializeOpListMembers struct {
5861}
5862
5863func (*awsRestjson1_deserializeOpListMembers) ID() string {
5864	return "OperationDeserializer"
5865}
5866
5867func (m *awsRestjson1_deserializeOpListMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5868	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5869) {
5870	out, metadata, err = next.HandleDeserialize(ctx, in)
5871	if err != nil {
5872		return out, metadata, err
5873	}
5874
5875	response, ok := out.RawResponse.(*smithyhttp.Response)
5876	if !ok {
5877		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5878	}
5879
5880	if response.StatusCode < 200 || response.StatusCode >= 300 {
5881		return out, metadata, awsRestjson1_deserializeOpErrorListMembers(response, &metadata)
5882	}
5883	output := &ListMembersOutput{}
5884	out.Result = output
5885
5886	var buff [1024]byte
5887	ringBuffer := smithyio.NewRingBuffer(buff[:])
5888
5889	body := io.TeeReader(response.Body, ringBuffer)
5890
5891	decoder := json.NewDecoder(body)
5892	decoder.UseNumber()
5893	var shape interface{}
5894	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5895		var snapshot bytes.Buffer
5896		io.Copy(&snapshot, ringBuffer)
5897		err = &smithy.DeserializationError{
5898			Err:      fmt.Errorf("failed to decode response body, %w", err),
5899			Snapshot: snapshot.Bytes(),
5900		}
5901		return out, metadata, err
5902	}
5903
5904	err = awsRestjson1_deserializeOpDocumentListMembersOutput(&output, shape)
5905	if err != nil {
5906		var snapshot bytes.Buffer
5907		io.Copy(&snapshot, ringBuffer)
5908		return out, metadata, &smithy.DeserializationError{
5909			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5910			Snapshot: snapshot.Bytes(),
5911		}
5912	}
5913
5914	return out, metadata, err
5915}
5916
5917func awsRestjson1_deserializeOpErrorListMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5918	var errorBuffer bytes.Buffer
5919	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5920		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5921	}
5922	errorBody := bytes.NewReader(errorBuffer.Bytes())
5923
5924	errorCode := "UnknownError"
5925	errorMessage := errorCode
5926
5927	code := response.Header.Get("X-Amzn-ErrorType")
5928	if len(code) != 0 {
5929		errorCode = restjson.SanitizeErrorCode(code)
5930	}
5931
5932	var buff [1024]byte
5933	ringBuffer := smithyio.NewRingBuffer(buff[:])
5934
5935	body := io.TeeReader(errorBody, ringBuffer)
5936	decoder := json.NewDecoder(body)
5937	decoder.UseNumber()
5938	code, message, err := restjson.GetErrorInfo(decoder)
5939	if err != nil {
5940		var snapshot bytes.Buffer
5941		io.Copy(&snapshot, ringBuffer)
5942		err = &smithy.DeserializationError{
5943			Err:      fmt.Errorf("failed to decode response body, %w", err),
5944			Snapshot: snapshot.Bytes(),
5945		}
5946		return err
5947	}
5948
5949	errorBody.Seek(0, io.SeekStart)
5950	if len(code) != 0 {
5951		errorCode = restjson.SanitizeErrorCode(code)
5952	}
5953	if len(message) != 0 {
5954		errorMessage = message
5955	}
5956
5957	switch {
5958	case strings.EqualFold("InternalException", errorCode):
5959		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
5960
5961	case strings.EqualFold("InvalidAccessException", errorCode):
5962		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
5963
5964	case strings.EqualFold("InvalidInputException", errorCode):
5965		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
5966
5967	case strings.EqualFold("LimitExceededException", errorCode):
5968		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
5969
5970	default:
5971		genericError := &smithy.GenericAPIError{
5972			Code:    errorCode,
5973			Message: errorMessage,
5974		}
5975		return genericError
5976
5977	}
5978}
5979
5980func awsRestjson1_deserializeOpDocumentListMembersOutput(v **ListMembersOutput, value interface{}) error {
5981	if v == nil {
5982		return fmt.Errorf("unexpected nil of type %T", v)
5983	}
5984	if value == nil {
5985		return nil
5986	}
5987
5988	shape, ok := value.(map[string]interface{})
5989	if !ok {
5990		return fmt.Errorf("unexpected JSON type %v", value)
5991	}
5992
5993	var sv *ListMembersOutput
5994	if *v == nil {
5995		sv = &ListMembersOutput{}
5996	} else {
5997		sv = *v
5998	}
5999
6000	for key, value := range shape {
6001		switch key {
6002		case "Members":
6003			if err := awsRestjson1_deserializeDocumentMemberList(&sv.Members, value); err != nil {
6004				return err
6005			}
6006
6007		case "NextToken":
6008			if value != nil {
6009				jtv, ok := value.(string)
6010				if !ok {
6011					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
6012				}
6013				sv.NextToken = ptr.String(jtv)
6014			}
6015
6016		default:
6017			_, _ = key, value
6018
6019		}
6020	}
6021	*v = sv
6022	return nil
6023}
6024
6025type awsRestjson1_deserializeOpListOrganizationAdminAccounts struct {
6026}
6027
6028func (*awsRestjson1_deserializeOpListOrganizationAdminAccounts) ID() string {
6029	return "OperationDeserializer"
6030}
6031
6032func (m *awsRestjson1_deserializeOpListOrganizationAdminAccounts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6033	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6034) {
6035	out, metadata, err = next.HandleDeserialize(ctx, in)
6036	if err != nil {
6037		return out, metadata, err
6038	}
6039
6040	response, ok := out.RawResponse.(*smithyhttp.Response)
6041	if !ok {
6042		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6043	}
6044
6045	if response.StatusCode < 200 || response.StatusCode >= 300 {
6046		return out, metadata, awsRestjson1_deserializeOpErrorListOrganizationAdminAccounts(response, &metadata)
6047	}
6048	output := &ListOrganizationAdminAccountsOutput{}
6049	out.Result = output
6050
6051	var buff [1024]byte
6052	ringBuffer := smithyio.NewRingBuffer(buff[:])
6053
6054	body := io.TeeReader(response.Body, ringBuffer)
6055
6056	decoder := json.NewDecoder(body)
6057	decoder.UseNumber()
6058	var shape interface{}
6059	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
6060		var snapshot bytes.Buffer
6061		io.Copy(&snapshot, ringBuffer)
6062		err = &smithy.DeserializationError{
6063			Err:      fmt.Errorf("failed to decode response body, %w", err),
6064			Snapshot: snapshot.Bytes(),
6065		}
6066		return out, metadata, err
6067	}
6068
6069	err = awsRestjson1_deserializeOpDocumentListOrganizationAdminAccountsOutput(&output, shape)
6070	if err != nil {
6071		var snapshot bytes.Buffer
6072		io.Copy(&snapshot, ringBuffer)
6073		return out, metadata, &smithy.DeserializationError{
6074			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
6075			Snapshot: snapshot.Bytes(),
6076		}
6077	}
6078
6079	return out, metadata, err
6080}
6081
6082func awsRestjson1_deserializeOpErrorListOrganizationAdminAccounts(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6083	var errorBuffer bytes.Buffer
6084	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6085		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6086	}
6087	errorBody := bytes.NewReader(errorBuffer.Bytes())
6088
6089	errorCode := "UnknownError"
6090	errorMessage := errorCode
6091
6092	code := response.Header.Get("X-Amzn-ErrorType")
6093	if len(code) != 0 {
6094		errorCode = restjson.SanitizeErrorCode(code)
6095	}
6096
6097	var buff [1024]byte
6098	ringBuffer := smithyio.NewRingBuffer(buff[:])
6099
6100	body := io.TeeReader(errorBody, ringBuffer)
6101	decoder := json.NewDecoder(body)
6102	decoder.UseNumber()
6103	code, message, err := restjson.GetErrorInfo(decoder)
6104	if err != nil {
6105		var snapshot bytes.Buffer
6106		io.Copy(&snapshot, ringBuffer)
6107		err = &smithy.DeserializationError{
6108			Err:      fmt.Errorf("failed to decode response body, %w", err),
6109			Snapshot: snapshot.Bytes(),
6110		}
6111		return err
6112	}
6113
6114	errorBody.Seek(0, io.SeekStart)
6115	if len(code) != 0 {
6116		errorCode = restjson.SanitizeErrorCode(code)
6117	}
6118	if len(message) != 0 {
6119		errorMessage = message
6120	}
6121
6122	switch {
6123	case strings.EqualFold("InternalException", errorCode):
6124		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6125
6126	case strings.EqualFold("InvalidAccessException", errorCode):
6127		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6128
6129	case strings.EqualFold("InvalidInputException", errorCode):
6130		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6131
6132	case strings.EqualFold("LimitExceededException", errorCode):
6133		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
6134
6135	default:
6136		genericError := &smithy.GenericAPIError{
6137			Code:    errorCode,
6138			Message: errorMessage,
6139		}
6140		return genericError
6141
6142	}
6143}
6144
6145func awsRestjson1_deserializeOpDocumentListOrganizationAdminAccountsOutput(v **ListOrganizationAdminAccountsOutput, value interface{}) error {
6146	if v == nil {
6147		return fmt.Errorf("unexpected nil of type %T", v)
6148	}
6149	if value == nil {
6150		return nil
6151	}
6152
6153	shape, ok := value.(map[string]interface{})
6154	if !ok {
6155		return fmt.Errorf("unexpected JSON type %v", value)
6156	}
6157
6158	var sv *ListOrganizationAdminAccountsOutput
6159	if *v == nil {
6160		sv = &ListOrganizationAdminAccountsOutput{}
6161	} else {
6162		sv = *v
6163	}
6164
6165	for key, value := range shape {
6166		switch key {
6167		case "AdminAccounts":
6168			if err := awsRestjson1_deserializeDocumentAdminAccounts(&sv.AdminAccounts, value); err != nil {
6169				return err
6170			}
6171
6172		case "NextToken":
6173			if value != nil {
6174				jtv, ok := value.(string)
6175				if !ok {
6176					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
6177				}
6178				sv.NextToken = ptr.String(jtv)
6179			}
6180
6181		default:
6182			_, _ = key, value
6183
6184		}
6185	}
6186	*v = sv
6187	return nil
6188}
6189
6190type awsRestjson1_deserializeOpListTagsForResource struct {
6191}
6192
6193func (*awsRestjson1_deserializeOpListTagsForResource) ID() string {
6194	return "OperationDeserializer"
6195}
6196
6197func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6198	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6199) {
6200	out, metadata, err = next.HandleDeserialize(ctx, in)
6201	if err != nil {
6202		return out, metadata, err
6203	}
6204
6205	response, ok := out.RawResponse.(*smithyhttp.Response)
6206	if !ok {
6207		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6208	}
6209
6210	if response.StatusCode < 200 || response.StatusCode >= 300 {
6211		return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata)
6212	}
6213	output := &ListTagsForResourceOutput{}
6214	out.Result = output
6215
6216	var buff [1024]byte
6217	ringBuffer := smithyio.NewRingBuffer(buff[:])
6218
6219	body := io.TeeReader(response.Body, ringBuffer)
6220
6221	decoder := json.NewDecoder(body)
6222	decoder.UseNumber()
6223	var shape interface{}
6224	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
6225		var snapshot bytes.Buffer
6226		io.Copy(&snapshot, ringBuffer)
6227		err = &smithy.DeserializationError{
6228			Err:      fmt.Errorf("failed to decode response body, %w", err),
6229			Snapshot: snapshot.Bytes(),
6230		}
6231		return out, metadata, err
6232	}
6233
6234	err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape)
6235	if err != nil {
6236		var snapshot bytes.Buffer
6237		io.Copy(&snapshot, ringBuffer)
6238		return out, metadata, &smithy.DeserializationError{
6239			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
6240			Snapshot: snapshot.Bytes(),
6241		}
6242	}
6243
6244	return out, metadata, err
6245}
6246
6247func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6248	var errorBuffer bytes.Buffer
6249	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6250		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6251	}
6252	errorBody := bytes.NewReader(errorBuffer.Bytes())
6253
6254	errorCode := "UnknownError"
6255	errorMessage := errorCode
6256
6257	code := response.Header.Get("X-Amzn-ErrorType")
6258	if len(code) != 0 {
6259		errorCode = restjson.SanitizeErrorCode(code)
6260	}
6261
6262	var buff [1024]byte
6263	ringBuffer := smithyio.NewRingBuffer(buff[:])
6264
6265	body := io.TeeReader(errorBody, ringBuffer)
6266	decoder := json.NewDecoder(body)
6267	decoder.UseNumber()
6268	code, message, err := restjson.GetErrorInfo(decoder)
6269	if err != nil {
6270		var snapshot bytes.Buffer
6271		io.Copy(&snapshot, ringBuffer)
6272		err = &smithy.DeserializationError{
6273			Err:      fmt.Errorf("failed to decode response body, %w", err),
6274			Snapshot: snapshot.Bytes(),
6275		}
6276		return err
6277	}
6278
6279	errorBody.Seek(0, io.SeekStart)
6280	if len(code) != 0 {
6281		errorCode = restjson.SanitizeErrorCode(code)
6282	}
6283	if len(message) != 0 {
6284		errorMessage = message
6285	}
6286
6287	switch {
6288	case strings.EqualFold("InternalException", errorCode):
6289		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6290
6291	case strings.EqualFold("InvalidInputException", errorCode):
6292		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6293
6294	case strings.EqualFold("ResourceNotFoundException", errorCode):
6295		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6296
6297	default:
6298		genericError := &smithy.GenericAPIError{
6299			Code:    errorCode,
6300			Message: errorMessage,
6301		}
6302		return genericError
6303
6304	}
6305}
6306
6307func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error {
6308	if v == nil {
6309		return fmt.Errorf("unexpected nil of type %T", v)
6310	}
6311	if value == nil {
6312		return nil
6313	}
6314
6315	shape, ok := value.(map[string]interface{})
6316	if !ok {
6317		return fmt.Errorf("unexpected JSON type %v", value)
6318	}
6319
6320	var sv *ListTagsForResourceOutput
6321	if *v == nil {
6322		sv = &ListTagsForResourceOutput{}
6323	} else {
6324		sv = *v
6325	}
6326
6327	for key, value := range shape {
6328		switch key {
6329		case "Tags":
6330			if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil {
6331				return err
6332			}
6333
6334		default:
6335			_, _ = key, value
6336
6337		}
6338	}
6339	*v = sv
6340	return nil
6341}
6342
6343type awsRestjson1_deserializeOpTagResource struct {
6344}
6345
6346func (*awsRestjson1_deserializeOpTagResource) ID() string {
6347	return "OperationDeserializer"
6348}
6349
6350func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6351	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6352) {
6353	out, metadata, err = next.HandleDeserialize(ctx, in)
6354	if err != nil {
6355		return out, metadata, err
6356	}
6357
6358	response, ok := out.RawResponse.(*smithyhttp.Response)
6359	if !ok {
6360		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6361	}
6362
6363	if response.StatusCode < 200 || response.StatusCode >= 300 {
6364		return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata)
6365	}
6366	output := &TagResourceOutput{}
6367	out.Result = output
6368
6369	return out, metadata, err
6370}
6371
6372func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6373	var errorBuffer bytes.Buffer
6374	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6375		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6376	}
6377	errorBody := bytes.NewReader(errorBuffer.Bytes())
6378
6379	errorCode := "UnknownError"
6380	errorMessage := errorCode
6381
6382	code := response.Header.Get("X-Amzn-ErrorType")
6383	if len(code) != 0 {
6384		errorCode = restjson.SanitizeErrorCode(code)
6385	}
6386
6387	var buff [1024]byte
6388	ringBuffer := smithyio.NewRingBuffer(buff[:])
6389
6390	body := io.TeeReader(errorBody, ringBuffer)
6391	decoder := json.NewDecoder(body)
6392	decoder.UseNumber()
6393	code, message, err := restjson.GetErrorInfo(decoder)
6394	if err != nil {
6395		var snapshot bytes.Buffer
6396		io.Copy(&snapshot, ringBuffer)
6397		err = &smithy.DeserializationError{
6398			Err:      fmt.Errorf("failed to decode response body, %w", err),
6399			Snapshot: snapshot.Bytes(),
6400		}
6401		return err
6402	}
6403
6404	errorBody.Seek(0, io.SeekStart)
6405	if len(code) != 0 {
6406		errorCode = restjson.SanitizeErrorCode(code)
6407	}
6408	if len(message) != 0 {
6409		errorMessage = message
6410	}
6411
6412	switch {
6413	case strings.EqualFold("InternalException", errorCode):
6414		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6415
6416	case strings.EqualFold("InvalidInputException", errorCode):
6417		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6418
6419	case strings.EqualFold("ResourceNotFoundException", errorCode):
6420		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6421
6422	default:
6423		genericError := &smithy.GenericAPIError{
6424			Code:    errorCode,
6425			Message: errorMessage,
6426		}
6427		return genericError
6428
6429	}
6430}
6431
6432type awsRestjson1_deserializeOpUntagResource struct {
6433}
6434
6435func (*awsRestjson1_deserializeOpUntagResource) ID() string {
6436	return "OperationDeserializer"
6437}
6438
6439func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6440	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6441) {
6442	out, metadata, err = next.HandleDeserialize(ctx, in)
6443	if err != nil {
6444		return out, metadata, err
6445	}
6446
6447	response, ok := out.RawResponse.(*smithyhttp.Response)
6448	if !ok {
6449		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6450	}
6451
6452	if response.StatusCode < 200 || response.StatusCode >= 300 {
6453		return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata)
6454	}
6455	output := &UntagResourceOutput{}
6456	out.Result = output
6457
6458	return out, metadata, err
6459}
6460
6461func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6462	var errorBuffer bytes.Buffer
6463	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6464		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6465	}
6466	errorBody := bytes.NewReader(errorBuffer.Bytes())
6467
6468	errorCode := "UnknownError"
6469	errorMessage := errorCode
6470
6471	code := response.Header.Get("X-Amzn-ErrorType")
6472	if len(code) != 0 {
6473		errorCode = restjson.SanitizeErrorCode(code)
6474	}
6475
6476	var buff [1024]byte
6477	ringBuffer := smithyio.NewRingBuffer(buff[:])
6478
6479	body := io.TeeReader(errorBody, ringBuffer)
6480	decoder := json.NewDecoder(body)
6481	decoder.UseNumber()
6482	code, message, err := restjson.GetErrorInfo(decoder)
6483	if err != nil {
6484		var snapshot bytes.Buffer
6485		io.Copy(&snapshot, ringBuffer)
6486		err = &smithy.DeserializationError{
6487			Err:      fmt.Errorf("failed to decode response body, %w", err),
6488			Snapshot: snapshot.Bytes(),
6489		}
6490		return err
6491	}
6492
6493	errorBody.Seek(0, io.SeekStart)
6494	if len(code) != 0 {
6495		errorCode = restjson.SanitizeErrorCode(code)
6496	}
6497	if len(message) != 0 {
6498		errorMessage = message
6499	}
6500
6501	switch {
6502	case strings.EqualFold("InternalException", errorCode):
6503		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6504
6505	case strings.EqualFold("InvalidInputException", errorCode):
6506		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6507
6508	case strings.EqualFold("ResourceNotFoundException", errorCode):
6509		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6510
6511	default:
6512		genericError := &smithy.GenericAPIError{
6513			Code:    errorCode,
6514			Message: errorMessage,
6515		}
6516		return genericError
6517
6518	}
6519}
6520
6521type awsRestjson1_deserializeOpUpdateActionTarget struct {
6522}
6523
6524func (*awsRestjson1_deserializeOpUpdateActionTarget) ID() string {
6525	return "OperationDeserializer"
6526}
6527
6528func (m *awsRestjson1_deserializeOpUpdateActionTarget) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6529	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6530) {
6531	out, metadata, err = next.HandleDeserialize(ctx, in)
6532	if err != nil {
6533		return out, metadata, err
6534	}
6535
6536	response, ok := out.RawResponse.(*smithyhttp.Response)
6537	if !ok {
6538		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6539	}
6540
6541	if response.StatusCode < 200 || response.StatusCode >= 300 {
6542		return out, metadata, awsRestjson1_deserializeOpErrorUpdateActionTarget(response, &metadata)
6543	}
6544	output := &UpdateActionTargetOutput{}
6545	out.Result = output
6546
6547	return out, metadata, err
6548}
6549
6550func awsRestjson1_deserializeOpErrorUpdateActionTarget(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6551	var errorBuffer bytes.Buffer
6552	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6553		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6554	}
6555	errorBody := bytes.NewReader(errorBuffer.Bytes())
6556
6557	errorCode := "UnknownError"
6558	errorMessage := errorCode
6559
6560	code := response.Header.Get("X-Amzn-ErrorType")
6561	if len(code) != 0 {
6562		errorCode = restjson.SanitizeErrorCode(code)
6563	}
6564
6565	var buff [1024]byte
6566	ringBuffer := smithyio.NewRingBuffer(buff[:])
6567
6568	body := io.TeeReader(errorBody, ringBuffer)
6569	decoder := json.NewDecoder(body)
6570	decoder.UseNumber()
6571	code, message, err := restjson.GetErrorInfo(decoder)
6572	if err != nil {
6573		var snapshot bytes.Buffer
6574		io.Copy(&snapshot, ringBuffer)
6575		err = &smithy.DeserializationError{
6576			Err:      fmt.Errorf("failed to decode response body, %w", err),
6577			Snapshot: snapshot.Bytes(),
6578		}
6579		return err
6580	}
6581
6582	errorBody.Seek(0, io.SeekStart)
6583	if len(code) != 0 {
6584		errorCode = restjson.SanitizeErrorCode(code)
6585	}
6586	if len(message) != 0 {
6587		errorMessage = message
6588	}
6589
6590	switch {
6591	case strings.EqualFold("InternalException", errorCode):
6592		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6593
6594	case strings.EqualFold("InvalidAccessException", errorCode):
6595		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6596
6597	case strings.EqualFold("InvalidInputException", errorCode):
6598		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6599
6600	case strings.EqualFold("ResourceNotFoundException", errorCode):
6601		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6602
6603	default:
6604		genericError := &smithy.GenericAPIError{
6605			Code:    errorCode,
6606			Message: errorMessage,
6607		}
6608		return genericError
6609
6610	}
6611}
6612
6613type awsRestjson1_deserializeOpUpdateFindings struct {
6614}
6615
6616func (*awsRestjson1_deserializeOpUpdateFindings) ID() string {
6617	return "OperationDeserializer"
6618}
6619
6620func (m *awsRestjson1_deserializeOpUpdateFindings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6621	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6622) {
6623	out, metadata, err = next.HandleDeserialize(ctx, in)
6624	if err != nil {
6625		return out, metadata, err
6626	}
6627
6628	response, ok := out.RawResponse.(*smithyhttp.Response)
6629	if !ok {
6630		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6631	}
6632
6633	if response.StatusCode < 200 || response.StatusCode >= 300 {
6634		return out, metadata, awsRestjson1_deserializeOpErrorUpdateFindings(response, &metadata)
6635	}
6636	output := &UpdateFindingsOutput{}
6637	out.Result = output
6638
6639	return out, metadata, err
6640}
6641
6642func awsRestjson1_deserializeOpErrorUpdateFindings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6643	var errorBuffer bytes.Buffer
6644	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6645		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6646	}
6647	errorBody := bytes.NewReader(errorBuffer.Bytes())
6648
6649	errorCode := "UnknownError"
6650	errorMessage := errorCode
6651
6652	code := response.Header.Get("X-Amzn-ErrorType")
6653	if len(code) != 0 {
6654		errorCode = restjson.SanitizeErrorCode(code)
6655	}
6656
6657	var buff [1024]byte
6658	ringBuffer := smithyio.NewRingBuffer(buff[:])
6659
6660	body := io.TeeReader(errorBody, ringBuffer)
6661	decoder := json.NewDecoder(body)
6662	decoder.UseNumber()
6663	code, message, err := restjson.GetErrorInfo(decoder)
6664	if err != nil {
6665		var snapshot bytes.Buffer
6666		io.Copy(&snapshot, ringBuffer)
6667		err = &smithy.DeserializationError{
6668			Err:      fmt.Errorf("failed to decode response body, %w", err),
6669			Snapshot: snapshot.Bytes(),
6670		}
6671		return err
6672	}
6673
6674	errorBody.Seek(0, io.SeekStart)
6675	if len(code) != 0 {
6676		errorCode = restjson.SanitizeErrorCode(code)
6677	}
6678	if len(message) != 0 {
6679		errorMessage = message
6680	}
6681
6682	switch {
6683	case strings.EqualFold("InternalException", errorCode):
6684		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6685
6686	case strings.EqualFold("InvalidAccessException", errorCode):
6687		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6688
6689	case strings.EqualFold("InvalidInputException", errorCode):
6690		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6691
6692	case strings.EqualFold("LimitExceededException", errorCode):
6693		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
6694
6695	case strings.EqualFold("ResourceNotFoundException", errorCode):
6696		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6697
6698	default:
6699		genericError := &smithy.GenericAPIError{
6700			Code:    errorCode,
6701			Message: errorMessage,
6702		}
6703		return genericError
6704
6705	}
6706}
6707
6708type awsRestjson1_deserializeOpUpdateInsight struct {
6709}
6710
6711func (*awsRestjson1_deserializeOpUpdateInsight) ID() string {
6712	return "OperationDeserializer"
6713}
6714
6715func (m *awsRestjson1_deserializeOpUpdateInsight) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6716	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6717) {
6718	out, metadata, err = next.HandleDeserialize(ctx, in)
6719	if err != nil {
6720		return out, metadata, err
6721	}
6722
6723	response, ok := out.RawResponse.(*smithyhttp.Response)
6724	if !ok {
6725		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6726	}
6727
6728	if response.StatusCode < 200 || response.StatusCode >= 300 {
6729		return out, metadata, awsRestjson1_deserializeOpErrorUpdateInsight(response, &metadata)
6730	}
6731	output := &UpdateInsightOutput{}
6732	out.Result = output
6733
6734	return out, metadata, err
6735}
6736
6737func awsRestjson1_deserializeOpErrorUpdateInsight(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6738	var errorBuffer bytes.Buffer
6739	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6740		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6741	}
6742	errorBody := bytes.NewReader(errorBuffer.Bytes())
6743
6744	errorCode := "UnknownError"
6745	errorMessage := errorCode
6746
6747	code := response.Header.Get("X-Amzn-ErrorType")
6748	if len(code) != 0 {
6749		errorCode = restjson.SanitizeErrorCode(code)
6750	}
6751
6752	var buff [1024]byte
6753	ringBuffer := smithyio.NewRingBuffer(buff[:])
6754
6755	body := io.TeeReader(errorBody, ringBuffer)
6756	decoder := json.NewDecoder(body)
6757	decoder.UseNumber()
6758	code, message, err := restjson.GetErrorInfo(decoder)
6759	if err != nil {
6760		var snapshot bytes.Buffer
6761		io.Copy(&snapshot, ringBuffer)
6762		err = &smithy.DeserializationError{
6763			Err:      fmt.Errorf("failed to decode response body, %w", err),
6764			Snapshot: snapshot.Bytes(),
6765		}
6766		return err
6767	}
6768
6769	errorBody.Seek(0, io.SeekStart)
6770	if len(code) != 0 {
6771		errorCode = restjson.SanitizeErrorCode(code)
6772	}
6773	if len(message) != 0 {
6774		errorMessage = message
6775	}
6776
6777	switch {
6778	case strings.EqualFold("InternalException", errorCode):
6779		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6780
6781	case strings.EqualFold("InvalidAccessException", errorCode):
6782		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6783
6784	case strings.EqualFold("InvalidInputException", errorCode):
6785		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6786
6787	case strings.EqualFold("LimitExceededException", errorCode):
6788		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
6789
6790	case strings.EqualFold("ResourceNotFoundException", errorCode):
6791		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6792
6793	default:
6794		genericError := &smithy.GenericAPIError{
6795			Code:    errorCode,
6796			Message: errorMessage,
6797		}
6798		return genericError
6799
6800	}
6801}
6802
6803type awsRestjson1_deserializeOpUpdateOrganizationConfiguration struct {
6804}
6805
6806func (*awsRestjson1_deserializeOpUpdateOrganizationConfiguration) ID() string {
6807	return "OperationDeserializer"
6808}
6809
6810func (m *awsRestjson1_deserializeOpUpdateOrganizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6811	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6812) {
6813	out, metadata, err = next.HandleDeserialize(ctx, in)
6814	if err != nil {
6815		return out, metadata, err
6816	}
6817
6818	response, ok := out.RawResponse.(*smithyhttp.Response)
6819	if !ok {
6820		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6821	}
6822
6823	if response.StatusCode < 200 || response.StatusCode >= 300 {
6824		return out, metadata, awsRestjson1_deserializeOpErrorUpdateOrganizationConfiguration(response, &metadata)
6825	}
6826	output := &UpdateOrganizationConfigurationOutput{}
6827	out.Result = output
6828
6829	return out, metadata, err
6830}
6831
6832func awsRestjson1_deserializeOpErrorUpdateOrganizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6833	var errorBuffer bytes.Buffer
6834	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6835		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6836	}
6837	errorBody := bytes.NewReader(errorBuffer.Bytes())
6838
6839	errorCode := "UnknownError"
6840	errorMessage := errorCode
6841
6842	code := response.Header.Get("X-Amzn-ErrorType")
6843	if len(code) != 0 {
6844		errorCode = restjson.SanitizeErrorCode(code)
6845	}
6846
6847	var buff [1024]byte
6848	ringBuffer := smithyio.NewRingBuffer(buff[:])
6849
6850	body := io.TeeReader(errorBody, ringBuffer)
6851	decoder := json.NewDecoder(body)
6852	decoder.UseNumber()
6853	code, message, err := restjson.GetErrorInfo(decoder)
6854	if err != nil {
6855		var snapshot bytes.Buffer
6856		io.Copy(&snapshot, ringBuffer)
6857		err = &smithy.DeserializationError{
6858			Err:      fmt.Errorf("failed to decode response body, %w", err),
6859			Snapshot: snapshot.Bytes(),
6860		}
6861		return err
6862	}
6863
6864	errorBody.Seek(0, io.SeekStart)
6865	if len(code) != 0 {
6866		errorCode = restjson.SanitizeErrorCode(code)
6867	}
6868	if len(message) != 0 {
6869		errorMessage = message
6870	}
6871
6872	switch {
6873	case strings.EqualFold("InternalException", errorCode):
6874		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6875
6876	case strings.EqualFold("InvalidAccessException", errorCode):
6877		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6878
6879	case strings.EqualFold("InvalidInputException", errorCode):
6880		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6881
6882	case strings.EqualFold("LimitExceededException", errorCode):
6883		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
6884
6885	default:
6886		genericError := &smithy.GenericAPIError{
6887			Code:    errorCode,
6888			Message: errorMessage,
6889		}
6890		return genericError
6891
6892	}
6893}
6894
6895type awsRestjson1_deserializeOpUpdateSecurityHubConfiguration struct {
6896}
6897
6898func (*awsRestjson1_deserializeOpUpdateSecurityHubConfiguration) ID() string {
6899	return "OperationDeserializer"
6900}
6901
6902func (m *awsRestjson1_deserializeOpUpdateSecurityHubConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6903	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6904) {
6905	out, metadata, err = next.HandleDeserialize(ctx, in)
6906	if err != nil {
6907		return out, metadata, err
6908	}
6909
6910	response, ok := out.RawResponse.(*smithyhttp.Response)
6911	if !ok {
6912		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6913	}
6914
6915	if response.StatusCode < 200 || response.StatusCode >= 300 {
6916		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSecurityHubConfiguration(response, &metadata)
6917	}
6918	output := &UpdateSecurityHubConfigurationOutput{}
6919	out.Result = output
6920
6921	return out, metadata, err
6922}
6923
6924func awsRestjson1_deserializeOpErrorUpdateSecurityHubConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6925	var errorBuffer bytes.Buffer
6926	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6927		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6928	}
6929	errorBody := bytes.NewReader(errorBuffer.Bytes())
6930
6931	errorCode := "UnknownError"
6932	errorMessage := errorCode
6933
6934	code := response.Header.Get("X-Amzn-ErrorType")
6935	if len(code) != 0 {
6936		errorCode = restjson.SanitizeErrorCode(code)
6937	}
6938
6939	var buff [1024]byte
6940	ringBuffer := smithyio.NewRingBuffer(buff[:])
6941
6942	body := io.TeeReader(errorBody, ringBuffer)
6943	decoder := json.NewDecoder(body)
6944	decoder.UseNumber()
6945	code, message, err := restjson.GetErrorInfo(decoder)
6946	if err != nil {
6947		var snapshot bytes.Buffer
6948		io.Copy(&snapshot, ringBuffer)
6949		err = &smithy.DeserializationError{
6950			Err:      fmt.Errorf("failed to decode response body, %w", err),
6951			Snapshot: snapshot.Bytes(),
6952		}
6953		return err
6954	}
6955
6956	errorBody.Seek(0, io.SeekStart)
6957	if len(code) != 0 {
6958		errorCode = restjson.SanitizeErrorCode(code)
6959	}
6960	if len(message) != 0 {
6961		errorMessage = message
6962	}
6963
6964	switch {
6965	case strings.EqualFold("InternalException", errorCode):
6966		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
6967
6968	case strings.EqualFold("InvalidAccessException", errorCode):
6969		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
6970
6971	case strings.EqualFold("InvalidInputException", errorCode):
6972		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
6973
6974	case strings.EqualFold("LimitExceededException", errorCode):
6975		return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody)
6976
6977	case strings.EqualFold("ResourceNotFoundException", errorCode):
6978		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
6979
6980	default:
6981		genericError := &smithy.GenericAPIError{
6982			Code:    errorCode,
6983			Message: errorMessage,
6984		}
6985		return genericError
6986
6987	}
6988}
6989
6990type awsRestjson1_deserializeOpUpdateStandardsControl struct {
6991}
6992
6993func (*awsRestjson1_deserializeOpUpdateStandardsControl) ID() string {
6994	return "OperationDeserializer"
6995}
6996
6997func (m *awsRestjson1_deserializeOpUpdateStandardsControl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6998	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6999) {
7000	out, metadata, err = next.HandleDeserialize(ctx, in)
7001	if err != nil {
7002		return out, metadata, err
7003	}
7004
7005	response, ok := out.RawResponse.(*smithyhttp.Response)
7006	if !ok {
7007		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7008	}
7009
7010	if response.StatusCode < 200 || response.StatusCode >= 300 {
7011		return out, metadata, awsRestjson1_deserializeOpErrorUpdateStandardsControl(response, &metadata)
7012	}
7013	output := &UpdateStandardsControlOutput{}
7014	out.Result = output
7015
7016	return out, metadata, err
7017}
7018
7019func awsRestjson1_deserializeOpErrorUpdateStandardsControl(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7020	var errorBuffer bytes.Buffer
7021	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7022		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7023	}
7024	errorBody := bytes.NewReader(errorBuffer.Bytes())
7025
7026	errorCode := "UnknownError"
7027	errorMessage := errorCode
7028
7029	code := response.Header.Get("X-Amzn-ErrorType")
7030	if len(code) != 0 {
7031		errorCode = restjson.SanitizeErrorCode(code)
7032	}
7033
7034	var buff [1024]byte
7035	ringBuffer := smithyio.NewRingBuffer(buff[:])
7036
7037	body := io.TeeReader(errorBody, ringBuffer)
7038	decoder := json.NewDecoder(body)
7039	decoder.UseNumber()
7040	code, message, err := restjson.GetErrorInfo(decoder)
7041	if err != nil {
7042		var snapshot bytes.Buffer
7043		io.Copy(&snapshot, ringBuffer)
7044		err = &smithy.DeserializationError{
7045			Err:      fmt.Errorf("failed to decode response body, %w", err),
7046			Snapshot: snapshot.Bytes(),
7047		}
7048		return err
7049	}
7050
7051	errorBody.Seek(0, io.SeekStart)
7052	if len(code) != 0 {
7053		errorCode = restjson.SanitizeErrorCode(code)
7054	}
7055	if len(message) != 0 {
7056		errorMessage = message
7057	}
7058
7059	switch {
7060	case strings.EqualFold("InternalException", errorCode):
7061		return awsRestjson1_deserializeErrorInternalException(response, errorBody)
7062
7063	case strings.EqualFold("InvalidAccessException", errorCode):
7064		return awsRestjson1_deserializeErrorInvalidAccessException(response, errorBody)
7065
7066	case strings.EqualFold("InvalidInputException", errorCode):
7067		return awsRestjson1_deserializeErrorInvalidInputException(response, errorBody)
7068
7069	case strings.EqualFold("ResourceNotFoundException", errorCode):
7070		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
7071
7072	default:
7073		genericError := &smithy.GenericAPIError{
7074			Code:    errorCode,
7075			Message: errorMessage,
7076		}
7077		return genericError
7078
7079	}
7080}
7081
7082func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7083	output := &types.AccessDeniedException{}
7084	var buff [1024]byte
7085	ringBuffer := smithyio.NewRingBuffer(buff[:])
7086
7087	body := io.TeeReader(errorBody, ringBuffer)
7088	decoder := json.NewDecoder(body)
7089	decoder.UseNumber()
7090	var shape interface{}
7091	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7092		var snapshot bytes.Buffer
7093		io.Copy(&snapshot, ringBuffer)
7094		err = &smithy.DeserializationError{
7095			Err:      fmt.Errorf("failed to decode response body, %w", err),
7096			Snapshot: snapshot.Bytes(),
7097		}
7098		return err
7099	}
7100
7101	err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
7102
7103	if err != nil {
7104		var snapshot bytes.Buffer
7105		io.Copy(&snapshot, ringBuffer)
7106		err = &smithy.DeserializationError{
7107			Err:      fmt.Errorf("failed to decode response body, %w", err),
7108			Snapshot: snapshot.Bytes(),
7109		}
7110		return err
7111	}
7112
7113	errorBody.Seek(0, io.SeekStart)
7114
7115	return output
7116}
7117
7118func awsRestjson1_deserializeErrorInternalException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7119	output := &types.InternalException{}
7120	var buff [1024]byte
7121	ringBuffer := smithyio.NewRingBuffer(buff[:])
7122
7123	body := io.TeeReader(errorBody, ringBuffer)
7124	decoder := json.NewDecoder(body)
7125	decoder.UseNumber()
7126	var shape interface{}
7127	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7128		var snapshot bytes.Buffer
7129		io.Copy(&snapshot, ringBuffer)
7130		err = &smithy.DeserializationError{
7131			Err:      fmt.Errorf("failed to decode response body, %w", err),
7132			Snapshot: snapshot.Bytes(),
7133		}
7134		return err
7135	}
7136
7137	err := awsRestjson1_deserializeDocumentInternalException(&output, shape)
7138
7139	if err != nil {
7140		var snapshot bytes.Buffer
7141		io.Copy(&snapshot, ringBuffer)
7142		err = &smithy.DeserializationError{
7143			Err:      fmt.Errorf("failed to decode response body, %w", err),
7144			Snapshot: snapshot.Bytes(),
7145		}
7146		return err
7147	}
7148
7149	errorBody.Seek(0, io.SeekStart)
7150
7151	return output
7152}
7153
7154func awsRestjson1_deserializeErrorInvalidAccessException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7155	output := &types.InvalidAccessException{}
7156	var buff [1024]byte
7157	ringBuffer := smithyio.NewRingBuffer(buff[:])
7158
7159	body := io.TeeReader(errorBody, ringBuffer)
7160	decoder := json.NewDecoder(body)
7161	decoder.UseNumber()
7162	var shape interface{}
7163	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7164		var snapshot bytes.Buffer
7165		io.Copy(&snapshot, ringBuffer)
7166		err = &smithy.DeserializationError{
7167			Err:      fmt.Errorf("failed to decode response body, %w", err),
7168			Snapshot: snapshot.Bytes(),
7169		}
7170		return err
7171	}
7172
7173	err := awsRestjson1_deserializeDocumentInvalidAccessException(&output, shape)
7174
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
7187	return output
7188}
7189
7190func awsRestjson1_deserializeErrorInvalidInputException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7191	output := &types.InvalidInputException{}
7192	var buff [1024]byte
7193	ringBuffer := smithyio.NewRingBuffer(buff[:])
7194
7195	body := io.TeeReader(errorBody, ringBuffer)
7196	decoder := json.NewDecoder(body)
7197	decoder.UseNumber()
7198	var shape interface{}
7199	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7200		var snapshot bytes.Buffer
7201		io.Copy(&snapshot, ringBuffer)
7202		err = &smithy.DeserializationError{
7203			Err:      fmt.Errorf("failed to decode response body, %w", err),
7204			Snapshot: snapshot.Bytes(),
7205		}
7206		return err
7207	}
7208
7209	err := awsRestjson1_deserializeDocumentInvalidInputException(&output, shape)
7210
7211	if err != nil {
7212		var snapshot bytes.Buffer
7213		io.Copy(&snapshot, ringBuffer)
7214		err = &smithy.DeserializationError{
7215			Err:      fmt.Errorf("failed to decode response body, %w", err),
7216			Snapshot: snapshot.Bytes(),
7217		}
7218		return err
7219	}
7220
7221	errorBody.Seek(0, io.SeekStart)
7222
7223	return output
7224}
7225
7226func awsRestjson1_deserializeErrorLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7227	output := &types.LimitExceededException{}
7228	var buff [1024]byte
7229	ringBuffer := smithyio.NewRingBuffer(buff[:])
7230
7231	body := io.TeeReader(errorBody, ringBuffer)
7232	decoder := json.NewDecoder(body)
7233	decoder.UseNumber()
7234	var shape interface{}
7235	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7236		var snapshot bytes.Buffer
7237		io.Copy(&snapshot, ringBuffer)
7238		err = &smithy.DeserializationError{
7239			Err:      fmt.Errorf("failed to decode response body, %w", err),
7240			Snapshot: snapshot.Bytes(),
7241		}
7242		return err
7243	}
7244
7245	err := awsRestjson1_deserializeDocumentLimitExceededException(&output, shape)
7246
7247	if err != nil {
7248		var snapshot bytes.Buffer
7249		io.Copy(&snapshot, ringBuffer)
7250		err = &smithy.DeserializationError{
7251			Err:      fmt.Errorf("failed to decode response body, %w", err),
7252			Snapshot: snapshot.Bytes(),
7253		}
7254		return err
7255	}
7256
7257	errorBody.Seek(0, io.SeekStart)
7258
7259	return output
7260}
7261
7262func awsRestjson1_deserializeErrorResourceConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7263	output := &types.ResourceConflictException{}
7264	var buff [1024]byte
7265	ringBuffer := smithyio.NewRingBuffer(buff[:])
7266
7267	body := io.TeeReader(errorBody, ringBuffer)
7268	decoder := json.NewDecoder(body)
7269	decoder.UseNumber()
7270	var shape interface{}
7271	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7272		var snapshot bytes.Buffer
7273		io.Copy(&snapshot, ringBuffer)
7274		err = &smithy.DeserializationError{
7275			Err:      fmt.Errorf("failed to decode response body, %w", err),
7276			Snapshot: snapshot.Bytes(),
7277		}
7278		return err
7279	}
7280
7281	err := awsRestjson1_deserializeDocumentResourceConflictException(&output, shape)
7282
7283	if err != nil {
7284		var snapshot bytes.Buffer
7285		io.Copy(&snapshot, ringBuffer)
7286		err = &smithy.DeserializationError{
7287			Err:      fmt.Errorf("failed to decode response body, %w", err),
7288			Snapshot: snapshot.Bytes(),
7289		}
7290		return err
7291	}
7292
7293	errorBody.Seek(0, io.SeekStart)
7294
7295	return output
7296}
7297
7298func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
7299	output := &types.ResourceNotFoundException{}
7300	var buff [1024]byte
7301	ringBuffer := smithyio.NewRingBuffer(buff[:])
7302
7303	body := io.TeeReader(errorBody, ringBuffer)
7304	decoder := json.NewDecoder(body)
7305	decoder.UseNumber()
7306	var shape interface{}
7307	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
7308		var snapshot bytes.Buffer
7309		io.Copy(&snapshot, ringBuffer)
7310		err = &smithy.DeserializationError{
7311			Err:      fmt.Errorf("failed to decode response body, %w", err),
7312			Snapshot: snapshot.Bytes(),
7313		}
7314		return err
7315	}
7316
7317	err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape)
7318
7319	if err != nil {
7320		var snapshot bytes.Buffer
7321		io.Copy(&snapshot, ringBuffer)
7322		err = &smithy.DeserializationError{
7323			Err:      fmt.Errorf("failed to decode response body, %w", err),
7324			Snapshot: snapshot.Bytes(),
7325		}
7326		return err
7327	}
7328
7329	errorBody.Seek(0, io.SeekStart)
7330
7331	return output
7332}
7333
7334func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
7335	if v == nil {
7336		return fmt.Errorf("unexpected nil of type %T", v)
7337	}
7338	if value == nil {
7339		return nil
7340	}
7341
7342	shape, ok := value.(map[string]interface{})
7343	if !ok {
7344		return fmt.Errorf("unexpected JSON type %v", value)
7345	}
7346
7347	var sv *types.AccessDeniedException
7348	if *v == nil {
7349		sv = &types.AccessDeniedException{}
7350	} else {
7351		sv = *v
7352	}
7353
7354	for key, value := range shape {
7355		switch key {
7356		case "Code":
7357			if value != nil {
7358				jtv, ok := value.(string)
7359				if !ok {
7360					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7361				}
7362				sv.Code = ptr.String(jtv)
7363			}
7364
7365		case "Message":
7366			if value != nil {
7367				jtv, ok := value.(string)
7368				if !ok {
7369					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7370				}
7371				sv.Message = ptr.String(jtv)
7372			}
7373
7374		default:
7375			_, _ = key, value
7376
7377		}
7378	}
7379	*v = sv
7380	return nil
7381}
7382
7383func awsRestjson1_deserializeDocumentAction(v **types.Action, value interface{}) error {
7384	if v == nil {
7385		return fmt.Errorf("unexpected nil of type %T", v)
7386	}
7387	if value == nil {
7388		return nil
7389	}
7390
7391	shape, ok := value.(map[string]interface{})
7392	if !ok {
7393		return fmt.Errorf("unexpected JSON type %v", value)
7394	}
7395
7396	var sv *types.Action
7397	if *v == nil {
7398		sv = &types.Action{}
7399	} else {
7400		sv = *v
7401	}
7402
7403	for key, value := range shape {
7404		switch key {
7405		case "ActionType":
7406			if value != nil {
7407				jtv, ok := value.(string)
7408				if !ok {
7409					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7410				}
7411				sv.ActionType = ptr.String(jtv)
7412			}
7413
7414		case "AwsApiCallAction":
7415			if err := awsRestjson1_deserializeDocumentAwsApiCallAction(&sv.AwsApiCallAction, value); err != nil {
7416				return err
7417			}
7418
7419		case "DnsRequestAction":
7420			if err := awsRestjson1_deserializeDocumentDnsRequestAction(&sv.DnsRequestAction, value); err != nil {
7421				return err
7422			}
7423
7424		case "NetworkConnectionAction":
7425			if err := awsRestjson1_deserializeDocumentNetworkConnectionAction(&sv.NetworkConnectionAction, value); err != nil {
7426				return err
7427			}
7428
7429		case "PortProbeAction":
7430			if err := awsRestjson1_deserializeDocumentPortProbeAction(&sv.PortProbeAction, value); err != nil {
7431				return err
7432			}
7433
7434		default:
7435			_, _ = key, value
7436
7437		}
7438	}
7439	*v = sv
7440	return nil
7441}
7442
7443func awsRestjson1_deserializeDocumentActionLocalIpDetails(v **types.ActionLocalIpDetails, value interface{}) error {
7444	if v == nil {
7445		return fmt.Errorf("unexpected nil of type %T", v)
7446	}
7447	if value == nil {
7448		return nil
7449	}
7450
7451	shape, ok := value.(map[string]interface{})
7452	if !ok {
7453		return fmt.Errorf("unexpected JSON type %v", value)
7454	}
7455
7456	var sv *types.ActionLocalIpDetails
7457	if *v == nil {
7458		sv = &types.ActionLocalIpDetails{}
7459	} else {
7460		sv = *v
7461	}
7462
7463	for key, value := range shape {
7464		switch key {
7465		case "IpAddressV4":
7466			if value != nil {
7467				jtv, ok := value.(string)
7468				if !ok {
7469					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7470				}
7471				sv.IpAddressV4 = ptr.String(jtv)
7472			}
7473
7474		default:
7475			_, _ = key, value
7476
7477		}
7478	}
7479	*v = sv
7480	return nil
7481}
7482
7483func awsRestjson1_deserializeDocumentActionLocalPortDetails(v **types.ActionLocalPortDetails, value interface{}) error {
7484	if v == nil {
7485		return fmt.Errorf("unexpected nil of type %T", v)
7486	}
7487	if value == nil {
7488		return nil
7489	}
7490
7491	shape, ok := value.(map[string]interface{})
7492	if !ok {
7493		return fmt.Errorf("unexpected JSON type %v", value)
7494	}
7495
7496	var sv *types.ActionLocalPortDetails
7497	if *v == nil {
7498		sv = &types.ActionLocalPortDetails{}
7499	} else {
7500		sv = *v
7501	}
7502
7503	for key, value := range shape {
7504		switch key {
7505		case "Port":
7506			if value != nil {
7507				jtv, ok := value.(json.Number)
7508				if !ok {
7509					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
7510				}
7511				i64, err := jtv.Int64()
7512				if err != nil {
7513					return err
7514				}
7515				sv.Port = int32(i64)
7516			}
7517
7518		case "PortName":
7519			if value != nil {
7520				jtv, ok := value.(string)
7521				if !ok {
7522					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7523				}
7524				sv.PortName = ptr.String(jtv)
7525			}
7526
7527		default:
7528			_, _ = key, value
7529
7530		}
7531	}
7532	*v = sv
7533	return nil
7534}
7535
7536func awsRestjson1_deserializeDocumentActionRemoteIpDetails(v **types.ActionRemoteIpDetails, value interface{}) error {
7537	if v == nil {
7538		return fmt.Errorf("unexpected nil of type %T", v)
7539	}
7540	if value == nil {
7541		return nil
7542	}
7543
7544	shape, ok := value.(map[string]interface{})
7545	if !ok {
7546		return fmt.Errorf("unexpected JSON type %v", value)
7547	}
7548
7549	var sv *types.ActionRemoteIpDetails
7550	if *v == nil {
7551		sv = &types.ActionRemoteIpDetails{}
7552	} else {
7553		sv = *v
7554	}
7555
7556	for key, value := range shape {
7557		switch key {
7558		case "City":
7559			if err := awsRestjson1_deserializeDocumentCity(&sv.City, value); err != nil {
7560				return err
7561			}
7562
7563		case "Country":
7564			if err := awsRestjson1_deserializeDocumentCountry(&sv.Country, value); err != nil {
7565				return err
7566			}
7567
7568		case "GeoLocation":
7569			if err := awsRestjson1_deserializeDocumentGeoLocation(&sv.GeoLocation, value); err != nil {
7570				return err
7571			}
7572
7573		case "IpAddressV4":
7574			if value != nil {
7575				jtv, ok := value.(string)
7576				if !ok {
7577					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7578				}
7579				sv.IpAddressV4 = ptr.String(jtv)
7580			}
7581
7582		case "Organization":
7583			if err := awsRestjson1_deserializeDocumentIpOrganizationDetails(&sv.Organization, value); err != nil {
7584				return err
7585			}
7586
7587		default:
7588			_, _ = key, value
7589
7590		}
7591	}
7592	*v = sv
7593	return nil
7594}
7595
7596func awsRestjson1_deserializeDocumentActionRemotePortDetails(v **types.ActionRemotePortDetails, value interface{}) error {
7597	if v == nil {
7598		return fmt.Errorf("unexpected nil of type %T", v)
7599	}
7600	if value == nil {
7601		return nil
7602	}
7603
7604	shape, ok := value.(map[string]interface{})
7605	if !ok {
7606		return fmt.Errorf("unexpected JSON type %v", value)
7607	}
7608
7609	var sv *types.ActionRemotePortDetails
7610	if *v == nil {
7611		sv = &types.ActionRemotePortDetails{}
7612	} else {
7613		sv = *v
7614	}
7615
7616	for key, value := range shape {
7617		switch key {
7618		case "Port":
7619			if value != nil {
7620				jtv, ok := value.(json.Number)
7621				if !ok {
7622					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
7623				}
7624				i64, err := jtv.Int64()
7625				if err != nil {
7626					return err
7627				}
7628				sv.Port = int32(i64)
7629			}
7630
7631		case "PortName":
7632			if value != nil {
7633				jtv, ok := value.(string)
7634				if !ok {
7635					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7636				}
7637				sv.PortName = ptr.String(jtv)
7638			}
7639
7640		default:
7641			_, _ = key, value
7642
7643		}
7644	}
7645	*v = sv
7646	return nil
7647}
7648
7649func awsRestjson1_deserializeDocumentActionTarget(v **types.ActionTarget, value interface{}) error {
7650	if v == nil {
7651		return fmt.Errorf("unexpected nil of type %T", v)
7652	}
7653	if value == nil {
7654		return nil
7655	}
7656
7657	shape, ok := value.(map[string]interface{})
7658	if !ok {
7659		return fmt.Errorf("unexpected JSON type %v", value)
7660	}
7661
7662	var sv *types.ActionTarget
7663	if *v == nil {
7664		sv = &types.ActionTarget{}
7665	} else {
7666		sv = *v
7667	}
7668
7669	for key, value := range shape {
7670		switch key {
7671		case "ActionTargetArn":
7672			if value != nil {
7673				jtv, ok := value.(string)
7674				if !ok {
7675					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7676				}
7677				sv.ActionTargetArn = ptr.String(jtv)
7678			}
7679
7680		case "Description":
7681			if value != nil {
7682				jtv, ok := value.(string)
7683				if !ok {
7684					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7685				}
7686				sv.Description = ptr.String(jtv)
7687			}
7688
7689		case "Name":
7690			if value != nil {
7691				jtv, ok := value.(string)
7692				if !ok {
7693					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7694				}
7695				sv.Name = ptr.String(jtv)
7696			}
7697
7698		default:
7699			_, _ = key, value
7700
7701		}
7702	}
7703	*v = sv
7704	return nil
7705}
7706
7707func awsRestjson1_deserializeDocumentActionTargetList(v *[]types.ActionTarget, value interface{}) error {
7708	if v == nil {
7709		return fmt.Errorf("unexpected nil of type %T", v)
7710	}
7711	if value == nil {
7712		return nil
7713	}
7714
7715	shape, ok := value.([]interface{})
7716	if !ok {
7717		return fmt.Errorf("unexpected JSON type %v", value)
7718	}
7719
7720	var cv []types.ActionTarget
7721	if *v == nil {
7722		cv = []types.ActionTarget{}
7723	} else {
7724		cv = *v
7725	}
7726
7727	for _, value := range shape {
7728		var col types.ActionTarget
7729		destAddr := &col
7730		if err := awsRestjson1_deserializeDocumentActionTarget(&destAddr, value); err != nil {
7731			return err
7732		}
7733		col = *destAddr
7734		cv = append(cv, col)
7735
7736	}
7737	*v = cv
7738	return nil
7739}
7740
7741func awsRestjson1_deserializeDocumentAdjustment(v **types.Adjustment, value interface{}) error {
7742	if v == nil {
7743		return fmt.Errorf("unexpected nil of type %T", v)
7744	}
7745	if value == nil {
7746		return nil
7747	}
7748
7749	shape, ok := value.(map[string]interface{})
7750	if !ok {
7751		return fmt.Errorf("unexpected JSON type %v", value)
7752	}
7753
7754	var sv *types.Adjustment
7755	if *v == nil {
7756		sv = &types.Adjustment{}
7757	} else {
7758		sv = *v
7759	}
7760
7761	for key, value := range shape {
7762		switch key {
7763		case "Metric":
7764			if value != nil {
7765				jtv, ok := value.(string)
7766				if !ok {
7767					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7768				}
7769				sv.Metric = ptr.String(jtv)
7770			}
7771
7772		case "Reason":
7773			if value != nil {
7774				jtv, ok := value.(string)
7775				if !ok {
7776					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7777				}
7778				sv.Reason = ptr.String(jtv)
7779			}
7780
7781		default:
7782			_, _ = key, value
7783
7784		}
7785	}
7786	*v = sv
7787	return nil
7788}
7789
7790func awsRestjson1_deserializeDocumentAdjustmentList(v *[]types.Adjustment, value interface{}) error {
7791	if v == nil {
7792		return fmt.Errorf("unexpected nil of type %T", v)
7793	}
7794	if value == nil {
7795		return nil
7796	}
7797
7798	shape, ok := value.([]interface{})
7799	if !ok {
7800		return fmt.Errorf("unexpected JSON type %v", value)
7801	}
7802
7803	var cv []types.Adjustment
7804	if *v == nil {
7805		cv = []types.Adjustment{}
7806	} else {
7807		cv = *v
7808	}
7809
7810	for _, value := range shape {
7811		var col types.Adjustment
7812		destAddr := &col
7813		if err := awsRestjson1_deserializeDocumentAdjustment(&destAddr, value); err != nil {
7814			return err
7815		}
7816		col = *destAddr
7817		cv = append(cv, col)
7818
7819	}
7820	*v = cv
7821	return nil
7822}
7823
7824func awsRestjson1_deserializeDocumentAdminAccount(v **types.AdminAccount, value interface{}) error {
7825	if v == nil {
7826		return fmt.Errorf("unexpected nil of type %T", v)
7827	}
7828	if value == nil {
7829		return nil
7830	}
7831
7832	shape, ok := value.(map[string]interface{})
7833	if !ok {
7834		return fmt.Errorf("unexpected JSON type %v", value)
7835	}
7836
7837	var sv *types.AdminAccount
7838	if *v == nil {
7839		sv = &types.AdminAccount{}
7840	} else {
7841		sv = *v
7842	}
7843
7844	for key, value := range shape {
7845		switch key {
7846		case "AccountId":
7847			if value != nil {
7848				jtv, ok := value.(string)
7849				if !ok {
7850					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7851				}
7852				sv.AccountId = ptr.String(jtv)
7853			}
7854
7855		case "Status":
7856			if value != nil {
7857				jtv, ok := value.(string)
7858				if !ok {
7859					return fmt.Errorf("expected AdminStatus to be of type string, got %T instead", value)
7860				}
7861				sv.Status = types.AdminStatus(jtv)
7862			}
7863
7864		default:
7865			_, _ = key, value
7866
7867		}
7868	}
7869	*v = sv
7870	return nil
7871}
7872
7873func awsRestjson1_deserializeDocumentAdminAccounts(v *[]types.AdminAccount, value interface{}) error {
7874	if v == nil {
7875		return fmt.Errorf("unexpected nil of type %T", v)
7876	}
7877	if value == nil {
7878		return nil
7879	}
7880
7881	shape, ok := value.([]interface{})
7882	if !ok {
7883		return fmt.Errorf("unexpected JSON type %v", value)
7884	}
7885
7886	var cv []types.AdminAccount
7887	if *v == nil {
7888		cv = []types.AdminAccount{}
7889	} else {
7890		cv = *v
7891	}
7892
7893	for _, value := range shape {
7894		var col types.AdminAccount
7895		destAddr := &col
7896		if err := awsRestjson1_deserializeDocumentAdminAccount(&destAddr, value); err != nil {
7897			return err
7898		}
7899		col = *destAddr
7900		cv = append(cv, col)
7901
7902	}
7903	*v = cv
7904	return nil
7905}
7906
7907func awsRestjson1_deserializeDocumentAvailabilityZone(v **types.AvailabilityZone, value interface{}) error {
7908	if v == nil {
7909		return fmt.Errorf("unexpected nil of type %T", v)
7910	}
7911	if value == nil {
7912		return nil
7913	}
7914
7915	shape, ok := value.(map[string]interface{})
7916	if !ok {
7917		return fmt.Errorf("unexpected JSON type %v", value)
7918	}
7919
7920	var sv *types.AvailabilityZone
7921	if *v == nil {
7922		sv = &types.AvailabilityZone{}
7923	} else {
7924		sv = *v
7925	}
7926
7927	for key, value := range shape {
7928		switch key {
7929		case "SubnetId":
7930			if value != nil {
7931				jtv, ok := value.(string)
7932				if !ok {
7933					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7934				}
7935				sv.SubnetId = ptr.String(jtv)
7936			}
7937
7938		case "ZoneName":
7939			if value != nil {
7940				jtv, ok := value.(string)
7941				if !ok {
7942					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
7943				}
7944				sv.ZoneName = ptr.String(jtv)
7945			}
7946
7947		default:
7948			_, _ = key, value
7949
7950		}
7951	}
7952	*v = sv
7953	return nil
7954}
7955
7956func awsRestjson1_deserializeDocumentAvailabilityZones(v *[]types.AvailabilityZone, value interface{}) error {
7957	if v == nil {
7958		return fmt.Errorf("unexpected nil of type %T", v)
7959	}
7960	if value == nil {
7961		return nil
7962	}
7963
7964	shape, ok := value.([]interface{})
7965	if !ok {
7966		return fmt.Errorf("unexpected JSON type %v", value)
7967	}
7968
7969	var cv []types.AvailabilityZone
7970	if *v == nil {
7971		cv = []types.AvailabilityZone{}
7972	} else {
7973		cv = *v
7974	}
7975
7976	for _, value := range shape {
7977		var col types.AvailabilityZone
7978		destAddr := &col
7979		if err := awsRestjson1_deserializeDocumentAvailabilityZone(&destAddr, value); err != nil {
7980			return err
7981		}
7982		col = *destAddr
7983		cv = append(cv, col)
7984
7985	}
7986	*v = cv
7987	return nil
7988}
7989
7990func awsRestjson1_deserializeDocumentAwsApiCallAction(v **types.AwsApiCallAction, value interface{}) error {
7991	if v == nil {
7992		return fmt.Errorf("unexpected nil of type %T", v)
7993	}
7994	if value == nil {
7995		return nil
7996	}
7997
7998	shape, ok := value.(map[string]interface{})
7999	if !ok {
8000		return fmt.Errorf("unexpected JSON type %v", value)
8001	}
8002
8003	var sv *types.AwsApiCallAction
8004	if *v == nil {
8005		sv = &types.AwsApiCallAction{}
8006	} else {
8007		sv = *v
8008	}
8009
8010	for key, value := range shape {
8011		switch key {
8012		case "AffectedResources":
8013			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.AffectedResources, value); err != nil {
8014				return err
8015			}
8016
8017		case "Api":
8018			if value != nil {
8019				jtv, ok := value.(string)
8020				if !ok {
8021					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8022				}
8023				sv.Api = ptr.String(jtv)
8024			}
8025
8026		case "CallerType":
8027			if value != nil {
8028				jtv, ok := value.(string)
8029				if !ok {
8030					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8031				}
8032				sv.CallerType = ptr.String(jtv)
8033			}
8034
8035		case "DomainDetails":
8036			if err := awsRestjson1_deserializeDocumentAwsApiCallActionDomainDetails(&sv.DomainDetails, value); err != nil {
8037				return err
8038			}
8039
8040		case "FirstSeen":
8041			if value != nil {
8042				jtv, ok := value.(string)
8043				if !ok {
8044					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8045				}
8046				sv.FirstSeen = ptr.String(jtv)
8047			}
8048
8049		case "LastSeen":
8050			if value != nil {
8051				jtv, ok := value.(string)
8052				if !ok {
8053					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8054				}
8055				sv.LastSeen = ptr.String(jtv)
8056			}
8057
8058		case "RemoteIpDetails":
8059			if err := awsRestjson1_deserializeDocumentActionRemoteIpDetails(&sv.RemoteIpDetails, value); err != nil {
8060				return err
8061			}
8062
8063		case "ServiceName":
8064			if value != nil {
8065				jtv, ok := value.(string)
8066				if !ok {
8067					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8068				}
8069				sv.ServiceName = ptr.String(jtv)
8070			}
8071
8072		default:
8073			_, _ = key, value
8074
8075		}
8076	}
8077	*v = sv
8078	return nil
8079}
8080
8081func awsRestjson1_deserializeDocumentAwsApiCallActionDomainDetails(v **types.AwsApiCallActionDomainDetails, value interface{}) error {
8082	if v == nil {
8083		return fmt.Errorf("unexpected nil of type %T", v)
8084	}
8085	if value == nil {
8086		return nil
8087	}
8088
8089	shape, ok := value.(map[string]interface{})
8090	if !ok {
8091		return fmt.Errorf("unexpected JSON type %v", value)
8092	}
8093
8094	var sv *types.AwsApiCallActionDomainDetails
8095	if *v == nil {
8096		sv = &types.AwsApiCallActionDomainDetails{}
8097	} else {
8098		sv = *v
8099	}
8100
8101	for key, value := range shape {
8102		switch key {
8103		case "Domain":
8104			if value != nil {
8105				jtv, ok := value.(string)
8106				if !ok {
8107					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8108				}
8109				sv.Domain = ptr.String(jtv)
8110			}
8111
8112		default:
8113			_, _ = key, value
8114
8115		}
8116	}
8117	*v = sv
8118	return nil
8119}
8120
8121func awsRestjson1_deserializeDocumentAwsApiGatewayAccessLogSettings(v **types.AwsApiGatewayAccessLogSettings, value interface{}) error {
8122	if v == nil {
8123		return fmt.Errorf("unexpected nil of type %T", v)
8124	}
8125	if value == nil {
8126		return nil
8127	}
8128
8129	shape, ok := value.(map[string]interface{})
8130	if !ok {
8131		return fmt.Errorf("unexpected JSON type %v", value)
8132	}
8133
8134	var sv *types.AwsApiGatewayAccessLogSettings
8135	if *v == nil {
8136		sv = &types.AwsApiGatewayAccessLogSettings{}
8137	} else {
8138		sv = *v
8139	}
8140
8141	for key, value := range shape {
8142		switch key {
8143		case "DestinationArn":
8144			if value != nil {
8145				jtv, ok := value.(string)
8146				if !ok {
8147					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8148				}
8149				sv.DestinationArn = ptr.String(jtv)
8150			}
8151
8152		case "Format":
8153			if value != nil {
8154				jtv, ok := value.(string)
8155				if !ok {
8156					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8157				}
8158				sv.Format = ptr.String(jtv)
8159			}
8160
8161		default:
8162			_, _ = key, value
8163
8164		}
8165	}
8166	*v = sv
8167	return nil
8168}
8169
8170func awsRestjson1_deserializeDocumentAwsApiGatewayCanarySettings(v **types.AwsApiGatewayCanarySettings, value interface{}) error {
8171	if v == nil {
8172		return fmt.Errorf("unexpected nil of type %T", v)
8173	}
8174	if value == nil {
8175		return nil
8176	}
8177
8178	shape, ok := value.(map[string]interface{})
8179	if !ok {
8180		return fmt.Errorf("unexpected JSON type %v", value)
8181	}
8182
8183	var sv *types.AwsApiGatewayCanarySettings
8184	if *v == nil {
8185		sv = &types.AwsApiGatewayCanarySettings{}
8186	} else {
8187		sv = *v
8188	}
8189
8190	for key, value := range shape {
8191		switch key {
8192		case "DeploymentId":
8193			if value != nil {
8194				jtv, ok := value.(string)
8195				if !ok {
8196					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8197				}
8198				sv.DeploymentId = ptr.String(jtv)
8199			}
8200
8201		case "PercentTraffic":
8202			if value != nil {
8203				switch jtv := value.(type) {
8204				case json.Number:
8205					f64, err := jtv.Float64()
8206					if err != nil {
8207						return err
8208					}
8209					sv.PercentTraffic = f64
8210
8211				case string:
8212					var f64 float64
8213					switch {
8214					case strings.EqualFold(jtv, "NaN"):
8215						f64 = math.NaN()
8216
8217					case strings.EqualFold(jtv, "Infinity"):
8218						f64 = math.Inf(1)
8219
8220					case strings.EqualFold(jtv, "-Infinity"):
8221						f64 = math.Inf(-1)
8222
8223					default:
8224						return fmt.Errorf("unknown JSON number value: %s", jtv)
8225
8226					}
8227					sv.PercentTraffic = f64
8228
8229				default:
8230					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
8231
8232				}
8233			}
8234
8235		case "StageVariableOverrides":
8236			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.StageVariableOverrides, value); err != nil {
8237				return err
8238			}
8239
8240		case "UseStageCache":
8241			if value != nil {
8242				jtv, ok := value.(bool)
8243				if !ok {
8244					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8245				}
8246				sv.UseStageCache = jtv
8247			}
8248
8249		default:
8250			_, _ = key, value
8251
8252		}
8253	}
8254	*v = sv
8255	return nil
8256}
8257
8258func awsRestjson1_deserializeDocumentAwsApiGatewayEndpointConfiguration(v **types.AwsApiGatewayEndpointConfiguration, value interface{}) error {
8259	if v == nil {
8260		return fmt.Errorf("unexpected nil of type %T", v)
8261	}
8262	if value == nil {
8263		return nil
8264	}
8265
8266	shape, ok := value.(map[string]interface{})
8267	if !ok {
8268		return fmt.Errorf("unexpected JSON type %v", value)
8269	}
8270
8271	var sv *types.AwsApiGatewayEndpointConfiguration
8272	if *v == nil {
8273		sv = &types.AwsApiGatewayEndpointConfiguration{}
8274	} else {
8275		sv = *v
8276	}
8277
8278	for key, value := range shape {
8279		switch key {
8280		case "Types":
8281			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Types, value); err != nil {
8282				return err
8283			}
8284
8285		default:
8286			_, _ = key, value
8287
8288		}
8289	}
8290	*v = sv
8291	return nil
8292}
8293
8294func awsRestjson1_deserializeDocumentAwsApiGatewayMethodSettings(v **types.AwsApiGatewayMethodSettings, value interface{}) error {
8295	if v == nil {
8296		return fmt.Errorf("unexpected nil of type %T", v)
8297	}
8298	if value == nil {
8299		return nil
8300	}
8301
8302	shape, ok := value.(map[string]interface{})
8303	if !ok {
8304		return fmt.Errorf("unexpected JSON type %v", value)
8305	}
8306
8307	var sv *types.AwsApiGatewayMethodSettings
8308	if *v == nil {
8309		sv = &types.AwsApiGatewayMethodSettings{}
8310	} else {
8311		sv = *v
8312	}
8313
8314	for key, value := range shape {
8315		switch key {
8316		case "CacheDataEncrypted":
8317			if value != nil {
8318				jtv, ok := value.(bool)
8319				if !ok {
8320					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8321				}
8322				sv.CacheDataEncrypted = jtv
8323			}
8324
8325		case "CacheTtlInSeconds":
8326			if value != nil {
8327				jtv, ok := value.(json.Number)
8328				if !ok {
8329					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
8330				}
8331				i64, err := jtv.Int64()
8332				if err != nil {
8333					return err
8334				}
8335				sv.CacheTtlInSeconds = int32(i64)
8336			}
8337
8338		case "CachingEnabled":
8339			if value != nil {
8340				jtv, ok := value.(bool)
8341				if !ok {
8342					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8343				}
8344				sv.CachingEnabled = jtv
8345			}
8346
8347		case "DataTraceEnabled":
8348			if value != nil {
8349				jtv, ok := value.(bool)
8350				if !ok {
8351					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8352				}
8353				sv.DataTraceEnabled = jtv
8354			}
8355
8356		case "HttpMethod":
8357			if value != nil {
8358				jtv, ok := value.(string)
8359				if !ok {
8360					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8361				}
8362				sv.HttpMethod = ptr.String(jtv)
8363			}
8364
8365		case "LoggingLevel":
8366			if value != nil {
8367				jtv, ok := value.(string)
8368				if !ok {
8369					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8370				}
8371				sv.LoggingLevel = ptr.String(jtv)
8372			}
8373
8374		case "MetricsEnabled":
8375			if value != nil {
8376				jtv, ok := value.(bool)
8377				if !ok {
8378					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8379				}
8380				sv.MetricsEnabled = jtv
8381			}
8382
8383		case "RequireAuthorizationForCacheControl":
8384			if value != nil {
8385				jtv, ok := value.(bool)
8386				if !ok {
8387					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8388				}
8389				sv.RequireAuthorizationForCacheControl = jtv
8390			}
8391
8392		case "ResourcePath":
8393			if value != nil {
8394				jtv, ok := value.(string)
8395				if !ok {
8396					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8397				}
8398				sv.ResourcePath = ptr.String(jtv)
8399			}
8400
8401		case "ThrottlingBurstLimit":
8402			if value != nil {
8403				jtv, ok := value.(json.Number)
8404				if !ok {
8405					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
8406				}
8407				i64, err := jtv.Int64()
8408				if err != nil {
8409					return err
8410				}
8411				sv.ThrottlingBurstLimit = int32(i64)
8412			}
8413
8414		case "ThrottlingRateLimit":
8415			if value != nil {
8416				switch jtv := value.(type) {
8417				case json.Number:
8418					f64, err := jtv.Float64()
8419					if err != nil {
8420						return err
8421					}
8422					sv.ThrottlingRateLimit = f64
8423
8424				case string:
8425					var f64 float64
8426					switch {
8427					case strings.EqualFold(jtv, "NaN"):
8428						f64 = math.NaN()
8429
8430					case strings.EqualFold(jtv, "Infinity"):
8431						f64 = math.Inf(1)
8432
8433					case strings.EqualFold(jtv, "-Infinity"):
8434						f64 = math.Inf(-1)
8435
8436					default:
8437						return fmt.Errorf("unknown JSON number value: %s", jtv)
8438
8439					}
8440					sv.ThrottlingRateLimit = f64
8441
8442				default:
8443					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
8444
8445				}
8446			}
8447
8448		case "UnauthorizedCacheControlHeaderStrategy":
8449			if value != nil {
8450				jtv, ok := value.(string)
8451				if !ok {
8452					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8453				}
8454				sv.UnauthorizedCacheControlHeaderStrategy = ptr.String(jtv)
8455			}
8456
8457		default:
8458			_, _ = key, value
8459
8460		}
8461	}
8462	*v = sv
8463	return nil
8464}
8465
8466func awsRestjson1_deserializeDocumentAwsApiGatewayMethodSettingsList(v *[]types.AwsApiGatewayMethodSettings, value interface{}) error {
8467	if v == nil {
8468		return fmt.Errorf("unexpected nil of type %T", v)
8469	}
8470	if value == nil {
8471		return nil
8472	}
8473
8474	shape, ok := value.([]interface{})
8475	if !ok {
8476		return fmt.Errorf("unexpected JSON type %v", value)
8477	}
8478
8479	var cv []types.AwsApiGatewayMethodSettings
8480	if *v == nil {
8481		cv = []types.AwsApiGatewayMethodSettings{}
8482	} else {
8483		cv = *v
8484	}
8485
8486	for _, value := range shape {
8487		var col types.AwsApiGatewayMethodSettings
8488		destAddr := &col
8489		if err := awsRestjson1_deserializeDocumentAwsApiGatewayMethodSettings(&destAddr, value); err != nil {
8490			return err
8491		}
8492		col = *destAddr
8493		cv = append(cv, col)
8494
8495	}
8496	*v = cv
8497	return nil
8498}
8499
8500func awsRestjson1_deserializeDocumentAwsApiGatewayRestApiDetails(v **types.AwsApiGatewayRestApiDetails, value interface{}) error {
8501	if v == nil {
8502		return fmt.Errorf("unexpected nil of type %T", v)
8503	}
8504	if value == nil {
8505		return nil
8506	}
8507
8508	shape, ok := value.(map[string]interface{})
8509	if !ok {
8510		return fmt.Errorf("unexpected JSON type %v", value)
8511	}
8512
8513	var sv *types.AwsApiGatewayRestApiDetails
8514	if *v == nil {
8515		sv = &types.AwsApiGatewayRestApiDetails{}
8516	} else {
8517		sv = *v
8518	}
8519
8520	for key, value := range shape {
8521		switch key {
8522		case "ApiKeySource":
8523			if value != nil {
8524				jtv, ok := value.(string)
8525				if !ok {
8526					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8527				}
8528				sv.ApiKeySource = ptr.String(jtv)
8529			}
8530
8531		case "BinaryMediaTypes":
8532			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.BinaryMediaTypes, value); err != nil {
8533				return err
8534			}
8535
8536		case "CreatedDate":
8537			if value != nil {
8538				jtv, ok := value.(string)
8539				if !ok {
8540					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8541				}
8542				sv.CreatedDate = ptr.String(jtv)
8543			}
8544
8545		case "Description":
8546			if value != nil {
8547				jtv, ok := value.(string)
8548				if !ok {
8549					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8550				}
8551				sv.Description = ptr.String(jtv)
8552			}
8553
8554		case "EndpointConfiguration":
8555			if err := awsRestjson1_deserializeDocumentAwsApiGatewayEndpointConfiguration(&sv.EndpointConfiguration, value); err != nil {
8556				return err
8557			}
8558
8559		case "Id":
8560			if value != nil {
8561				jtv, ok := value.(string)
8562				if !ok {
8563					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8564				}
8565				sv.Id = ptr.String(jtv)
8566			}
8567
8568		case "MinimumCompressionSize":
8569			if value != nil {
8570				jtv, ok := value.(json.Number)
8571				if !ok {
8572					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
8573				}
8574				i64, err := jtv.Int64()
8575				if err != nil {
8576					return err
8577				}
8578				sv.MinimumCompressionSize = int32(i64)
8579			}
8580
8581		case "Name":
8582			if value != nil {
8583				jtv, ok := value.(string)
8584				if !ok {
8585					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8586				}
8587				sv.Name = ptr.String(jtv)
8588			}
8589
8590		case "Version":
8591			if value != nil {
8592				jtv, ok := value.(string)
8593				if !ok {
8594					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8595				}
8596				sv.Version = ptr.String(jtv)
8597			}
8598
8599		default:
8600			_, _ = key, value
8601
8602		}
8603	}
8604	*v = sv
8605	return nil
8606}
8607
8608func awsRestjson1_deserializeDocumentAwsApiGatewayStageDetails(v **types.AwsApiGatewayStageDetails, value interface{}) error {
8609	if v == nil {
8610		return fmt.Errorf("unexpected nil of type %T", v)
8611	}
8612	if value == nil {
8613		return nil
8614	}
8615
8616	shape, ok := value.(map[string]interface{})
8617	if !ok {
8618		return fmt.Errorf("unexpected JSON type %v", value)
8619	}
8620
8621	var sv *types.AwsApiGatewayStageDetails
8622	if *v == nil {
8623		sv = &types.AwsApiGatewayStageDetails{}
8624	} else {
8625		sv = *v
8626	}
8627
8628	for key, value := range shape {
8629		switch key {
8630		case "AccessLogSettings":
8631			if err := awsRestjson1_deserializeDocumentAwsApiGatewayAccessLogSettings(&sv.AccessLogSettings, value); err != nil {
8632				return err
8633			}
8634
8635		case "CacheClusterEnabled":
8636			if value != nil {
8637				jtv, ok := value.(bool)
8638				if !ok {
8639					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8640				}
8641				sv.CacheClusterEnabled = jtv
8642			}
8643
8644		case "CacheClusterSize":
8645			if value != nil {
8646				jtv, ok := value.(string)
8647				if !ok {
8648					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8649				}
8650				sv.CacheClusterSize = ptr.String(jtv)
8651			}
8652
8653		case "CacheClusterStatus":
8654			if value != nil {
8655				jtv, ok := value.(string)
8656				if !ok {
8657					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8658				}
8659				sv.CacheClusterStatus = ptr.String(jtv)
8660			}
8661
8662		case "CanarySettings":
8663			if err := awsRestjson1_deserializeDocumentAwsApiGatewayCanarySettings(&sv.CanarySettings, value); err != nil {
8664				return err
8665			}
8666
8667		case "ClientCertificateId":
8668			if value != nil {
8669				jtv, ok := value.(string)
8670				if !ok {
8671					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8672				}
8673				sv.ClientCertificateId = ptr.String(jtv)
8674			}
8675
8676		case "CreatedDate":
8677			if value != nil {
8678				jtv, ok := value.(string)
8679				if !ok {
8680					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8681				}
8682				sv.CreatedDate = ptr.String(jtv)
8683			}
8684
8685		case "DeploymentId":
8686			if value != nil {
8687				jtv, ok := value.(string)
8688				if !ok {
8689					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8690				}
8691				sv.DeploymentId = ptr.String(jtv)
8692			}
8693
8694		case "Description":
8695			if value != nil {
8696				jtv, ok := value.(string)
8697				if !ok {
8698					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8699				}
8700				sv.Description = ptr.String(jtv)
8701			}
8702
8703		case "DocumentationVersion":
8704			if value != nil {
8705				jtv, ok := value.(string)
8706				if !ok {
8707					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8708				}
8709				sv.DocumentationVersion = ptr.String(jtv)
8710			}
8711
8712		case "LastUpdatedDate":
8713			if value != nil {
8714				jtv, ok := value.(string)
8715				if !ok {
8716					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8717				}
8718				sv.LastUpdatedDate = ptr.String(jtv)
8719			}
8720
8721		case "MethodSettings":
8722			if err := awsRestjson1_deserializeDocumentAwsApiGatewayMethodSettingsList(&sv.MethodSettings, value); err != nil {
8723				return err
8724			}
8725
8726		case "StageName":
8727			if value != nil {
8728				jtv, ok := value.(string)
8729				if !ok {
8730					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8731				}
8732				sv.StageName = ptr.String(jtv)
8733			}
8734
8735		case "TracingEnabled":
8736			if value != nil {
8737				jtv, ok := value.(bool)
8738				if !ok {
8739					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8740				}
8741				sv.TracingEnabled = jtv
8742			}
8743
8744		case "Variables":
8745			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil {
8746				return err
8747			}
8748
8749		case "WebAclArn":
8750			if value != nil {
8751				jtv, ok := value.(string)
8752				if !ok {
8753					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8754				}
8755				sv.WebAclArn = ptr.String(jtv)
8756			}
8757
8758		default:
8759			_, _ = key, value
8760
8761		}
8762	}
8763	*v = sv
8764	return nil
8765}
8766
8767func awsRestjson1_deserializeDocumentAwsApiGatewayV2ApiDetails(v **types.AwsApiGatewayV2ApiDetails, value interface{}) error {
8768	if v == nil {
8769		return fmt.Errorf("unexpected nil of type %T", v)
8770	}
8771	if value == nil {
8772		return nil
8773	}
8774
8775	shape, ok := value.(map[string]interface{})
8776	if !ok {
8777		return fmt.Errorf("unexpected JSON type %v", value)
8778	}
8779
8780	var sv *types.AwsApiGatewayV2ApiDetails
8781	if *v == nil {
8782		sv = &types.AwsApiGatewayV2ApiDetails{}
8783	} else {
8784		sv = *v
8785	}
8786
8787	for key, value := range shape {
8788		switch key {
8789		case "ApiEndpoint":
8790			if value != nil {
8791				jtv, ok := value.(string)
8792				if !ok {
8793					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8794				}
8795				sv.ApiEndpoint = ptr.String(jtv)
8796			}
8797
8798		case "ApiId":
8799			if value != nil {
8800				jtv, ok := value.(string)
8801				if !ok {
8802					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8803				}
8804				sv.ApiId = ptr.String(jtv)
8805			}
8806
8807		case "ApiKeySelectionExpression":
8808			if value != nil {
8809				jtv, ok := value.(string)
8810				if !ok {
8811					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8812				}
8813				sv.ApiKeySelectionExpression = ptr.String(jtv)
8814			}
8815
8816		case "CorsConfiguration":
8817			if err := awsRestjson1_deserializeDocumentAwsCorsConfiguration(&sv.CorsConfiguration, value); err != nil {
8818				return err
8819			}
8820
8821		case "CreatedDate":
8822			if value != nil {
8823				jtv, ok := value.(string)
8824				if !ok {
8825					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8826				}
8827				sv.CreatedDate = ptr.String(jtv)
8828			}
8829
8830		case "Description":
8831			if value != nil {
8832				jtv, ok := value.(string)
8833				if !ok {
8834					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8835				}
8836				sv.Description = ptr.String(jtv)
8837			}
8838
8839		case "Name":
8840			if value != nil {
8841				jtv, ok := value.(string)
8842				if !ok {
8843					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8844				}
8845				sv.Name = ptr.String(jtv)
8846			}
8847
8848		case "ProtocolType":
8849			if value != nil {
8850				jtv, ok := value.(string)
8851				if !ok {
8852					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8853				}
8854				sv.ProtocolType = ptr.String(jtv)
8855			}
8856
8857		case "RouteSelectionExpression":
8858			if value != nil {
8859				jtv, ok := value.(string)
8860				if !ok {
8861					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8862				}
8863				sv.RouteSelectionExpression = ptr.String(jtv)
8864			}
8865
8866		case "Version":
8867			if value != nil {
8868				jtv, ok := value.(string)
8869				if !ok {
8870					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8871				}
8872				sv.Version = ptr.String(jtv)
8873			}
8874
8875		default:
8876			_, _ = key, value
8877
8878		}
8879	}
8880	*v = sv
8881	return nil
8882}
8883
8884func awsRestjson1_deserializeDocumentAwsApiGatewayV2RouteSettings(v **types.AwsApiGatewayV2RouteSettings, value interface{}) error {
8885	if v == nil {
8886		return fmt.Errorf("unexpected nil of type %T", v)
8887	}
8888	if value == nil {
8889		return nil
8890	}
8891
8892	shape, ok := value.(map[string]interface{})
8893	if !ok {
8894		return fmt.Errorf("unexpected JSON type %v", value)
8895	}
8896
8897	var sv *types.AwsApiGatewayV2RouteSettings
8898	if *v == nil {
8899		sv = &types.AwsApiGatewayV2RouteSettings{}
8900	} else {
8901		sv = *v
8902	}
8903
8904	for key, value := range shape {
8905		switch key {
8906		case "DataTraceEnabled":
8907			if value != nil {
8908				jtv, ok := value.(bool)
8909				if !ok {
8910					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8911				}
8912				sv.DataTraceEnabled = jtv
8913			}
8914
8915		case "DetailedMetricsEnabled":
8916			if value != nil {
8917				jtv, ok := value.(bool)
8918				if !ok {
8919					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
8920				}
8921				sv.DetailedMetricsEnabled = jtv
8922			}
8923
8924		case "LoggingLevel":
8925			if value != nil {
8926				jtv, ok := value.(string)
8927				if !ok {
8928					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
8929				}
8930				sv.LoggingLevel = ptr.String(jtv)
8931			}
8932
8933		case "ThrottlingBurstLimit":
8934			if value != nil {
8935				jtv, ok := value.(json.Number)
8936				if !ok {
8937					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
8938				}
8939				i64, err := jtv.Int64()
8940				if err != nil {
8941					return err
8942				}
8943				sv.ThrottlingBurstLimit = int32(i64)
8944			}
8945
8946		case "ThrottlingRateLimit":
8947			if value != nil {
8948				switch jtv := value.(type) {
8949				case json.Number:
8950					f64, err := jtv.Float64()
8951					if err != nil {
8952						return err
8953					}
8954					sv.ThrottlingRateLimit = f64
8955
8956				case string:
8957					var f64 float64
8958					switch {
8959					case strings.EqualFold(jtv, "NaN"):
8960						f64 = math.NaN()
8961
8962					case strings.EqualFold(jtv, "Infinity"):
8963						f64 = math.Inf(1)
8964
8965					case strings.EqualFold(jtv, "-Infinity"):
8966						f64 = math.Inf(-1)
8967
8968					default:
8969						return fmt.Errorf("unknown JSON number value: %s", jtv)
8970
8971					}
8972					sv.ThrottlingRateLimit = f64
8973
8974				default:
8975					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
8976
8977				}
8978			}
8979
8980		default:
8981			_, _ = key, value
8982
8983		}
8984	}
8985	*v = sv
8986	return nil
8987}
8988
8989func awsRestjson1_deserializeDocumentAwsApiGatewayV2StageDetails(v **types.AwsApiGatewayV2StageDetails, value interface{}) error {
8990	if v == nil {
8991		return fmt.Errorf("unexpected nil of type %T", v)
8992	}
8993	if value == nil {
8994		return nil
8995	}
8996
8997	shape, ok := value.(map[string]interface{})
8998	if !ok {
8999		return fmt.Errorf("unexpected JSON type %v", value)
9000	}
9001
9002	var sv *types.AwsApiGatewayV2StageDetails
9003	if *v == nil {
9004		sv = &types.AwsApiGatewayV2StageDetails{}
9005	} else {
9006		sv = *v
9007	}
9008
9009	for key, value := range shape {
9010		switch key {
9011		case "AccessLogSettings":
9012			if err := awsRestjson1_deserializeDocumentAwsApiGatewayAccessLogSettings(&sv.AccessLogSettings, value); err != nil {
9013				return err
9014			}
9015
9016		case "ApiGatewayManaged":
9017			if value != nil {
9018				jtv, ok := value.(bool)
9019				if !ok {
9020					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9021				}
9022				sv.ApiGatewayManaged = jtv
9023			}
9024
9025		case "AutoDeploy":
9026			if value != nil {
9027				jtv, ok := value.(bool)
9028				if !ok {
9029					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9030				}
9031				sv.AutoDeploy = jtv
9032			}
9033
9034		case "ClientCertificateId":
9035			if value != nil {
9036				jtv, ok := value.(string)
9037				if !ok {
9038					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9039				}
9040				sv.ClientCertificateId = ptr.String(jtv)
9041			}
9042
9043		case "CreatedDate":
9044			if value != nil {
9045				jtv, ok := value.(string)
9046				if !ok {
9047					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9048				}
9049				sv.CreatedDate = ptr.String(jtv)
9050			}
9051
9052		case "DefaultRouteSettings":
9053			if err := awsRestjson1_deserializeDocumentAwsApiGatewayV2RouteSettings(&sv.DefaultRouteSettings, value); err != nil {
9054				return err
9055			}
9056
9057		case "DeploymentId":
9058			if value != nil {
9059				jtv, ok := value.(string)
9060				if !ok {
9061					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9062				}
9063				sv.DeploymentId = ptr.String(jtv)
9064			}
9065
9066		case "Description":
9067			if value != nil {
9068				jtv, ok := value.(string)
9069				if !ok {
9070					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9071				}
9072				sv.Description = ptr.String(jtv)
9073			}
9074
9075		case "LastDeploymentStatusMessage":
9076			if value != nil {
9077				jtv, ok := value.(string)
9078				if !ok {
9079					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9080				}
9081				sv.LastDeploymentStatusMessage = ptr.String(jtv)
9082			}
9083
9084		case "LastUpdatedDate":
9085			if value != nil {
9086				jtv, ok := value.(string)
9087				if !ok {
9088					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9089				}
9090				sv.LastUpdatedDate = ptr.String(jtv)
9091			}
9092
9093		case "RouteSettings":
9094			if err := awsRestjson1_deserializeDocumentAwsApiGatewayV2RouteSettings(&sv.RouteSettings, value); err != nil {
9095				return err
9096			}
9097
9098		case "StageName":
9099			if value != nil {
9100				jtv, ok := value.(string)
9101				if !ok {
9102					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9103				}
9104				sv.StageName = ptr.String(jtv)
9105			}
9106
9107		case "StageVariables":
9108			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.StageVariables, value); err != nil {
9109				return err
9110			}
9111
9112		default:
9113			_, _ = key, value
9114
9115		}
9116	}
9117	*v = sv
9118	return nil
9119}
9120
9121func awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(v **types.AwsAutoScalingAutoScalingGroupDetails, value interface{}) error {
9122	if v == nil {
9123		return fmt.Errorf("unexpected nil of type %T", v)
9124	}
9125	if value == nil {
9126		return nil
9127	}
9128
9129	shape, ok := value.(map[string]interface{})
9130	if !ok {
9131		return fmt.Errorf("unexpected JSON type %v", value)
9132	}
9133
9134	var sv *types.AwsAutoScalingAutoScalingGroupDetails
9135	if *v == nil {
9136		sv = &types.AwsAutoScalingAutoScalingGroupDetails{}
9137	} else {
9138		sv = *v
9139	}
9140
9141	for key, value := range shape {
9142		switch key {
9143		case "CreatedTime":
9144			if value != nil {
9145				jtv, ok := value.(string)
9146				if !ok {
9147					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9148				}
9149				sv.CreatedTime = ptr.String(jtv)
9150			}
9151
9152		case "HealthCheckGracePeriod":
9153			if value != nil {
9154				jtv, ok := value.(json.Number)
9155				if !ok {
9156					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
9157				}
9158				i64, err := jtv.Int64()
9159				if err != nil {
9160					return err
9161				}
9162				sv.HealthCheckGracePeriod = int32(i64)
9163			}
9164
9165		case "HealthCheckType":
9166			if value != nil {
9167				jtv, ok := value.(string)
9168				if !ok {
9169					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9170				}
9171				sv.HealthCheckType = ptr.String(jtv)
9172			}
9173
9174		case "LaunchConfigurationName":
9175			if value != nil {
9176				jtv, ok := value.(string)
9177				if !ok {
9178					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9179				}
9180				sv.LaunchConfigurationName = ptr.String(jtv)
9181			}
9182
9183		case "LoadBalancerNames":
9184			if err := awsRestjson1_deserializeDocumentStringList(&sv.LoadBalancerNames, value); err != nil {
9185				return err
9186			}
9187
9188		default:
9189			_, _ = key, value
9190
9191		}
9192	}
9193	*v = sv
9194	return nil
9195}
9196
9197func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error {
9198	if v == nil {
9199		return fmt.Errorf("unexpected nil of type %T", v)
9200	}
9201	if value == nil {
9202		return nil
9203	}
9204
9205	shape, ok := value.(map[string]interface{})
9206	if !ok {
9207		return fmt.Errorf("unexpected JSON type %v", value)
9208	}
9209
9210	var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails
9211	if *v == nil {
9212		sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{}
9213	} else {
9214		sv = *v
9215	}
9216
9217	for key, value := range shape {
9218		switch key {
9219		case "DeviceName":
9220			if value != nil {
9221				jtv, ok := value.(string)
9222				if !ok {
9223					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9224				}
9225				sv.DeviceName = ptr.String(jtv)
9226			}
9227
9228		case "Ebs":
9229			if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(&sv.Ebs, value); err != nil {
9230				return err
9231			}
9232
9233		case "NoDevice":
9234			if value != nil {
9235				jtv, ok := value.(bool)
9236				if !ok {
9237					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9238				}
9239				sv.NoDevice = jtv
9240			}
9241
9242		case "VirtualName":
9243			if value != nil {
9244				jtv, ok := value.(string)
9245				if !ok {
9246					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9247				}
9248				sv.VirtualName = ptr.String(jtv)
9249			}
9250
9251		default:
9252			_, _ = key, value
9253
9254		}
9255	}
9256	*v = sv
9257	return nil
9258}
9259
9260func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v **types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value interface{}) error {
9261	if v == nil {
9262		return fmt.Errorf("unexpected nil of type %T", v)
9263	}
9264	if value == nil {
9265		return nil
9266	}
9267
9268	shape, ok := value.(map[string]interface{})
9269	if !ok {
9270		return fmt.Errorf("unexpected JSON type %v", value)
9271	}
9272
9273	var sv *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails
9274	if *v == nil {
9275		sv = &types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails{}
9276	} else {
9277		sv = *v
9278	}
9279
9280	for key, value := range shape {
9281		switch key {
9282		case "DeleteOnTermination":
9283			if value != nil {
9284				jtv, ok := value.(bool)
9285				if !ok {
9286					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9287				}
9288				sv.DeleteOnTermination = jtv
9289			}
9290
9291		case "Encrypted":
9292			if value != nil {
9293				jtv, ok := value.(bool)
9294				if !ok {
9295					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9296				}
9297				sv.Encrypted = jtv
9298			}
9299
9300		case "Iops":
9301			if value != nil {
9302				jtv, ok := value.(json.Number)
9303				if !ok {
9304					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
9305				}
9306				i64, err := jtv.Int64()
9307				if err != nil {
9308					return err
9309				}
9310				sv.Iops = int32(i64)
9311			}
9312
9313		case "SnapshotId":
9314			if value != nil {
9315				jtv, ok := value.(string)
9316				if !ok {
9317					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9318				}
9319				sv.SnapshotId = ptr.String(jtv)
9320			}
9321
9322		case "VolumeSize":
9323			if value != nil {
9324				jtv, ok := value.(json.Number)
9325				if !ok {
9326					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
9327				}
9328				i64, err := jtv.Int64()
9329				if err != nil {
9330					return err
9331				}
9332				sv.VolumeSize = int32(i64)
9333			}
9334
9335		case "VolumeType":
9336			if value != nil {
9337				jtv, ok := value.(string)
9338				if !ok {
9339					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9340				}
9341				sv.VolumeType = ptr.String(jtv)
9342			}
9343
9344		default:
9345			_, _ = key, value
9346
9347		}
9348	}
9349	*v = sv
9350	return nil
9351}
9352
9353func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v *[]types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value interface{}) error {
9354	if v == nil {
9355		return fmt.Errorf("unexpected nil of type %T", v)
9356	}
9357	if value == nil {
9358		return nil
9359	}
9360
9361	shape, ok := value.([]interface{})
9362	if !ok {
9363		return fmt.Errorf("unexpected JSON type %v", value)
9364	}
9365
9366	var cv []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails
9367	if *v == nil {
9368		cv = []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails{}
9369	} else {
9370		cv = *v
9371	}
9372
9373	for _, value := range shape {
9374		var col types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails
9375		destAddr := &col
9376		if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&destAddr, value); err != nil {
9377			return err
9378		}
9379		col = *destAddr
9380		cv = append(cv, col)
9381
9382	}
9383	*v = cv
9384	return nil
9385}
9386
9387func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(v **types.AwsAutoScalingLaunchConfigurationDetails, value interface{}) error {
9388	if v == nil {
9389		return fmt.Errorf("unexpected nil of type %T", v)
9390	}
9391	if value == nil {
9392		return nil
9393	}
9394
9395	shape, ok := value.(map[string]interface{})
9396	if !ok {
9397		return fmt.Errorf("unexpected JSON type %v", value)
9398	}
9399
9400	var sv *types.AwsAutoScalingLaunchConfigurationDetails
9401	if *v == nil {
9402		sv = &types.AwsAutoScalingLaunchConfigurationDetails{}
9403	} else {
9404		sv = *v
9405	}
9406
9407	for key, value := range shape {
9408		switch key {
9409		case "AssociatePublicIpAddress":
9410			if value != nil {
9411				jtv, ok := value.(bool)
9412				if !ok {
9413					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9414				}
9415				sv.AssociatePublicIpAddress = jtv
9416			}
9417
9418		case "BlockDeviceMappings":
9419			if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(&sv.BlockDeviceMappings, value); err != nil {
9420				return err
9421			}
9422
9423		case "ClassicLinkVpcId":
9424			if value != nil {
9425				jtv, ok := value.(string)
9426				if !ok {
9427					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9428				}
9429				sv.ClassicLinkVpcId = ptr.String(jtv)
9430			}
9431
9432		case "ClassicLinkVpcSecurityGroups":
9433			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ClassicLinkVpcSecurityGroups, value); err != nil {
9434				return err
9435			}
9436
9437		case "CreatedTime":
9438			if value != nil {
9439				jtv, ok := value.(string)
9440				if !ok {
9441					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9442				}
9443				sv.CreatedTime = ptr.String(jtv)
9444			}
9445
9446		case "EbsOptimized":
9447			if value != nil {
9448				jtv, ok := value.(bool)
9449				if !ok {
9450					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9451				}
9452				sv.EbsOptimized = jtv
9453			}
9454
9455		case "IamInstanceProfile":
9456			if value != nil {
9457				jtv, ok := value.(string)
9458				if !ok {
9459					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9460				}
9461				sv.IamInstanceProfile = ptr.String(jtv)
9462			}
9463
9464		case "ImageId":
9465			if value != nil {
9466				jtv, ok := value.(string)
9467				if !ok {
9468					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9469				}
9470				sv.ImageId = ptr.String(jtv)
9471			}
9472
9473		case "InstanceMonitoring":
9474			if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(&sv.InstanceMonitoring, value); err != nil {
9475				return err
9476			}
9477
9478		case "InstanceType":
9479			if value != nil {
9480				jtv, ok := value.(string)
9481				if !ok {
9482					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9483				}
9484				sv.InstanceType = ptr.String(jtv)
9485			}
9486
9487		case "KernelId":
9488			if value != nil {
9489				jtv, ok := value.(string)
9490				if !ok {
9491					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9492				}
9493				sv.KernelId = ptr.String(jtv)
9494			}
9495
9496		case "KeyName":
9497			if value != nil {
9498				jtv, ok := value.(string)
9499				if !ok {
9500					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9501				}
9502				sv.KeyName = ptr.String(jtv)
9503			}
9504
9505		case "LaunchConfigurationName":
9506			if value != nil {
9507				jtv, ok := value.(string)
9508				if !ok {
9509					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9510				}
9511				sv.LaunchConfigurationName = ptr.String(jtv)
9512			}
9513
9514		case "PlacementTenancy":
9515			if value != nil {
9516				jtv, ok := value.(string)
9517				if !ok {
9518					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9519				}
9520				sv.PlacementTenancy = ptr.String(jtv)
9521			}
9522
9523		case "RamdiskId":
9524			if value != nil {
9525				jtv, ok := value.(string)
9526				if !ok {
9527					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9528				}
9529				sv.RamdiskId = ptr.String(jtv)
9530			}
9531
9532		case "SecurityGroups":
9533			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil {
9534				return err
9535			}
9536
9537		case "SpotPrice":
9538			if value != nil {
9539				jtv, ok := value.(string)
9540				if !ok {
9541					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9542				}
9543				sv.SpotPrice = ptr.String(jtv)
9544			}
9545
9546		case "UserData":
9547			if value != nil {
9548				jtv, ok := value.(string)
9549				if !ok {
9550					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9551				}
9552				sv.UserData = ptr.String(jtv)
9553			}
9554
9555		default:
9556			_, _ = key, value
9557
9558		}
9559	}
9560	*v = sv
9561	return nil
9562}
9563
9564func awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v **types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value interface{}) error {
9565	if v == nil {
9566		return fmt.Errorf("unexpected nil of type %T", v)
9567	}
9568	if value == nil {
9569		return nil
9570	}
9571
9572	shape, ok := value.(map[string]interface{})
9573	if !ok {
9574		return fmt.Errorf("unexpected JSON type %v", value)
9575	}
9576
9577	var sv *types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails
9578	if *v == nil {
9579		sv = &types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails{}
9580	} else {
9581		sv = *v
9582	}
9583
9584	for key, value := range shape {
9585		switch key {
9586		case "Enabled":
9587			if value != nil {
9588				jtv, ok := value.(bool)
9589				if !ok {
9590					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
9591				}
9592				sv.Enabled = jtv
9593			}
9594
9595		default:
9596			_, _ = key, value
9597
9598		}
9599	}
9600	*v = sv
9601	return nil
9602}
9603
9604func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(v **types.AwsCertificateManagerCertificateDetails, value interface{}) error {
9605	if v == nil {
9606		return fmt.Errorf("unexpected nil of type %T", v)
9607	}
9608	if value == nil {
9609		return nil
9610	}
9611
9612	shape, ok := value.(map[string]interface{})
9613	if !ok {
9614		return fmt.Errorf("unexpected JSON type %v", value)
9615	}
9616
9617	var sv *types.AwsCertificateManagerCertificateDetails
9618	if *v == nil {
9619		sv = &types.AwsCertificateManagerCertificateDetails{}
9620	} else {
9621		sv = *v
9622	}
9623
9624	for key, value := range shape {
9625		switch key {
9626		case "CertificateAuthorityArn":
9627			if value != nil {
9628				jtv, ok := value.(string)
9629				if !ok {
9630					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9631				}
9632				sv.CertificateAuthorityArn = ptr.String(jtv)
9633			}
9634
9635		case "CreatedAt":
9636			if value != nil {
9637				jtv, ok := value.(string)
9638				if !ok {
9639					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9640				}
9641				sv.CreatedAt = ptr.String(jtv)
9642			}
9643
9644		case "DomainName":
9645			if value != nil {
9646				jtv, ok := value.(string)
9647				if !ok {
9648					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9649				}
9650				sv.DomainName = ptr.String(jtv)
9651			}
9652
9653		case "DomainValidationOptions":
9654			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil {
9655				return err
9656			}
9657
9658		case "ExtendedKeyUsages":
9659			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(&sv.ExtendedKeyUsages, value); err != nil {
9660				return err
9661			}
9662
9663		case "FailureReason":
9664			if value != nil {
9665				jtv, ok := value.(string)
9666				if !ok {
9667					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9668				}
9669				sv.FailureReason = ptr.String(jtv)
9670			}
9671
9672		case "ImportedAt":
9673			if value != nil {
9674				jtv, ok := value.(string)
9675				if !ok {
9676					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9677				}
9678				sv.ImportedAt = ptr.String(jtv)
9679			}
9680
9681		case "InUseBy":
9682			if err := awsRestjson1_deserializeDocumentStringList(&sv.InUseBy, value); err != nil {
9683				return err
9684			}
9685
9686		case "IssuedAt":
9687			if value != nil {
9688				jtv, ok := value.(string)
9689				if !ok {
9690					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9691				}
9692				sv.IssuedAt = ptr.String(jtv)
9693			}
9694
9695		case "Issuer":
9696			if value != nil {
9697				jtv, ok := value.(string)
9698				if !ok {
9699					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9700				}
9701				sv.Issuer = ptr.String(jtv)
9702			}
9703
9704		case "KeyAlgorithm":
9705			if value != nil {
9706				jtv, ok := value.(string)
9707				if !ok {
9708					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9709				}
9710				sv.KeyAlgorithm = ptr.String(jtv)
9711			}
9712
9713		case "KeyUsages":
9714			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(&sv.KeyUsages, value); err != nil {
9715				return err
9716			}
9717
9718		case "NotAfter":
9719			if value != nil {
9720				jtv, ok := value.(string)
9721				if !ok {
9722					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9723				}
9724				sv.NotAfter = ptr.String(jtv)
9725			}
9726
9727		case "NotBefore":
9728			if value != nil {
9729				jtv, ok := value.(string)
9730				if !ok {
9731					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9732				}
9733				sv.NotBefore = ptr.String(jtv)
9734			}
9735
9736		case "Options":
9737			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(&sv.Options, value); err != nil {
9738				return err
9739			}
9740
9741		case "RenewalEligibility":
9742			if value != nil {
9743				jtv, ok := value.(string)
9744				if !ok {
9745					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9746				}
9747				sv.RenewalEligibility = ptr.String(jtv)
9748			}
9749
9750		case "RenewalSummary":
9751			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(&sv.RenewalSummary, value); err != nil {
9752				return err
9753			}
9754
9755		case "Serial":
9756			if value != nil {
9757				jtv, ok := value.(string)
9758				if !ok {
9759					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9760				}
9761				sv.Serial = ptr.String(jtv)
9762			}
9763
9764		case "SignatureAlgorithm":
9765			if value != nil {
9766				jtv, ok := value.(string)
9767				if !ok {
9768					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9769				}
9770				sv.SignatureAlgorithm = ptr.String(jtv)
9771			}
9772
9773		case "Status":
9774			if value != nil {
9775				jtv, ok := value.(string)
9776				if !ok {
9777					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9778				}
9779				sv.Status = ptr.String(jtv)
9780			}
9781
9782		case "Subject":
9783			if value != nil {
9784				jtv, ok := value.(string)
9785				if !ok {
9786					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9787				}
9788				sv.Subject = ptr.String(jtv)
9789			}
9790
9791		case "SubjectAlternativeNames":
9792			if err := awsRestjson1_deserializeDocumentStringList(&sv.SubjectAlternativeNames, value); err != nil {
9793				return err
9794			}
9795
9796		case "Type":
9797			if value != nil {
9798				jtv, ok := value.(string)
9799				if !ok {
9800					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9801				}
9802				sv.Type = ptr.String(jtv)
9803			}
9804
9805		default:
9806			_, _ = key, value
9807
9808		}
9809	}
9810	*v = sv
9811	return nil
9812}
9813
9814func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v **types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error {
9815	if v == nil {
9816		return fmt.Errorf("unexpected nil of type %T", v)
9817	}
9818	if value == nil {
9819		return nil
9820	}
9821
9822	shape, ok := value.(map[string]interface{})
9823	if !ok {
9824		return fmt.Errorf("unexpected JSON type %v", value)
9825	}
9826
9827	var sv *types.AwsCertificateManagerCertificateDomainValidationOption
9828	if *v == nil {
9829		sv = &types.AwsCertificateManagerCertificateDomainValidationOption{}
9830	} else {
9831		sv = *v
9832	}
9833
9834	for key, value := range shape {
9835		switch key {
9836		case "DomainName":
9837			if value != nil {
9838				jtv, ok := value.(string)
9839				if !ok {
9840					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9841				}
9842				sv.DomainName = ptr.String(jtv)
9843			}
9844
9845		case "ResourceRecord":
9846			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(&sv.ResourceRecord, value); err != nil {
9847				return err
9848			}
9849
9850		case "ValidationDomain":
9851			if value != nil {
9852				jtv, ok := value.(string)
9853				if !ok {
9854					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9855				}
9856				sv.ValidationDomain = ptr.String(jtv)
9857			}
9858
9859		case "ValidationEmails":
9860			if err := awsRestjson1_deserializeDocumentStringList(&sv.ValidationEmails, value); err != nil {
9861				return err
9862			}
9863
9864		case "ValidationMethod":
9865			if value != nil {
9866				jtv, ok := value.(string)
9867				if !ok {
9868					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9869				}
9870				sv.ValidationMethod = ptr.String(jtv)
9871			}
9872
9873		case "ValidationStatus":
9874			if value != nil {
9875				jtv, ok := value.(string)
9876				if !ok {
9877					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9878				}
9879				sv.ValidationStatus = ptr.String(jtv)
9880			}
9881
9882		default:
9883			_, _ = key, value
9884
9885		}
9886	}
9887	*v = sv
9888	return nil
9889}
9890
9891func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v *[]types.AwsCertificateManagerCertificateDomainValidationOption, value interface{}) error {
9892	if v == nil {
9893		return fmt.Errorf("unexpected nil of type %T", v)
9894	}
9895	if value == nil {
9896		return nil
9897	}
9898
9899	shape, ok := value.([]interface{})
9900	if !ok {
9901		return fmt.Errorf("unexpected JSON type %v", value)
9902	}
9903
9904	var cv []types.AwsCertificateManagerCertificateDomainValidationOption
9905	if *v == nil {
9906		cv = []types.AwsCertificateManagerCertificateDomainValidationOption{}
9907	} else {
9908		cv = *v
9909	}
9910
9911	for _, value := range shape {
9912		var col types.AwsCertificateManagerCertificateDomainValidationOption
9913		destAddr := &col
9914		if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&destAddr, value); err != nil {
9915			return err
9916		}
9917		col = *destAddr
9918		cv = append(cv, col)
9919
9920	}
9921	*v = cv
9922	return nil
9923}
9924
9925func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v **types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error {
9926	if v == nil {
9927		return fmt.Errorf("unexpected nil of type %T", v)
9928	}
9929	if value == nil {
9930		return nil
9931	}
9932
9933	shape, ok := value.(map[string]interface{})
9934	if !ok {
9935		return fmt.Errorf("unexpected JSON type %v", value)
9936	}
9937
9938	var sv *types.AwsCertificateManagerCertificateExtendedKeyUsage
9939	if *v == nil {
9940		sv = &types.AwsCertificateManagerCertificateExtendedKeyUsage{}
9941	} else {
9942		sv = *v
9943	}
9944
9945	for key, value := range shape {
9946		switch key {
9947		case "Name":
9948			if value != nil {
9949				jtv, ok := value.(string)
9950				if !ok {
9951					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9952				}
9953				sv.Name = ptr.String(jtv)
9954			}
9955
9956		case "OId":
9957			if value != nil {
9958				jtv, ok := value.(string)
9959				if !ok {
9960					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
9961				}
9962				sv.OId = ptr.String(jtv)
9963			}
9964
9965		default:
9966			_, _ = key, value
9967
9968		}
9969	}
9970	*v = sv
9971	return nil
9972}
9973
9974func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v *[]types.AwsCertificateManagerCertificateExtendedKeyUsage, value interface{}) error {
9975	if v == nil {
9976		return fmt.Errorf("unexpected nil of type %T", v)
9977	}
9978	if value == nil {
9979		return nil
9980	}
9981
9982	shape, ok := value.([]interface{})
9983	if !ok {
9984		return fmt.Errorf("unexpected JSON type %v", value)
9985	}
9986
9987	var cv []types.AwsCertificateManagerCertificateExtendedKeyUsage
9988	if *v == nil {
9989		cv = []types.AwsCertificateManagerCertificateExtendedKeyUsage{}
9990	} else {
9991		cv = *v
9992	}
9993
9994	for _, value := range shape {
9995		var col types.AwsCertificateManagerCertificateExtendedKeyUsage
9996		destAddr := &col
9997		if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&destAddr, value); err != nil {
9998			return err
9999		}
10000		col = *destAddr
10001		cv = append(cv, col)
10002
10003	}
10004	*v = cv
10005	return nil
10006}
10007
10008func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(v **types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error {
10009	if v == nil {
10010		return fmt.Errorf("unexpected nil of type %T", v)
10011	}
10012	if value == nil {
10013		return nil
10014	}
10015
10016	shape, ok := value.(map[string]interface{})
10017	if !ok {
10018		return fmt.Errorf("unexpected JSON type %v", value)
10019	}
10020
10021	var sv *types.AwsCertificateManagerCertificateKeyUsage
10022	if *v == nil {
10023		sv = &types.AwsCertificateManagerCertificateKeyUsage{}
10024	} else {
10025		sv = *v
10026	}
10027
10028	for key, value := range shape {
10029		switch key {
10030		case "Name":
10031			if value != nil {
10032				jtv, ok := value.(string)
10033				if !ok {
10034					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10035				}
10036				sv.Name = ptr.String(jtv)
10037			}
10038
10039		default:
10040			_, _ = key, value
10041
10042		}
10043	}
10044	*v = sv
10045	return nil
10046}
10047
10048func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsages(v *[]types.AwsCertificateManagerCertificateKeyUsage, value interface{}) error {
10049	if v == nil {
10050		return fmt.Errorf("unexpected nil of type %T", v)
10051	}
10052	if value == nil {
10053		return nil
10054	}
10055
10056	shape, ok := value.([]interface{})
10057	if !ok {
10058		return fmt.Errorf("unexpected JSON type %v", value)
10059	}
10060
10061	var cv []types.AwsCertificateManagerCertificateKeyUsage
10062	if *v == nil {
10063		cv = []types.AwsCertificateManagerCertificateKeyUsage{}
10064	} else {
10065		cv = *v
10066	}
10067
10068	for _, value := range shape {
10069		var col types.AwsCertificateManagerCertificateKeyUsage
10070		destAddr := &col
10071		if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateKeyUsage(&destAddr, value); err != nil {
10072			return err
10073		}
10074		col = *destAddr
10075		cv = append(cv, col)
10076
10077	}
10078	*v = cv
10079	return nil
10080}
10081
10082func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateOptions(v **types.AwsCertificateManagerCertificateOptions, value interface{}) error {
10083	if v == nil {
10084		return fmt.Errorf("unexpected nil of type %T", v)
10085	}
10086	if value == nil {
10087		return nil
10088	}
10089
10090	shape, ok := value.(map[string]interface{})
10091	if !ok {
10092		return fmt.Errorf("unexpected JSON type %v", value)
10093	}
10094
10095	var sv *types.AwsCertificateManagerCertificateOptions
10096	if *v == nil {
10097		sv = &types.AwsCertificateManagerCertificateOptions{}
10098	} else {
10099		sv = *v
10100	}
10101
10102	for key, value := range shape {
10103		switch key {
10104		case "CertificateTransparencyLoggingPreference":
10105			if value != nil {
10106				jtv, ok := value.(string)
10107				if !ok {
10108					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10109				}
10110				sv.CertificateTransparencyLoggingPreference = ptr.String(jtv)
10111			}
10112
10113		default:
10114			_, _ = key, value
10115
10116		}
10117	}
10118	*v = sv
10119	return nil
10120}
10121
10122func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateRenewalSummary(v **types.AwsCertificateManagerCertificateRenewalSummary, value interface{}) error {
10123	if v == nil {
10124		return fmt.Errorf("unexpected nil of type %T", v)
10125	}
10126	if value == nil {
10127		return nil
10128	}
10129
10130	shape, ok := value.(map[string]interface{})
10131	if !ok {
10132		return fmt.Errorf("unexpected JSON type %v", value)
10133	}
10134
10135	var sv *types.AwsCertificateManagerCertificateRenewalSummary
10136	if *v == nil {
10137		sv = &types.AwsCertificateManagerCertificateRenewalSummary{}
10138	} else {
10139		sv = *v
10140	}
10141
10142	for key, value := range shape {
10143		switch key {
10144		case "DomainValidationOptions":
10145			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(&sv.DomainValidationOptions, value); err != nil {
10146				return err
10147			}
10148
10149		case "RenewalStatus":
10150			if value != nil {
10151				jtv, ok := value.(string)
10152				if !ok {
10153					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10154				}
10155				sv.RenewalStatus = ptr.String(jtv)
10156			}
10157
10158		case "RenewalStatusReason":
10159			if value != nil {
10160				jtv, ok := value.(string)
10161				if !ok {
10162					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10163				}
10164				sv.RenewalStatusReason = ptr.String(jtv)
10165			}
10166
10167		case "UpdatedAt":
10168			if value != nil {
10169				jtv, ok := value.(string)
10170				if !ok {
10171					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10172				}
10173				sv.UpdatedAt = ptr.String(jtv)
10174			}
10175
10176		default:
10177			_, _ = key, value
10178
10179		}
10180	}
10181	*v = sv
10182	return nil
10183}
10184
10185func awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateResourceRecord(v **types.AwsCertificateManagerCertificateResourceRecord, value interface{}) error {
10186	if v == nil {
10187		return fmt.Errorf("unexpected nil of type %T", v)
10188	}
10189	if value == nil {
10190		return nil
10191	}
10192
10193	shape, ok := value.(map[string]interface{})
10194	if !ok {
10195		return fmt.Errorf("unexpected JSON type %v", value)
10196	}
10197
10198	var sv *types.AwsCertificateManagerCertificateResourceRecord
10199	if *v == nil {
10200		sv = &types.AwsCertificateManagerCertificateResourceRecord{}
10201	} else {
10202		sv = *v
10203	}
10204
10205	for key, value := range shape {
10206		switch key {
10207		case "Name":
10208			if value != nil {
10209				jtv, ok := value.(string)
10210				if !ok {
10211					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10212				}
10213				sv.Name = ptr.String(jtv)
10214			}
10215
10216		case "Type":
10217			if value != nil {
10218				jtv, ok := value.(string)
10219				if !ok {
10220					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10221				}
10222				sv.Type = ptr.String(jtv)
10223			}
10224
10225		case "Value":
10226			if value != nil {
10227				jtv, ok := value.(string)
10228				if !ok {
10229					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10230				}
10231				sv.Value = ptr.String(jtv)
10232			}
10233
10234		default:
10235			_, _ = key, value
10236
10237		}
10238	}
10239	*v = sv
10240	return nil
10241}
10242
10243func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(v **types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error {
10244	if v == nil {
10245		return fmt.Errorf("unexpected nil of type %T", v)
10246	}
10247	if value == nil {
10248		return nil
10249	}
10250
10251	shape, ok := value.(map[string]interface{})
10252	if !ok {
10253		return fmt.Errorf("unexpected JSON type %v", value)
10254	}
10255
10256	var sv *types.AwsCloudFrontDistributionCacheBehavior
10257	if *v == nil {
10258		sv = &types.AwsCloudFrontDistributionCacheBehavior{}
10259	} else {
10260		sv = *v
10261	}
10262
10263	for key, value := range shape {
10264		switch key {
10265		case "ViewerProtocolPolicy":
10266			if value != nil {
10267				jtv, ok := value.(string)
10268				if !ok {
10269					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10270				}
10271				sv.ViewerProtocolPolicy = ptr.String(jtv)
10272			}
10273
10274		default:
10275			_, _ = key, value
10276
10277		}
10278	}
10279	*v = sv
10280	return nil
10281}
10282
10283func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(v **types.AwsCloudFrontDistributionCacheBehaviors, value interface{}) error {
10284	if v == nil {
10285		return fmt.Errorf("unexpected nil of type %T", v)
10286	}
10287	if value == nil {
10288		return nil
10289	}
10290
10291	shape, ok := value.(map[string]interface{})
10292	if !ok {
10293		return fmt.Errorf("unexpected JSON type %v", value)
10294	}
10295
10296	var sv *types.AwsCloudFrontDistributionCacheBehaviors
10297	if *v == nil {
10298		sv = &types.AwsCloudFrontDistributionCacheBehaviors{}
10299	} else {
10300		sv = *v
10301	}
10302
10303	for key, value := range shape {
10304		switch key {
10305		case "Items":
10306			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(&sv.Items, value); err != nil {
10307				return err
10308			}
10309
10310		default:
10311			_, _ = key, value
10312
10313		}
10314	}
10315	*v = sv
10316	return nil
10317}
10318
10319func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v *[]types.AwsCloudFrontDistributionCacheBehavior, value interface{}) error {
10320	if v == nil {
10321		return fmt.Errorf("unexpected nil of type %T", v)
10322	}
10323	if value == nil {
10324		return nil
10325	}
10326
10327	shape, ok := value.([]interface{})
10328	if !ok {
10329		return fmt.Errorf("unexpected JSON type %v", value)
10330	}
10331
10332	var cv []types.AwsCloudFrontDistributionCacheBehavior
10333	if *v == nil {
10334		cv = []types.AwsCloudFrontDistributionCacheBehavior{}
10335	} else {
10336		cv = *v
10337	}
10338
10339	for _, value := range shape {
10340		var col types.AwsCloudFrontDistributionCacheBehavior
10341		destAddr := &col
10342		if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehavior(&destAddr, value); err != nil {
10343			return err
10344		}
10345		col = *destAddr
10346		cv = append(cv, col)
10347
10348	}
10349	*v = cv
10350	return nil
10351}
10352
10353func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v **types.AwsCloudFrontDistributionDefaultCacheBehavior, value interface{}) error {
10354	if v == nil {
10355		return fmt.Errorf("unexpected nil of type %T", v)
10356	}
10357	if value == nil {
10358		return nil
10359	}
10360
10361	shape, ok := value.(map[string]interface{})
10362	if !ok {
10363		return fmt.Errorf("unexpected JSON type %v", value)
10364	}
10365
10366	var sv *types.AwsCloudFrontDistributionDefaultCacheBehavior
10367	if *v == nil {
10368		sv = &types.AwsCloudFrontDistributionDefaultCacheBehavior{}
10369	} else {
10370		sv = *v
10371	}
10372
10373	for key, value := range shape {
10374		switch key {
10375		case "ViewerProtocolPolicy":
10376			if value != nil {
10377				jtv, ok := value.(string)
10378				if !ok {
10379					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10380				}
10381				sv.ViewerProtocolPolicy = ptr.String(jtv)
10382			}
10383
10384		default:
10385			_, _ = key, value
10386
10387		}
10388	}
10389	*v = sv
10390	return nil
10391}
10392
10393func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(v **types.AwsCloudFrontDistributionDetails, value interface{}) error {
10394	if v == nil {
10395		return fmt.Errorf("unexpected nil of type %T", v)
10396	}
10397	if value == nil {
10398		return nil
10399	}
10400
10401	shape, ok := value.(map[string]interface{})
10402	if !ok {
10403		return fmt.Errorf("unexpected JSON type %v", value)
10404	}
10405
10406	var sv *types.AwsCloudFrontDistributionDetails
10407	if *v == nil {
10408		sv = &types.AwsCloudFrontDistributionDetails{}
10409	} else {
10410		sv = *v
10411	}
10412
10413	for key, value := range shape {
10414		switch key {
10415		case "CacheBehaviors":
10416			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionCacheBehaviors(&sv.CacheBehaviors, value); err != nil {
10417				return err
10418			}
10419
10420		case "DefaultCacheBehavior":
10421			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(&sv.DefaultCacheBehavior, value); err != nil {
10422				return err
10423			}
10424
10425		case "DefaultRootObject":
10426			if value != nil {
10427				jtv, ok := value.(string)
10428				if !ok {
10429					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10430				}
10431				sv.DefaultRootObject = ptr.String(jtv)
10432			}
10433
10434		case "DomainName":
10435			if value != nil {
10436				jtv, ok := value.(string)
10437				if !ok {
10438					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10439				}
10440				sv.DomainName = ptr.String(jtv)
10441			}
10442
10443		case "ETag":
10444			if value != nil {
10445				jtv, ok := value.(string)
10446				if !ok {
10447					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10448				}
10449				sv.ETag = ptr.String(jtv)
10450			}
10451
10452		case "LastModifiedTime":
10453			if value != nil {
10454				jtv, ok := value.(string)
10455				if !ok {
10456					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10457				}
10458				sv.LastModifiedTime = ptr.String(jtv)
10459			}
10460
10461		case "Logging":
10462			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(&sv.Logging, value); err != nil {
10463				return err
10464			}
10465
10466		case "OriginGroups":
10467			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(&sv.OriginGroups, value); err != nil {
10468				return err
10469			}
10470
10471		case "Origins":
10472			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(&sv.Origins, value); err != nil {
10473				return err
10474			}
10475
10476		case "Status":
10477			if value != nil {
10478				jtv, ok := value.(string)
10479				if !ok {
10480					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10481				}
10482				sv.Status = ptr.String(jtv)
10483			}
10484
10485		case "WebAclId":
10486			if value != nil {
10487				jtv, ok := value.(string)
10488				if !ok {
10489					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10490				}
10491				sv.WebAclId = ptr.String(jtv)
10492			}
10493
10494		default:
10495			_, _ = key, value
10496
10497		}
10498	}
10499	*v = sv
10500	return nil
10501}
10502
10503func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionLogging(v **types.AwsCloudFrontDistributionLogging, value interface{}) error {
10504	if v == nil {
10505		return fmt.Errorf("unexpected nil of type %T", v)
10506	}
10507	if value == nil {
10508		return nil
10509	}
10510
10511	shape, ok := value.(map[string]interface{})
10512	if !ok {
10513		return fmt.Errorf("unexpected JSON type %v", value)
10514	}
10515
10516	var sv *types.AwsCloudFrontDistributionLogging
10517	if *v == nil {
10518		sv = &types.AwsCloudFrontDistributionLogging{}
10519	} else {
10520		sv = *v
10521	}
10522
10523	for key, value := range shape {
10524		switch key {
10525		case "Bucket":
10526			if value != nil {
10527				jtv, ok := value.(string)
10528				if !ok {
10529					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10530				}
10531				sv.Bucket = ptr.String(jtv)
10532			}
10533
10534		case "Enabled":
10535			if value != nil {
10536				jtv, ok := value.(bool)
10537				if !ok {
10538					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
10539				}
10540				sv.Enabled = jtv
10541			}
10542
10543		case "IncludeCookies":
10544			if value != nil {
10545				jtv, ok := value.(bool)
10546				if !ok {
10547					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
10548				}
10549				sv.IncludeCookies = jtv
10550			}
10551
10552		case "Prefix":
10553			if value != nil {
10554				jtv, ok := value.(string)
10555				if !ok {
10556					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10557				}
10558				sv.Prefix = ptr.String(jtv)
10559			}
10560
10561		default:
10562			_, _ = key, value
10563
10564		}
10565	}
10566	*v = sv
10567	return nil
10568}
10569
10570func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(v **types.AwsCloudFrontDistributionOriginGroup, value interface{}) error {
10571	if v == nil {
10572		return fmt.Errorf("unexpected nil of type %T", v)
10573	}
10574	if value == nil {
10575		return nil
10576	}
10577
10578	shape, ok := value.(map[string]interface{})
10579	if !ok {
10580		return fmt.Errorf("unexpected JSON type %v", value)
10581	}
10582
10583	var sv *types.AwsCloudFrontDistributionOriginGroup
10584	if *v == nil {
10585		sv = &types.AwsCloudFrontDistributionOriginGroup{}
10586	} else {
10587		sv = *v
10588	}
10589
10590	for key, value := range shape {
10591		switch key {
10592		case "FailoverCriteria":
10593			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(&sv.FailoverCriteria, value); err != nil {
10594				return err
10595			}
10596
10597		default:
10598			_, _ = key, value
10599
10600		}
10601	}
10602	*v = sv
10603	return nil
10604}
10605
10606func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v **types.AwsCloudFrontDistributionOriginGroupFailover, value interface{}) error {
10607	if v == nil {
10608		return fmt.Errorf("unexpected nil of type %T", v)
10609	}
10610	if value == nil {
10611		return nil
10612	}
10613
10614	shape, ok := value.(map[string]interface{})
10615	if !ok {
10616		return fmt.Errorf("unexpected JSON type %v", value)
10617	}
10618
10619	var sv *types.AwsCloudFrontDistributionOriginGroupFailover
10620	if *v == nil {
10621		sv = &types.AwsCloudFrontDistributionOriginGroupFailover{}
10622	} else {
10623		sv = *v
10624	}
10625
10626	for key, value := range shape {
10627		switch key {
10628		case "StatusCodes":
10629			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(&sv.StatusCodes, value); err != nil {
10630				return err
10631			}
10632
10633		default:
10634			_, _ = key, value
10635
10636		}
10637	}
10638	*v = sv
10639	return nil
10640}
10641
10642func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v **types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value interface{}) error {
10643	if v == nil {
10644		return fmt.Errorf("unexpected nil of type %T", v)
10645	}
10646	if value == nil {
10647		return nil
10648	}
10649
10650	shape, ok := value.(map[string]interface{})
10651	if !ok {
10652		return fmt.Errorf("unexpected JSON type %v", value)
10653	}
10654
10655	var sv *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes
10656	if *v == nil {
10657		sv = &types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes{}
10658	} else {
10659		sv = *v
10660	}
10661
10662	for key, value := range shape {
10663		switch key {
10664		case "Items":
10665			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(&sv.Items, value); err != nil {
10666				return err
10667			}
10668
10669		case "Quantity":
10670			if value != nil {
10671				jtv, ok := value.(json.Number)
10672				if !ok {
10673					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
10674				}
10675				i64, err := jtv.Int64()
10676				if err != nil {
10677					return err
10678				}
10679				sv.Quantity = int32(i64)
10680			}
10681
10682		default:
10683			_, _ = key, value
10684
10685		}
10686	}
10687	*v = sv
10688	return nil
10689}
10690
10691func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v *[]int32, value interface{}) error {
10692	if v == nil {
10693		return fmt.Errorf("unexpected nil of type %T", v)
10694	}
10695	if value == nil {
10696		return nil
10697	}
10698
10699	shape, ok := value.([]interface{})
10700	if !ok {
10701		return fmt.Errorf("unexpected JSON type %v", value)
10702	}
10703
10704	var cv []int32
10705	if *v == nil {
10706		cv = []int32{}
10707	} else {
10708		cv = *v
10709	}
10710
10711	for _, value := range shape {
10712		var col int32
10713		if value != nil {
10714			jtv, ok := value.(json.Number)
10715			if !ok {
10716				return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
10717			}
10718			i64, err := jtv.Int64()
10719			if err != nil {
10720				return err
10721			}
10722			col = int32(i64)
10723		}
10724		cv = append(cv, col)
10725
10726	}
10727	*v = cv
10728	return nil
10729}
10730
10731func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroups(v **types.AwsCloudFrontDistributionOriginGroups, value interface{}) error {
10732	if v == nil {
10733		return fmt.Errorf("unexpected nil of type %T", v)
10734	}
10735	if value == nil {
10736		return nil
10737	}
10738
10739	shape, ok := value.(map[string]interface{})
10740	if !ok {
10741		return fmt.Errorf("unexpected JSON type %v", value)
10742	}
10743
10744	var sv *types.AwsCloudFrontDistributionOriginGroups
10745	if *v == nil {
10746		sv = &types.AwsCloudFrontDistributionOriginGroups{}
10747	} else {
10748		sv = *v
10749	}
10750
10751	for key, value := range shape {
10752		switch key {
10753		case "Items":
10754			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(&sv.Items, value); err != nil {
10755				return err
10756			}
10757
10758		default:
10759			_, _ = key, value
10760
10761		}
10762	}
10763	*v = sv
10764	return nil
10765}
10766
10767func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v *[]types.AwsCloudFrontDistributionOriginGroup, value interface{}) error {
10768	if v == nil {
10769		return fmt.Errorf("unexpected nil of type %T", v)
10770	}
10771	if value == nil {
10772		return nil
10773	}
10774
10775	shape, ok := value.([]interface{})
10776	if !ok {
10777		return fmt.Errorf("unexpected JSON type %v", value)
10778	}
10779
10780	var cv []types.AwsCloudFrontDistributionOriginGroup
10781	if *v == nil {
10782		cv = []types.AwsCloudFrontDistributionOriginGroup{}
10783	} else {
10784		cv = *v
10785	}
10786
10787	for _, value := range shape {
10788		var col types.AwsCloudFrontDistributionOriginGroup
10789		destAddr := &col
10790		if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginGroup(&destAddr, value); err != nil {
10791			return err
10792		}
10793		col = *destAddr
10794		cv = append(cv, col)
10795
10796	}
10797	*v = cv
10798	return nil
10799}
10800
10801func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(v **types.AwsCloudFrontDistributionOriginItem, value interface{}) error {
10802	if v == nil {
10803		return fmt.Errorf("unexpected nil of type %T", v)
10804	}
10805	if value == nil {
10806		return nil
10807	}
10808
10809	shape, ok := value.(map[string]interface{})
10810	if !ok {
10811		return fmt.Errorf("unexpected JSON type %v", value)
10812	}
10813
10814	var sv *types.AwsCloudFrontDistributionOriginItem
10815	if *v == nil {
10816		sv = &types.AwsCloudFrontDistributionOriginItem{}
10817	} else {
10818		sv = *v
10819	}
10820
10821	for key, value := range shape {
10822		switch key {
10823		case "DomainName":
10824			if value != nil {
10825				jtv, ok := value.(string)
10826				if !ok {
10827					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10828				}
10829				sv.DomainName = ptr.String(jtv)
10830			}
10831
10832		case "Id":
10833			if value != nil {
10834				jtv, ok := value.(string)
10835				if !ok {
10836					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10837				}
10838				sv.Id = ptr.String(jtv)
10839			}
10840
10841		case "OriginPath":
10842			if value != nil {
10843				jtv, ok := value.(string)
10844				if !ok {
10845					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10846				}
10847				sv.OriginPath = ptr.String(jtv)
10848			}
10849
10850		case "S3OriginConfig":
10851			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(&sv.S3OriginConfig, value); err != nil {
10852				return err
10853			}
10854
10855		default:
10856			_, _ = key, value
10857
10858		}
10859	}
10860	*v = sv
10861	return nil
10862}
10863
10864func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(v *[]types.AwsCloudFrontDistributionOriginItem, value interface{}) error {
10865	if v == nil {
10866		return fmt.Errorf("unexpected nil of type %T", v)
10867	}
10868	if value == nil {
10869		return nil
10870	}
10871
10872	shape, ok := value.([]interface{})
10873	if !ok {
10874		return fmt.Errorf("unexpected JSON type %v", value)
10875	}
10876
10877	var cv []types.AwsCloudFrontDistributionOriginItem
10878	if *v == nil {
10879		cv = []types.AwsCloudFrontDistributionOriginItem{}
10880	} else {
10881		cv = *v
10882	}
10883
10884	for _, value := range shape {
10885		var col types.AwsCloudFrontDistributionOriginItem
10886		destAddr := &col
10887		if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItem(&destAddr, value); err != nil {
10888			return err
10889		}
10890		col = *destAddr
10891		cv = append(cv, col)
10892
10893	}
10894	*v = cv
10895	return nil
10896}
10897
10898func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOrigins(v **types.AwsCloudFrontDistributionOrigins, value interface{}) error {
10899	if v == nil {
10900		return fmt.Errorf("unexpected nil of type %T", v)
10901	}
10902	if value == nil {
10903		return nil
10904	}
10905
10906	shape, ok := value.(map[string]interface{})
10907	if !ok {
10908		return fmt.Errorf("unexpected JSON type %v", value)
10909	}
10910
10911	var sv *types.AwsCloudFrontDistributionOrigins
10912	if *v == nil {
10913		sv = &types.AwsCloudFrontDistributionOrigins{}
10914	} else {
10915		sv = *v
10916	}
10917
10918	for key, value := range shape {
10919		switch key {
10920		case "Items":
10921			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginItemList(&sv.Items, value); err != nil {
10922				return err
10923			}
10924
10925		default:
10926			_, _ = key, value
10927
10928		}
10929	}
10930	*v = sv
10931	return nil
10932}
10933
10934func awsRestjson1_deserializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v **types.AwsCloudFrontDistributionOriginS3OriginConfig, value interface{}) error {
10935	if v == nil {
10936		return fmt.Errorf("unexpected nil of type %T", v)
10937	}
10938	if value == nil {
10939		return nil
10940	}
10941
10942	shape, ok := value.(map[string]interface{})
10943	if !ok {
10944		return fmt.Errorf("unexpected JSON type %v", value)
10945	}
10946
10947	var sv *types.AwsCloudFrontDistributionOriginS3OriginConfig
10948	if *v == nil {
10949		sv = &types.AwsCloudFrontDistributionOriginS3OriginConfig{}
10950	} else {
10951		sv = *v
10952	}
10953
10954	for key, value := range shape {
10955		switch key {
10956		case "OriginAccessIdentity":
10957			if value != nil {
10958				jtv, ok := value.(string)
10959				if !ok {
10960					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
10961				}
10962				sv.OriginAccessIdentity = ptr.String(jtv)
10963			}
10964
10965		default:
10966			_, _ = key, value
10967
10968		}
10969	}
10970	*v = sv
10971	return nil
10972}
10973
10974func awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(v **types.AwsCloudTrailTrailDetails, value interface{}) error {
10975	if v == nil {
10976		return fmt.Errorf("unexpected nil of type %T", v)
10977	}
10978	if value == nil {
10979		return nil
10980	}
10981
10982	shape, ok := value.(map[string]interface{})
10983	if !ok {
10984		return fmt.Errorf("unexpected JSON type %v", value)
10985	}
10986
10987	var sv *types.AwsCloudTrailTrailDetails
10988	if *v == nil {
10989		sv = &types.AwsCloudTrailTrailDetails{}
10990	} else {
10991		sv = *v
10992	}
10993
10994	for key, value := range shape {
10995		switch key {
10996		case "CloudWatchLogsLogGroupArn":
10997			if value != nil {
10998				jtv, ok := value.(string)
10999				if !ok {
11000					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11001				}
11002				sv.CloudWatchLogsLogGroupArn = ptr.String(jtv)
11003			}
11004
11005		case "CloudWatchLogsRoleArn":
11006			if value != nil {
11007				jtv, ok := value.(string)
11008				if !ok {
11009					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11010				}
11011				sv.CloudWatchLogsRoleArn = ptr.String(jtv)
11012			}
11013
11014		case "HasCustomEventSelectors":
11015			if value != nil {
11016				jtv, ok := value.(bool)
11017				if !ok {
11018					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11019				}
11020				sv.HasCustomEventSelectors = jtv
11021			}
11022
11023		case "HomeRegion":
11024			if value != nil {
11025				jtv, ok := value.(string)
11026				if !ok {
11027					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11028				}
11029				sv.HomeRegion = ptr.String(jtv)
11030			}
11031
11032		case "IncludeGlobalServiceEvents":
11033			if value != nil {
11034				jtv, ok := value.(bool)
11035				if !ok {
11036					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11037				}
11038				sv.IncludeGlobalServiceEvents = jtv
11039			}
11040
11041		case "IsMultiRegionTrail":
11042			if value != nil {
11043				jtv, ok := value.(bool)
11044				if !ok {
11045					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11046				}
11047				sv.IsMultiRegionTrail = jtv
11048			}
11049
11050		case "IsOrganizationTrail":
11051			if value != nil {
11052				jtv, ok := value.(bool)
11053				if !ok {
11054					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11055				}
11056				sv.IsOrganizationTrail = jtv
11057			}
11058
11059		case "KmsKeyId":
11060			if value != nil {
11061				jtv, ok := value.(string)
11062				if !ok {
11063					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11064				}
11065				sv.KmsKeyId = ptr.String(jtv)
11066			}
11067
11068		case "LogFileValidationEnabled":
11069			if value != nil {
11070				jtv, ok := value.(bool)
11071				if !ok {
11072					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11073				}
11074				sv.LogFileValidationEnabled = jtv
11075			}
11076
11077		case "Name":
11078			if value != nil {
11079				jtv, ok := value.(string)
11080				if !ok {
11081					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11082				}
11083				sv.Name = ptr.String(jtv)
11084			}
11085
11086		case "S3BucketName":
11087			if value != nil {
11088				jtv, ok := value.(string)
11089				if !ok {
11090					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11091				}
11092				sv.S3BucketName = ptr.String(jtv)
11093			}
11094
11095		case "S3KeyPrefix":
11096			if value != nil {
11097				jtv, ok := value.(string)
11098				if !ok {
11099					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11100				}
11101				sv.S3KeyPrefix = ptr.String(jtv)
11102			}
11103
11104		case "SnsTopicArn":
11105			if value != nil {
11106				jtv, ok := value.(string)
11107				if !ok {
11108					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11109				}
11110				sv.SnsTopicArn = ptr.String(jtv)
11111			}
11112
11113		case "SnsTopicName":
11114			if value != nil {
11115				jtv, ok := value.(string)
11116				if !ok {
11117					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11118				}
11119				sv.SnsTopicName = ptr.String(jtv)
11120			}
11121
11122		case "TrailArn":
11123			if value != nil {
11124				jtv, ok := value.(string)
11125				if !ok {
11126					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11127				}
11128				sv.TrailArn = ptr.String(jtv)
11129			}
11130
11131		default:
11132			_, _ = key, value
11133
11134		}
11135	}
11136	*v = sv
11137	return nil
11138}
11139
11140func awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(v **types.AwsCodeBuildProjectDetails, value interface{}) error {
11141	if v == nil {
11142		return fmt.Errorf("unexpected nil of type %T", v)
11143	}
11144	if value == nil {
11145		return nil
11146	}
11147
11148	shape, ok := value.(map[string]interface{})
11149	if !ok {
11150		return fmt.Errorf("unexpected JSON type %v", value)
11151	}
11152
11153	var sv *types.AwsCodeBuildProjectDetails
11154	if *v == nil {
11155		sv = &types.AwsCodeBuildProjectDetails{}
11156	} else {
11157		sv = *v
11158	}
11159
11160	for key, value := range shape {
11161		switch key {
11162		case "EncryptionKey":
11163			if value != nil {
11164				jtv, ok := value.(string)
11165				if !ok {
11166					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11167				}
11168				sv.EncryptionKey = ptr.String(jtv)
11169			}
11170
11171		case "Environment":
11172			if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(&sv.Environment, value); err != nil {
11173				return err
11174			}
11175
11176		case "Name":
11177			if value != nil {
11178				jtv, ok := value.(string)
11179				if !ok {
11180					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11181				}
11182				sv.Name = ptr.String(jtv)
11183			}
11184
11185		case "ServiceRole":
11186			if value != nil {
11187				jtv, ok := value.(string)
11188				if !ok {
11189					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11190				}
11191				sv.ServiceRole = ptr.String(jtv)
11192			}
11193
11194		case "Source":
11195			if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(&sv.Source, value); err != nil {
11196				return err
11197			}
11198
11199		case "VpcConfig":
11200			if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(&sv.VpcConfig, value); err != nil {
11201				return err
11202			}
11203
11204		default:
11205			_, _ = key, value
11206
11207		}
11208	}
11209	*v = sv
11210	return nil
11211}
11212
11213func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironment(v **types.AwsCodeBuildProjectEnvironment, value interface{}) error {
11214	if v == nil {
11215		return fmt.Errorf("unexpected nil of type %T", v)
11216	}
11217	if value == nil {
11218		return nil
11219	}
11220
11221	shape, ok := value.(map[string]interface{})
11222	if !ok {
11223		return fmt.Errorf("unexpected JSON type %v", value)
11224	}
11225
11226	var sv *types.AwsCodeBuildProjectEnvironment
11227	if *v == nil {
11228		sv = &types.AwsCodeBuildProjectEnvironment{}
11229	} else {
11230		sv = *v
11231	}
11232
11233	for key, value := range shape {
11234		switch key {
11235		case "Certificate":
11236			if value != nil {
11237				jtv, ok := value.(string)
11238				if !ok {
11239					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11240				}
11241				sv.Certificate = ptr.String(jtv)
11242			}
11243
11244		case "ImagePullCredentialsType":
11245			if value != nil {
11246				jtv, ok := value.(string)
11247				if !ok {
11248					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11249				}
11250				sv.ImagePullCredentialsType = ptr.String(jtv)
11251			}
11252
11253		case "RegistryCredential":
11254			if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(&sv.RegistryCredential, value); err != nil {
11255				return err
11256			}
11257
11258		case "Type":
11259			if value != nil {
11260				jtv, ok := value.(string)
11261				if !ok {
11262					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11263				}
11264				sv.Type = ptr.String(jtv)
11265			}
11266
11267		default:
11268			_, _ = key, value
11269
11270		}
11271	}
11272	*v = sv
11273	return nil
11274}
11275
11276func awsRestjson1_deserializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v **types.AwsCodeBuildProjectEnvironmentRegistryCredential, value interface{}) error {
11277	if v == nil {
11278		return fmt.Errorf("unexpected nil of type %T", v)
11279	}
11280	if value == nil {
11281		return nil
11282	}
11283
11284	shape, ok := value.(map[string]interface{})
11285	if !ok {
11286		return fmt.Errorf("unexpected JSON type %v", value)
11287	}
11288
11289	var sv *types.AwsCodeBuildProjectEnvironmentRegistryCredential
11290	if *v == nil {
11291		sv = &types.AwsCodeBuildProjectEnvironmentRegistryCredential{}
11292	} else {
11293		sv = *v
11294	}
11295
11296	for key, value := range shape {
11297		switch key {
11298		case "Credential":
11299			if value != nil {
11300				jtv, ok := value.(string)
11301				if !ok {
11302					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11303				}
11304				sv.Credential = ptr.String(jtv)
11305			}
11306
11307		case "CredentialProvider":
11308			if value != nil {
11309				jtv, ok := value.(string)
11310				if !ok {
11311					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11312				}
11313				sv.CredentialProvider = ptr.String(jtv)
11314			}
11315
11316		default:
11317			_, _ = key, value
11318
11319		}
11320	}
11321	*v = sv
11322	return nil
11323}
11324
11325func awsRestjson1_deserializeDocumentAwsCodeBuildProjectSource(v **types.AwsCodeBuildProjectSource, value interface{}) error {
11326	if v == nil {
11327		return fmt.Errorf("unexpected nil of type %T", v)
11328	}
11329	if value == nil {
11330		return nil
11331	}
11332
11333	shape, ok := value.(map[string]interface{})
11334	if !ok {
11335		return fmt.Errorf("unexpected JSON type %v", value)
11336	}
11337
11338	var sv *types.AwsCodeBuildProjectSource
11339	if *v == nil {
11340		sv = &types.AwsCodeBuildProjectSource{}
11341	} else {
11342		sv = *v
11343	}
11344
11345	for key, value := range shape {
11346		switch key {
11347		case "GitCloneDepth":
11348			if value != nil {
11349				jtv, ok := value.(json.Number)
11350				if !ok {
11351					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
11352				}
11353				i64, err := jtv.Int64()
11354				if err != nil {
11355					return err
11356				}
11357				sv.GitCloneDepth = int32(i64)
11358			}
11359
11360		case "InsecureSsl":
11361			if value != nil {
11362				jtv, ok := value.(bool)
11363				if !ok {
11364					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11365				}
11366				sv.InsecureSsl = jtv
11367			}
11368
11369		case "Location":
11370			if value != nil {
11371				jtv, ok := value.(string)
11372				if !ok {
11373					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11374				}
11375				sv.Location = ptr.String(jtv)
11376			}
11377
11378		case "Type":
11379			if value != nil {
11380				jtv, ok := value.(string)
11381				if !ok {
11382					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11383				}
11384				sv.Type = ptr.String(jtv)
11385			}
11386
11387		default:
11388			_, _ = key, value
11389
11390		}
11391	}
11392	*v = sv
11393	return nil
11394}
11395
11396func awsRestjson1_deserializeDocumentAwsCodeBuildProjectVpcConfig(v **types.AwsCodeBuildProjectVpcConfig, value interface{}) error {
11397	if v == nil {
11398		return fmt.Errorf("unexpected nil of type %T", v)
11399	}
11400	if value == nil {
11401		return nil
11402	}
11403
11404	shape, ok := value.(map[string]interface{})
11405	if !ok {
11406		return fmt.Errorf("unexpected JSON type %v", value)
11407	}
11408
11409	var sv *types.AwsCodeBuildProjectVpcConfig
11410	if *v == nil {
11411		sv = &types.AwsCodeBuildProjectVpcConfig{}
11412	} else {
11413		sv = *v
11414	}
11415
11416	for key, value := range shape {
11417		switch key {
11418		case "SecurityGroupIds":
11419			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil {
11420				return err
11421			}
11422
11423		case "Subnets":
11424			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil {
11425				return err
11426			}
11427
11428		case "VpcId":
11429			if value != nil {
11430				jtv, ok := value.(string)
11431				if !ok {
11432					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11433				}
11434				sv.VpcId = ptr.String(jtv)
11435			}
11436
11437		default:
11438			_, _ = key, value
11439
11440		}
11441	}
11442	*v = sv
11443	return nil
11444}
11445
11446func awsRestjson1_deserializeDocumentAwsCorsConfiguration(v **types.AwsCorsConfiguration, value interface{}) error {
11447	if v == nil {
11448		return fmt.Errorf("unexpected nil of type %T", v)
11449	}
11450	if value == nil {
11451		return nil
11452	}
11453
11454	shape, ok := value.(map[string]interface{})
11455	if !ok {
11456		return fmt.Errorf("unexpected JSON type %v", value)
11457	}
11458
11459	var sv *types.AwsCorsConfiguration
11460	if *v == nil {
11461		sv = &types.AwsCorsConfiguration{}
11462	} else {
11463		sv = *v
11464	}
11465
11466	for key, value := range shape {
11467		switch key {
11468		case "AllowCredentials":
11469			if value != nil {
11470				jtv, ok := value.(bool)
11471				if !ok {
11472					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11473				}
11474				sv.AllowCredentials = jtv
11475			}
11476
11477		case "AllowHeaders":
11478			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowHeaders, value); err != nil {
11479				return err
11480			}
11481
11482		case "AllowMethods":
11483			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowMethods, value); err != nil {
11484				return err
11485			}
11486
11487		case "AllowOrigins":
11488			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AllowOrigins, value); err != nil {
11489				return err
11490			}
11491
11492		case "ExposeHeaders":
11493			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ExposeHeaders, value); err != nil {
11494				return err
11495			}
11496
11497		case "MaxAge":
11498			if value != nil {
11499				jtv, ok := value.(json.Number)
11500				if !ok {
11501					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
11502				}
11503				i64, err := jtv.Int64()
11504				if err != nil {
11505					return err
11506				}
11507				sv.MaxAge = int32(i64)
11508			}
11509
11510		default:
11511			_, _ = key, value
11512
11513		}
11514	}
11515	*v = sv
11516	return nil
11517}
11518
11519func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(v **types.AwsDynamoDbTableAttributeDefinition, value interface{}) error {
11520	if v == nil {
11521		return fmt.Errorf("unexpected nil of type %T", v)
11522	}
11523	if value == nil {
11524		return nil
11525	}
11526
11527	shape, ok := value.(map[string]interface{})
11528	if !ok {
11529		return fmt.Errorf("unexpected JSON type %v", value)
11530	}
11531
11532	var sv *types.AwsDynamoDbTableAttributeDefinition
11533	if *v == nil {
11534		sv = &types.AwsDynamoDbTableAttributeDefinition{}
11535	} else {
11536		sv = *v
11537	}
11538
11539	for key, value := range shape {
11540		switch key {
11541		case "AttributeName":
11542			if value != nil {
11543				jtv, ok := value.(string)
11544				if !ok {
11545					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11546				}
11547				sv.AttributeName = ptr.String(jtv)
11548			}
11549
11550		case "AttributeType":
11551			if value != nil {
11552				jtv, ok := value.(string)
11553				if !ok {
11554					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11555				}
11556				sv.AttributeType = ptr.String(jtv)
11557			}
11558
11559		default:
11560			_, _ = key, value
11561
11562		}
11563	}
11564	*v = sv
11565	return nil
11566}
11567
11568func awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(v *[]types.AwsDynamoDbTableAttributeDefinition, value interface{}) error {
11569	if v == nil {
11570		return fmt.Errorf("unexpected nil of type %T", v)
11571	}
11572	if value == nil {
11573		return nil
11574	}
11575
11576	shape, ok := value.([]interface{})
11577	if !ok {
11578		return fmt.Errorf("unexpected JSON type %v", value)
11579	}
11580
11581	var cv []types.AwsDynamoDbTableAttributeDefinition
11582	if *v == nil {
11583		cv = []types.AwsDynamoDbTableAttributeDefinition{}
11584	} else {
11585		cv = *v
11586	}
11587
11588	for _, value := range shape {
11589		var col types.AwsDynamoDbTableAttributeDefinition
11590		destAddr := &col
11591		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinition(&destAddr, value); err != nil {
11592			return err
11593		}
11594		col = *destAddr
11595		cv = append(cv, col)
11596
11597	}
11598	*v = cv
11599	return nil
11600}
11601
11602func awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(v **types.AwsDynamoDbTableBillingModeSummary, value interface{}) error {
11603	if v == nil {
11604		return fmt.Errorf("unexpected nil of type %T", v)
11605	}
11606	if value == nil {
11607		return nil
11608	}
11609
11610	shape, ok := value.(map[string]interface{})
11611	if !ok {
11612		return fmt.Errorf("unexpected JSON type %v", value)
11613	}
11614
11615	var sv *types.AwsDynamoDbTableBillingModeSummary
11616	if *v == nil {
11617		sv = &types.AwsDynamoDbTableBillingModeSummary{}
11618	} else {
11619		sv = *v
11620	}
11621
11622	for key, value := range shape {
11623		switch key {
11624		case "BillingMode":
11625			if value != nil {
11626				jtv, ok := value.(string)
11627				if !ok {
11628					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11629				}
11630				sv.BillingMode = ptr.String(jtv)
11631			}
11632
11633		case "LastUpdateToPayPerRequestDateTime":
11634			if value != nil {
11635				jtv, ok := value.(string)
11636				if !ok {
11637					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11638				}
11639				sv.LastUpdateToPayPerRequestDateTime = ptr.String(jtv)
11640			}
11641
11642		default:
11643			_, _ = key, value
11644
11645		}
11646	}
11647	*v = sv
11648	return nil
11649}
11650
11651func awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(v **types.AwsDynamoDbTableDetails, value interface{}) error {
11652	if v == nil {
11653		return fmt.Errorf("unexpected nil of type %T", v)
11654	}
11655	if value == nil {
11656		return nil
11657	}
11658
11659	shape, ok := value.(map[string]interface{})
11660	if !ok {
11661		return fmt.Errorf("unexpected JSON type %v", value)
11662	}
11663
11664	var sv *types.AwsDynamoDbTableDetails
11665	if *v == nil {
11666		sv = &types.AwsDynamoDbTableDetails{}
11667	} else {
11668		sv = *v
11669	}
11670
11671	for key, value := range shape {
11672		switch key {
11673		case "AttributeDefinitions":
11674			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableAttributeDefinitionList(&sv.AttributeDefinitions, value); err != nil {
11675				return err
11676			}
11677
11678		case "BillingModeSummary":
11679			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableBillingModeSummary(&sv.BillingModeSummary, value); err != nil {
11680				return err
11681			}
11682
11683		case "CreationDateTime":
11684			if value != nil {
11685				jtv, ok := value.(string)
11686				if !ok {
11687					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11688				}
11689				sv.CreationDateTime = ptr.String(jtv)
11690			}
11691
11692		case "GlobalSecondaryIndexes":
11693			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil {
11694				return err
11695			}
11696
11697		case "GlobalTableVersion":
11698			if value != nil {
11699				jtv, ok := value.(string)
11700				if !ok {
11701					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11702				}
11703				sv.GlobalTableVersion = ptr.String(jtv)
11704			}
11705
11706		case "ItemCount":
11707			if value != nil {
11708				jtv, ok := value.(json.Number)
11709				if !ok {
11710					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
11711				}
11712				i64, err := jtv.Int64()
11713				if err != nil {
11714					return err
11715				}
11716				sv.ItemCount = int32(i64)
11717			}
11718
11719		case "KeySchema":
11720			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil {
11721				return err
11722			}
11723
11724		case "LatestStreamArn":
11725			if value != nil {
11726				jtv, ok := value.(string)
11727				if !ok {
11728					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11729				}
11730				sv.LatestStreamArn = ptr.String(jtv)
11731			}
11732
11733		case "LatestStreamLabel":
11734			if value != nil {
11735				jtv, ok := value.(string)
11736				if !ok {
11737					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11738				}
11739				sv.LatestStreamLabel = ptr.String(jtv)
11740			}
11741
11742		case "LocalSecondaryIndexes":
11743			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(&sv.LocalSecondaryIndexes, value); err != nil {
11744				return err
11745			}
11746
11747		case "ProvisionedThroughput":
11748			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil {
11749				return err
11750			}
11751
11752		case "Replicas":
11753			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(&sv.Replicas, value); err != nil {
11754				return err
11755			}
11756
11757		case "RestoreSummary":
11758			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(&sv.RestoreSummary, value); err != nil {
11759				return err
11760			}
11761
11762		case "SseDescription":
11763			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(&sv.SseDescription, value); err != nil {
11764				return err
11765			}
11766
11767		case "StreamSpecification":
11768			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(&sv.StreamSpecification, value); err != nil {
11769				return err
11770			}
11771
11772		case "TableId":
11773			if value != nil {
11774				jtv, ok := value.(string)
11775				if !ok {
11776					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11777				}
11778				sv.TableId = ptr.String(jtv)
11779			}
11780
11781		case "TableName":
11782			if value != nil {
11783				jtv, ok := value.(string)
11784				if !ok {
11785					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11786				}
11787				sv.TableName = ptr.String(jtv)
11788			}
11789
11790		case "TableSizeBytes":
11791			if value != nil {
11792				jtv, ok := value.(json.Number)
11793				if !ok {
11794					return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value)
11795				}
11796				i64, err := jtv.Int64()
11797				if err != nil {
11798					return err
11799				}
11800				sv.TableSizeBytes = i64
11801			}
11802
11803		case "TableStatus":
11804			if value != nil {
11805				jtv, ok := value.(string)
11806				if !ok {
11807					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11808				}
11809				sv.TableStatus = ptr.String(jtv)
11810			}
11811
11812		default:
11813			_, _ = key, value
11814
11815		}
11816	}
11817	*v = sv
11818	return nil
11819}
11820
11821func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v **types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error {
11822	if v == nil {
11823		return fmt.Errorf("unexpected nil of type %T", v)
11824	}
11825	if value == nil {
11826		return nil
11827	}
11828
11829	shape, ok := value.(map[string]interface{})
11830	if !ok {
11831		return fmt.Errorf("unexpected JSON type %v", value)
11832	}
11833
11834	var sv *types.AwsDynamoDbTableGlobalSecondaryIndex
11835	if *v == nil {
11836		sv = &types.AwsDynamoDbTableGlobalSecondaryIndex{}
11837	} else {
11838		sv = *v
11839	}
11840
11841	for key, value := range shape {
11842		switch key {
11843		case "Backfilling":
11844			if value != nil {
11845				jtv, ok := value.(bool)
11846				if !ok {
11847					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
11848				}
11849				sv.Backfilling = jtv
11850			}
11851
11852		case "IndexArn":
11853			if value != nil {
11854				jtv, ok := value.(string)
11855				if !ok {
11856					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11857				}
11858				sv.IndexArn = ptr.String(jtv)
11859			}
11860
11861		case "IndexName":
11862			if value != nil {
11863				jtv, ok := value.(string)
11864				if !ok {
11865					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11866				}
11867				sv.IndexName = ptr.String(jtv)
11868			}
11869
11870		case "IndexSizeBytes":
11871			if value != nil {
11872				jtv, ok := value.(json.Number)
11873				if !ok {
11874					return fmt.Errorf("expected SizeBytes to be json.Number, got %T instead", value)
11875				}
11876				i64, err := jtv.Int64()
11877				if err != nil {
11878					return err
11879				}
11880				sv.IndexSizeBytes = i64
11881			}
11882
11883		case "IndexStatus":
11884			if value != nil {
11885				jtv, ok := value.(string)
11886				if !ok {
11887					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11888				}
11889				sv.IndexStatus = ptr.String(jtv)
11890			}
11891
11892		case "ItemCount":
11893			if value != nil {
11894				jtv, ok := value.(json.Number)
11895				if !ok {
11896					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
11897				}
11898				i64, err := jtv.Int64()
11899				if err != nil {
11900					return err
11901				}
11902				sv.ItemCount = int32(i64)
11903			}
11904
11905		case "KeySchema":
11906			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil {
11907				return err
11908			}
11909
11910		case "Projection":
11911			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil {
11912				return err
11913			}
11914
11915		case "ProvisionedThroughput":
11916			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(&sv.ProvisionedThroughput, value); err != nil {
11917				return err
11918			}
11919
11920		default:
11921			_, _ = key, value
11922
11923		}
11924	}
11925	*v = sv
11926	return nil
11927}
11928
11929func awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableGlobalSecondaryIndex, value interface{}) error {
11930	if v == nil {
11931		return fmt.Errorf("unexpected nil of type %T", v)
11932	}
11933	if value == nil {
11934		return nil
11935	}
11936
11937	shape, ok := value.([]interface{})
11938	if !ok {
11939		return fmt.Errorf("unexpected JSON type %v", value)
11940	}
11941
11942	var cv []types.AwsDynamoDbTableGlobalSecondaryIndex
11943	if *v == nil {
11944		cv = []types.AwsDynamoDbTableGlobalSecondaryIndex{}
11945	} else {
11946		cv = *v
11947	}
11948
11949	for _, value := range shape {
11950		var col types.AwsDynamoDbTableGlobalSecondaryIndex
11951		destAddr := &col
11952		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(&destAddr, value); err != nil {
11953			return err
11954		}
11955		col = *destAddr
11956		cv = append(cv, col)
11957
11958	}
11959	*v = cv
11960	return nil
11961}
11962
11963func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(v **types.AwsDynamoDbTableKeySchema, value interface{}) error {
11964	if v == nil {
11965		return fmt.Errorf("unexpected nil of type %T", v)
11966	}
11967	if value == nil {
11968		return nil
11969	}
11970
11971	shape, ok := value.(map[string]interface{})
11972	if !ok {
11973		return fmt.Errorf("unexpected JSON type %v", value)
11974	}
11975
11976	var sv *types.AwsDynamoDbTableKeySchema
11977	if *v == nil {
11978		sv = &types.AwsDynamoDbTableKeySchema{}
11979	} else {
11980		sv = *v
11981	}
11982
11983	for key, value := range shape {
11984		switch key {
11985		case "AttributeName":
11986			if value != nil {
11987				jtv, ok := value.(string)
11988				if !ok {
11989					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11990				}
11991				sv.AttributeName = ptr.String(jtv)
11992			}
11993
11994		case "KeyType":
11995			if value != nil {
11996				jtv, ok := value.(string)
11997				if !ok {
11998					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
11999				}
12000				sv.KeyType = ptr.String(jtv)
12001			}
12002
12003		default:
12004			_, _ = key, value
12005
12006		}
12007	}
12008	*v = sv
12009	return nil
12010}
12011
12012func awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(v *[]types.AwsDynamoDbTableKeySchema, value interface{}) error {
12013	if v == nil {
12014		return fmt.Errorf("unexpected nil of type %T", v)
12015	}
12016	if value == nil {
12017		return nil
12018	}
12019
12020	shape, ok := value.([]interface{})
12021	if !ok {
12022		return fmt.Errorf("unexpected JSON type %v", value)
12023	}
12024
12025	var cv []types.AwsDynamoDbTableKeySchema
12026	if *v == nil {
12027		cv = []types.AwsDynamoDbTableKeySchema{}
12028	} else {
12029		cv = *v
12030	}
12031
12032	for _, value := range shape {
12033		var col types.AwsDynamoDbTableKeySchema
12034		destAddr := &col
12035		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchema(&destAddr, value); err != nil {
12036			return err
12037		}
12038		col = *destAddr
12039		cv = append(cv, col)
12040
12041	}
12042	*v = cv
12043	return nil
12044}
12045
12046func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v **types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error {
12047	if v == nil {
12048		return fmt.Errorf("unexpected nil of type %T", v)
12049	}
12050	if value == nil {
12051		return nil
12052	}
12053
12054	shape, ok := value.(map[string]interface{})
12055	if !ok {
12056		return fmt.Errorf("unexpected JSON type %v", value)
12057	}
12058
12059	var sv *types.AwsDynamoDbTableLocalSecondaryIndex
12060	if *v == nil {
12061		sv = &types.AwsDynamoDbTableLocalSecondaryIndex{}
12062	} else {
12063		sv = *v
12064	}
12065
12066	for key, value := range shape {
12067		switch key {
12068		case "IndexArn":
12069			if value != nil {
12070				jtv, ok := value.(string)
12071				if !ok {
12072					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12073				}
12074				sv.IndexArn = ptr.String(jtv)
12075			}
12076
12077		case "IndexName":
12078			if value != nil {
12079				jtv, ok := value.(string)
12080				if !ok {
12081					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12082				}
12083				sv.IndexName = ptr.String(jtv)
12084			}
12085
12086		case "KeySchema":
12087			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableKeySchemaList(&sv.KeySchema, value); err != nil {
12088				return err
12089			}
12090
12091		case "Projection":
12092			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(&sv.Projection, value); err != nil {
12093				return err
12094			}
12095
12096		default:
12097			_, _ = key, value
12098
12099		}
12100	}
12101	*v = sv
12102	return nil
12103}
12104
12105func awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v *[]types.AwsDynamoDbTableLocalSecondaryIndex, value interface{}) error {
12106	if v == nil {
12107		return fmt.Errorf("unexpected nil of type %T", v)
12108	}
12109	if value == nil {
12110		return nil
12111	}
12112
12113	shape, ok := value.([]interface{})
12114	if !ok {
12115		return fmt.Errorf("unexpected JSON type %v", value)
12116	}
12117
12118	var cv []types.AwsDynamoDbTableLocalSecondaryIndex
12119	if *v == nil {
12120		cv = []types.AwsDynamoDbTableLocalSecondaryIndex{}
12121	} else {
12122		cv = *v
12123	}
12124
12125	for _, value := range shape {
12126		var col types.AwsDynamoDbTableLocalSecondaryIndex
12127		destAddr := &col
12128		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableLocalSecondaryIndex(&destAddr, value); err != nil {
12129			return err
12130		}
12131		col = *destAddr
12132		cv = append(cv, col)
12133
12134	}
12135	*v = cv
12136	return nil
12137}
12138
12139func awsRestjson1_deserializeDocumentAwsDynamoDbTableProjection(v **types.AwsDynamoDbTableProjection, value interface{}) error {
12140	if v == nil {
12141		return fmt.Errorf("unexpected nil of type %T", v)
12142	}
12143	if value == nil {
12144		return nil
12145	}
12146
12147	shape, ok := value.(map[string]interface{})
12148	if !ok {
12149		return fmt.Errorf("unexpected JSON type %v", value)
12150	}
12151
12152	var sv *types.AwsDynamoDbTableProjection
12153	if *v == nil {
12154		sv = &types.AwsDynamoDbTableProjection{}
12155	} else {
12156		sv = *v
12157	}
12158
12159	for key, value := range shape {
12160		switch key {
12161		case "NonKeyAttributes":
12162			if err := awsRestjson1_deserializeDocumentStringList(&sv.NonKeyAttributes, value); err != nil {
12163				return err
12164			}
12165
12166		case "ProjectionType":
12167			if value != nil {
12168				jtv, ok := value.(string)
12169				if !ok {
12170					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12171				}
12172				sv.ProjectionType = ptr.String(jtv)
12173			}
12174
12175		default:
12176			_, _ = key, value
12177
12178		}
12179	}
12180	*v = sv
12181	return nil
12182}
12183
12184func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughput(v **types.AwsDynamoDbTableProvisionedThroughput, value interface{}) error {
12185	if v == nil {
12186		return fmt.Errorf("unexpected nil of type %T", v)
12187	}
12188	if value == nil {
12189		return nil
12190	}
12191
12192	shape, ok := value.(map[string]interface{})
12193	if !ok {
12194		return fmt.Errorf("unexpected JSON type %v", value)
12195	}
12196
12197	var sv *types.AwsDynamoDbTableProvisionedThroughput
12198	if *v == nil {
12199		sv = &types.AwsDynamoDbTableProvisionedThroughput{}
12200	} else {
12201		sv = *v
12202	}
12203
12204	for key, value := range shape {
12205		switch key {
12206		case "LastDecreaseDateTime":
12207			if value != nil {
12208				jtv, ok := value.(string)
12209				if !ok {
12210					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12211				}
12212				sv.LastDecreaseDateTime = ptr.String(jtv)
12213			}
12214
12215		case "LastIncreaseDateTime":
12216			if value != nil {
12217				jtv, ok := value.(string)
12218				if !ok {
12219					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12220				}
12221				sv.LastIncreaseDateTime = ptr.String(jtv)
12222			}
12223
12224		case "NumberOfDecreasesToday":
12225			if value != nil {
12226				jtv, ok := value.(json.Number)
12227				if !ok {
12228					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
12229				}
12230				i64, err := jtv.Int64()
12231				if err != nil {
12232					return err
12233				}
12234				sv.NumberOfDecreasesToday = int32(i64)
12235			}
12236
12237		case "ReadCapacityUnits":
12238			if value != nil {
12239				jtv, ok := value.(json.Number)
12240				if !ok {
12241					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
12242				}
12243				i64, err := jtv.Int64()
12244				if err != nil {
12245					return err
12246				}
12247				sv.ReadCapacityUnits = int32(i64)
12248			}
12249
12250		case "WriteCapacityUnits":
12251			if value != nil {
12252				jtv, ok := value.(json.Number)
12253				if !ok {
12254					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
12255				}
12256				i64, err := jtv.Int64()
12257				if err != nil {
12258					return err
12259				}
12260				sv.WriteCapacityUnits = int32(i64)
12261			}
12262
12263		default:
12264			_, _ = key, value
12265
12266		}
12267	}
12268	*v = sv
12269	return nil
12270}
12271
12272func awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v **types.AwsDynamoDbTableProvisionedThroughputOverride, value interface{}) error {
12273	if v == nil {
12274		return fmt.Errorf("unexpected nil of type %T", v)
12275	}
12276	if value == nil {
12277		return nil
12278	}
12279
12280	shape, ok := value.(map[string]interface{})
12281	if !ok {
12282		return fmt.Errorf("unexpected JSON type %v", value)
12283	}
12284
12285	var sv *types.AwsDynamoDbTableProvisionedThroughputOverride
12286	if *v == nil {
12287		sv = &types.AwsDynamoDbTableProvisionedThroughputOverride{}
12288	} else {
12289		sv = *v
12290	}
12291
12292	for key, value := range shape {
12293		switch key {
12294		case "ReadCapacityUnits":
12295			if value != nil {
12296				jtv, ok := value.(json.Number)
12297				if !ok {
12298					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
12299				}
12300				i64, err := jtv.Int64()
12301				if err != nil {
12302					return err
12303				}
12304				sv.ReadCapacityUnits = int32(i64)
12305			}
12306
12307		default:
12308			_, _ = key, value
12309
12310		}
12311	}
12312	*v = sv
12313	return nil
12314}
12315
12316func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(v **types.AwsDynamoDbTableReplica, value interface{}) error {
12317	if v == nil {
12318		return fmt.Errorf("unexpected nil of type %T", v)
12319	}
12320	if value == nil {
12321		return nil
12322	}
12323
12324	shape, ok := value.(map[string]interface{})
12325	if !ok {
12326		return fmt.Errorf("unexpected JSON type %v", value)
12327	}
12328
12329	var sv *types.AwsDynamoDbTableReplica
12330	if *v == nil {
12331		sv = &types.AwsDynamoDbTableReplica{}
12332	} else {
12333		sv = *v
12334	}
12335
12336	for key, value := range shape {
12337		switch key {
12338		case "GlobalSecondaryIndexes":
12339			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(&sv.GlobalSecondaryIndexes, value); err != nil {
12340				return err
12341			}
12342
12343		case "KmsMasterKeyId":
12344			if value != nil {
12345				jtv, ok := value.(string)
12346				if !ok {
12347					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12348				}
12349				sv.KmsMasterKeyId = ptr.String(jtv)
12350			}
12351
12352		case "ProvisionedThroughputOverride":
12353			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil {
12354				return err
12355			}
12356
12357		case "RegionName":
12358			if value != nil {
12359				jtv, ok := value.(string)
12360				if !ok {
12361					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12362				}
12363				sv.RegionName = ptr.String(jtv)
12364			}
12365
12366		case "ReplicaStatus":
12367			if value != nil {
12368				jtv, ok := value.(string)
12369				if !ok {
12370					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12371				}
12372				sv.ReplicaStatus = ptr.String(jtv)
12373			}
12374
12375		case "ReplicaStatusDescription":
12376			if value != nil {
12377				jtv, ok := value.(string)
12378				if !ok {
12379					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12380				}
12381				sv.ReplicaStatusDescription = ptr.String(jtv)
12382			}
12383
12384		default:
12385			_, _ = key, value
12386
12387		}
12388	}
12389	*v = sv
12390	return nil
12391}
12392
12393func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(v **types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error {
12394	if v == nil {
12395		return fmt.Errorf("unexpected nil of type %T", v)
12396	}
12397	if value == nil {
12398		return nil
12399	}
12400
12401	shape, ok := value.(map[string]interface{})
12402	if !ok {
12403		return fmt.Errorf("unexpected JSON type %v", value)
12404	}
12405
12406	var sv *types.AwsDynamoDbTableReplicaGlobalSecondaryIndex
12407	if *v == nil {
12408		sv = &types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{}
12409	} else {
12410		sv = *v
12411	}
12412
12413	for key, value := range shape {
12414		switch key {
12415		case "IndexName":
12416			if value != nil {
12417				jtv, ok := value.(string)
12418				if !ok {
12419					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12420				}
12421				sv.IndexName = ptr.String(jtv)
12422			}
12423
12424		case "ProvisionedThroughputOverride":
12425			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(&sv.ProvisionedThroughputOverride, value); err != nil {
12426				return err
12427			}
12428
12429		default:
12430			_, _ = key, value
12431
12432		}
12433	}
12434	*v = sv
12435	return nil
12436}
12437
12438func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v *[]types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value interface{}) error {
12439	if v == nil {
12440		return fmt.Errorf("unexpected nil of type %T", v)
12441	}
12442	if value == nil {
12443		return nil
12444	}
12445
12446	shape, ok := value.([]interface{})
12447	if !ok {
12448		return fmt.Errorf("unexpected JSON type %v", value)
12449	}
12450
12451	var cv []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex
12452	if *v == nil {
12453		cv = []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex{}
12454	} else {
12455		cv = *v
12456	}
12457
12458	for _, value := range shape {
12459		var col types.AwsDynamoDbTableReplicaGlobalSecondaryIndex
12460		destAddr := &col
12461		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(&destAddr, value); err != nil {
12462			return err
12463		}
12464		col = *destAddr
12465		cv = append(cv, col)
12466
12467	}
12468	*v = cv
12469	return nil
12470}
12471
12472func awsRestjson1_deserializeDocumentAwsDynamoDbTableReplicaList(v *[]types.AwsDynamoDbTableReplica, value interface{}) error {
12473	if v == nil {
12474		return fmt.Errorf("unexpected nil of type %T", v)
12475	}
12476	if value == nil {
12477		return nil
12478	}
12479
12480	shape, ok := value.([]interface{})
12481	if !ok {
12482		return fmt.Errorf("unexpected JSON type %v", value)
12483	}
12484
12485	var cv []types.AwsDynamoDbTableReplica
12486	if *v == nil {
12487		cv = []types.AwsDynamoDbTableReplica{}
12488	} else {
12489		cv = *v
12490	}
12491
12492	for _, value := range shape {
12493		var col types.AwsDynamoDbTableReplica
12494		destAddr := &col
12495		if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableReplica(&destAddr, value); err != nil {
12496			return err
12497		}
12498		col = *destAddr
12499		cv = append(cv, col)
12500
12501	}
12502	*v = cv
12503	return nil
12504}
12505
12506func awsRestjson1_deserializeDocumentAwsDynamoDbTableRestoreSummary(v **types.AwsDynamoDbTableRestoreSummary, value interface{}) error {
12507	if v == nil {
12508		return fmt.Errorf("unexpected nil of type %T", v)
12509	}
12510	if value == nil {
12511		return nil
12512	}
12513
12514	shape, ok := value.(map[string]interface{})
12515	if !ok {
12516		return fmt.Errorf("unexpected JSON type %v", value)
12517	}
12518
12519	var sv *types.AwsDynamoDbTableRestoreSummary
12520	if *v == nil {
12521		sv = &types.AwsDynamoDbTableRestoreSummary{}
12522	} else {
12523		sv = *v
12524	}
12525
12526	for key, value := range shape {
12527		switch key {
12528		case "RestoreDateTime":
12529			if value != nil {
12530				jtv, ok := value.(string)
12531				if !ok {
12532					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12533				}
12534				sv.RestoreDateTime = ptr.String(jtv)
12535			}
12536
12537		case "RestoreInProgress":
12538			if value != nil {
12539				jtv, ok := value.(bool)
12540				if !ok {
12541					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
12542				}
12543				sv.RestoreInProgress = jtv
12544			}
12545
12546		case "SourceBackupArn":
12547			if value != nil {
12548				jtv, ok := value.(string)
12549				if !ok {
12550					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12551				}
12552				sv.SourceBackupArn = ptr.String(jtv)
12553			}
12554
12555		case "SourceTableArn":
12556			if value != nil {
12557				jtv, ok := value.(string)
12558				if !ok {
12559					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12560				}
12561				sv.SourceTableArn = ptr.String(jtv)
12562			}
12563
12564		default:
12565			_, _ = key, value
12566
12567		}
12568	}
12569	*v = sv
12570	return nil
12571}
12572
12573func awsRestjson1_deserializeDocumentAwsDynamoDbTableSseDescription(v **types.AwsDynamoDbTableSseDescription, value interface{}) error {
12574	if v == nil {
12575		return fmt.Errorf("unexpected nil of type %T", v)
12576	}
12577	if value == nil {
12578		return nil
12579	}
12580
12581	shape, ok := value.(map[string]interface{})
12582	if !ok {
12583		return fmt.Errorf("unexpected JSON type %v", value)
12584	}
12585
12586	var sv *types.AwsDynamoDbTableSseDescription
12587	if *v == nil {
12588		sv = &types.AwsDynamoDbTableSseDescription{}
12589	} else {
12590		sv = *v
12591	}
12592
12593	for key, value := range shape {
12594		switch key {
12595		case "InaccessibleEncryptionDateTime":
12596			if value != nil {
12597				jtv, ok := value.(string)
12598				if !ok {
12599					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12600				}
12601				sv.InaccessibleEncryptionDateTime = ptr.String(jtv)
12602			}
12603
12604		case "KmsMasterKeyArn":
12605			if value != nil {
12606				jtv, ok := value.(string)
12607				if !ok {
12608					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12609				}
12610				sv.KmsMasterKeyArn = ptr.String(jtv)
12611			}
12612
12613		case "SseType":
12614			if value != nil {
12615				jtv, ok := value.(string)
12616				if !ok {
12617					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12618				}
12619				sv.SseType = ptr.String(jtv)
12620			}
12621
12622		case "Status":
12623			if value != nil {
12624				jtv, ok := value.(string)
12625				if !ok {
12626					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12627				}
12628				sv.Status = ptr.String(jtv)
12629			}
12630
12631		default:
12632			_, _ = key, value
12633
12634		}
12635	}
12636	*v = sv
12637	return nil
12638}
12639
12640func awsRestjson1_deserializeDocumentAwsDynamoDbTableStreamSpecification(v **types.AwsDynamoDbTableStreamSpecification, value interface{}) error {
12641	if v == nil {
12642		return fmt.Errorf("unexpected nil of type %T", v)
12643	}
12644	if value == nil {
12645		return nil
12646	}
12647
12648	shape, ok := value.(map[string]interface{})
12649	if !ok {
12650		return fmt.Errorf("unexpected JSON type %v", value)
12651	}
12652
12653	var sv *types.AwsDynamoDbTableStreamSpecification
12654	if *v == nil {
12655		sv = &types.AwsDynamoDbTableStreamSpecification{}
12656	} else {
12657		sv = *v
12658	}
12659
12660	for key, value := range shape {
12661		switch key {
12662		case "StreamEnabled":
12663			if value != nil {
12664				jtv, ok := value.(bool)
12665				if !ok {
12666					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
12667				}
12668				sv.StreamEnabled = jtv
12669			}
12670
12671		case "StreamViewType":
12672			if value != nil {
12673				jtv, ok := value.(string)
12674				if !ok {
12675					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12676				}
12677				sv.StreamViewType = ptr.String(jtv)
12678			}
12679
12680		default:
12681			_, _ = key, value
12682
12683		}
12684	}
12685	*v = sv
12686	return nil
12687}
12688
12689func awsRestjson1_deserializeDocumentAwsEc2EipDetails(v **types.AwsEc2EipDetails, value interface{}) error {
12690	if v == nil {
12691		return fmt.Errorf("unexpected nil of type %T", v)
12692	}
12693	if value == nil {
12694		return nil
12695	}
12696
12697	shape, ok := value.(map[string]interface{})
12698	if !ok {
12699		return fmt.Errorf("unexpected JSON type %v", value)
12700	}
12701
12702	var sv *types.AwsEc2EipDetails
12703	if *v == nil {
12704		sv = &types.AwsEc2EipDetails{}
12705	} else {
12706		sv = *v
12707	}
12708
12709	for key, value := range shape {
12710		switch key {
12711		case "AllocationId":
12712			if value != nil {
12713				jtv, ok := value.(string)
12714				if !ok {
12715					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12716				}
12717				sv.AllocationId = ptr.String(jtv)
12718			}
12719
12720		case "AssociationId":
12721			if value != nil {
12722				jtv, ok := value.(string)
12723				if !ok {
12724					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12725				}
12726				sv.AssociationId = ptr.String(jtv)
12727			}
12728
12729		case "Domain":
12730			if value != nil {
12731				jtv, ok := value.(string)
12732				if !ok {
12733					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12734				}
12735				sv.Domain = ptr.String(jtv)
12736			}
12737
12738		case "InstanceId":
12739			if value != nil {
12740				jtv, ok := value.(string)
12741				if !ok {
12742					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12743				}
12744				sv.InstanceId = ptr.String(jtv)
12745			}
12746
12747		case "NetworkBorderGroup":
12748			if value != nil {
12749				jtv, ok := value.(string)
12750				if !ok {
12751					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12752				}
12753				sv.NetworkBorderGroup = ptr.String(jtv)
12754			}
12755
12756		case "NetworkInterfaceId":
12757			if value != nil {
12758				jtv, ok := value.(string)
12759				if !ok {
12760					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12761				}
12762				sv.NetworkInterfaceId = ptr.String(jtv)
12763			}
12764
12765		case "NetworkInterfaceOwnerId":
12766			if value != nil {
12767				jtv, ok := value.(string)
12768				if !ok {
12769					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12770				}
12771				sv.NetworkInterfaceOwnerId = ptr.String(jtv)
12772			}
12773
12774		case "PrivateIpAddress":
12775			if value != nil {
12776				jtv, ok := value.(string)
12777				if !ok {
12778					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12779				}
12780				sv.PrivateIpAddress = ptr.String(jtv)
12781			}
12782
12783		case "PublicIp":
12784			if value != nil {
12785				jtv, ok := value.(string)
12786				if !ok {
12787					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12788				}
12789				sv.PublicIp = ptr.String(jtv)
12790			}
12791
12792		case "PublicIpv4Pool":
12793			if value != nil {
12794				jtv, ok := value.(string)
12795				if !ok {
12796					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12797				}
12798				sv.PublicIpv4Pool = ptr.String(jtv)
12799			}
12800
12801		default:
12802			_, _ = key, value
12803
12804		}
12805	}
12806	*v = sv
12807	return nil
12808}
12809
12810func awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(v **types.AwsEc2InstanceDetails, value interface{}) error {
12811	if v == nil {
12812		return fmt.Errorf("unexpected nil of type %T", v)
12813	}
12814	if value == nil {
12815		return nil
12816	}
12817
12818	shape, ok := value.(map[string]interface{})
12819	if !ok {
12820		return fmt.Errorf("unexpected JSON type %v", value)
12821	}
12822
12823	var sv *types.AwsEc2InstanceDetails
12824	if *v == nil {
12825		sv = &types.AwsEc2InstanceDetails{}
12826	} else {
12827		sv = *v
12828	}
12829
12830	for key, value := range shape {
12831		switch key {
12832		case "IamInstanceProfileArn":
12833			if value != nil {
12834				jtv, ok := value.(string)
12835				if !ok {
12836					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12837				}
12838				sv.IamInstanceProfileArn = ptr.String(jtv)
12839			}
12840
12841		case "ImageId":
12842			if value != nil {
12843				jtv, ok := value.(string)
12844				if !ok {
12845					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12846				}
12847				sv.ImageId = ptr.String(jtv)
12848			}
12849
12850		case "IpV4Addresses":
12851			if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV4Addresses, value); err != nil {
12852				return err
12853			}
12854
12855		case "IpV6Addresses":
12856			if err := awsRestjson1_deserializeDocumentStringList(&sv.IpV6Addresses, value); err != nil {
12857				return err
12858			}
12859
12860		case "KeyName":
12861			if value != nil {
12862				jtv, ok := value.(string)
12863				if !ok {
12864					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12865				}
12866				sv.KeyName = ptr.String(jtv)
12867			}
12868
12869		case "LaunchedAt":
12870			if value != nil {
12871				jtv, ok := value.(string)
12872				if !ok {
12873					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12874				}
12875				sv.LaunchedAt = ptr.String(jtv)
12876			}
12877
12878		case "NetworkInterfaces":
12879			if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(&sv.NetworkInterfaces, value); err != nil {
12880				return err
12881			}
12882
12883		case "SubnetId":
12884			if value != nil {
12885				jtv, ok := value.(string)
12886				if !ok {
12887					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12888				}
12889				sv.SubnetId = ptr.String(jtv)
12890			}
12891
12892		case "Type":
12893			if value != nil {
12894				jtv, ok := value.(string)
12895				if !ok {
12896					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12897				}
12898				sv.Type = ptr.String(jtv)
12899			}
12900
12901		case "VpcId":
12902			if value != nil {
12903				jtv, ok := value.(string)
12904				if !ok {
12905					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12906				}
12907				sv.VpcId = ptr.String(jtv)
12908			}
12909
12910		default:
12911			_, _ = key, value
12912
12913		}
12914	}
12915	*v = sv
12916	return nil
12917}
12918
12919func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v **types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error {
12920	if v == nil {
12921		return fmt.Errorf("unexpected nil of type %T", v)
12922	}
12923	if value == nil {
12924		return nil
12925	}
12926
12927	shape, ok := value.(map[string]interface{})
12928	if !ok {
12929		return fmt.Errorf("unexpected JSON type %v", value)
12930	}
12931
12932	var sv *types.AwsEc2InstanceNetworkInterfacesDetails
12933	if *v == nil {
12934		sv = &types.AwsEc2InstanceNetworkInterfacesDetails{}
12935	} else {
12936		sv = *v
12937	}
12938
12939	for key, value := range shape {
12940		switch key {
12941		case "NetworkInterfaceId":
12942			if value != nil {
12943				jtv, ok := value.(string)
12944				if !ok {
12945					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
12946				}
12947				sv.NetworkInterfaceId = ptr.String(jtv)
12948			}
12949
12950		default:
12951			_, _ = key, value
12952
12953		}
12954	}
12955	*v = sv
12956	return nil
12957}
12958
12959func awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesList(v *[]types.AwsEc2InstanceNetworkInterfacesDetails, value interface{}) error {
12960	if v == nil {
12961		return fmt.Errorf("unexpected nil of type %T", v)
12962	}
12963	if value == nil {
12964		return nil
12965	}
12966
12967	shape, ok := value.([]interface{})
12968	if !ok {
12969		return fmt.Errorf("unexpected JSON type %v", value)
12970	}
12971
12972	var cv []types.AwsEc2InstanceNetworkInterfacesDetails
12973	if *v == nil {
12974		cv = []types.AwsEc2InstanceNetworkInterfacesDetails{}
12975	} else {
12976		cv = *v
12977	}
12978
12979	for _, value := range shape {
12980		var col types.AwsEc2InstanceNetworkInterfacesDetails
12981		destAddr := &col
12982		if err := awsRestjson1_deserializeDocumentAwsEc2InstanceNetworkInterfacesDetails(&destAddr, value); err != nil {
12983			return err
12984		}
12985		col = *destAddr
12986		cv = append(cv, col)
12987
12988	}
12989	*v = cv
12990	return nil
12991}
12992
12993func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(v **types.AwsEc2NetworkAclAssociation, value interface{}) error {
12994	if v == nil {
12995		return fmt.Errorf("unexpected nil of type %T", v)
12996	}
12997	if value == nil {
12998		return nil
12999	}
13000
13001	shape, ok := value.(map[string]interface{})
13002	if !ok {
13003		return fmt.Errorf("unexpected JSON type %v", value)
13004	}
13005
13006	var sv *types.AwsEc2NetworkAclAssociation
13007	if *v == nil {
13008		sv = &types.AwsEc2NetworkAclAssociation{}
13009	} else {
13010		sv = *v
13011	}
13012
13013	for key, value := range shape {
13014		switch key {
13015		case "NetworkAclAssociationId":
13016			if value != nil {
13017				jtv, ok := value.(string)
13018				if !ok {
13019					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13020				}
13021				sv.NetworkAclAssociationId = ptr.String(jtv)
13022			}
13023
13024		case "NetworkAclId":
13025			if value != nil {
13026				jtv, ok := value.(string)
13027				if !ok {
13028					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13029				}
13030				sv.NetworkAclId = ptr.String(jtv)
13031			}
13032
13033		case "SubnetId":
13034			if value != nil {
13035				jtv, ok := value.(string)
13036				if !ok {
13037					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13038				}
13039				sv.SubnetId = ptr.String(jtv)
13040			}
13041
13042		default:
13043			_, _ = key, value
13044
13045		}
13046	}
13047	*v = sv
13048	return nil
13049}
13050
13051func awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(v *[]types.AwsEc2NetworkAclAssociation, value interface{}) error {
13052	if v == nil {
13053		return fmt.Errorf("unexpected nil of type %T", v)
13054	}
13055	if value == nil {
13056		return nil
13057	}
13058
13059	shape, ok := value.([]interface{})
13060	if !ok {
13061		return fmt.Errorf("unexpected JSON type %v", value)
13062	}
13063
13064	var cv []types.AwsEc2NetworkAclAssociation
13065	if *v == nil {
13066		cv = []types.AwsEc2NetworkAclAssociation{}
13067	} else {
13068		cv = *v
13069	}
13070
13071	for _, value := range shape {
13072		var col types.AwsEc2NetworkAclAssociation
13073		destAddr := &col
13074		if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociation(&destAddr, value); err != nil {
13075			return err
13076		}
13077		col = *destAddr
13078		cv = append(cv, col)
13079
13080	}
13081	*v = cv
13082	return nil
13083}
13084
13085func awsRestjson1_deserializeDocumentAwsEc2NetworkAclDetails(v **types.AwsEc2NetworkAclDetails, value interface{}) error {
13086	if v == nil {
13087		return fmt.Errorf("unexpected nil of type %T", v)
13088	}
13089	if value == nil {
13090		return nil
13091	}
13092
13093	shape, ok := value.(map[string]interface{})
13094	if !ok {
13095		return fmt.Errorf("unexpected JSON type %v", value)
13096	}
13097
13098	var sv *types.AwsEc2NetworkAclDetails
13099	if *v == nil {
13100		sv = &types.AwsEc2NetworkAclDetails{}
13101	} else {
13102		sv = *v
13103	}
13104
13105	for key, value := range shape {
13106		switch key {
13107		case "Associations":
13108			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclAssociationList(&sv.Associations, value); err != nil {
13109				return err
13110			}
13111
13112		case "Entries":
13113			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(&sv.Entries, value); err != nil {
13114				return err
13115			}
13116
13117		case "IsDefault":
13118			if value != nil {
13119				jtv, ok := value.(bool)
13120				if !ok {
13121					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
13122				}
13123				sv.IsDefault = jtv
13124			}
13125
13126		case "NetworkAclId":
13127			if value != nil {
13128				jtv, ok := value.(string)
13129				if !ok {
13130					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13131				}
13132				sv.NetworkAclId = ptr.String(jtv)
13133			}
13134
13135		case "OwnerId":
13136			if value != nil {
13137				jtv, ok := value.(string)
13138				if !ok {
13139					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13140				}
13141				sv.OwnerId = ptr.String(jtv)
13142			}
13143
13144		case "VpcId":
13145			if value != nil {
13146				jtv, ok := value.(string)
13147				if !ok {
13148					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13149				}
13150				sv.VpcId = ptr.String(jtv)
13151			}
13152
13153		default:
13154			_, _ = key, value
13155
13156		}
13157	}
13158	*v = sv
13159	return nil
13160}
13161
13162func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(v **types.AwsEc2NetworkAclEntry, value interface{}) error {
13163	if v == nil {
13164		return fmt.Errorf("unexpected nil of type %T", v)
13165	}
13166	if value == nil {
13167		return nil
13168	}
13169
13170	shape, ok := value.(map[string]interface{})
13171	if !ok {
13172		return fmt.Errorf("unexpected JSON type %v", value)
13173	}
13174
13175	var sv *types.AwsEc2NetworkAclEntry
13176	if *v == nil {
13177		sv = &types.AwsEc2NetworkAclEntry{}
13178	} else {
13179		sv = *v
13180	}
13181
13182	for key, value := range shape {
13183		switch key {
13184		case "CidrBlock":
13185			if value != nil {
13186				jtv, ok := value.(string)
13187				if !ok {
13188					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13189				}
13190				sv.CidrBlock = ptr.String(jtv)
13191			}
13192
13193		case "Egress":
13194			if value != nil {
13195				jtv, ok := value.(bool)
13196				if !ok {
13197					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
13198				}
13199				sv.Egress = jtv
13200			}
13201
13202		case "IcmpTypeCode":
13203			if err := awsRestjson1_deserializeDocumentIcmpTypeCode(&sv.IcmpTypeCode, value); err != nil {
13204				return err
13205			}
13206
13207		case "Ipv6CidrBlock":
13208			if value != nil {
13209				jtv, ok := value.(string)
13210				if !ok {
13211					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13212				}
13213				sv.Ipv6CidrBlock = ptr.String(jtv)
13214			}
13215
13216		case "PortRange":
13217			if err := awsRestjson1_deserializeDocumentPortRangeFromTo(&sv.PortRange, value); err != nil {
13218				return err
13219			}
13220
13221		case "Protocol":
13222			if value != nil {
13223				jtv, ok := value.(string)
13224				if !ok {
13225					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13226				}
13227				sv.Protocol = ptr.String(jtv)
13228			}
13229
13230		case "RuleAction":
13231			if value != nil {
13232				jtv, ok := value.(string)
13233				if !ok {
13234					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13235				}
13236				sv.RuleAction = ptr.String(jtv)
13237			}
13238
13239		case "RuleNumber":
13240			if value != nil {
13241				jtv, ok := value.(json.Number)
13242				if !ok {
13243					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
13244				}
13245				i64, err := jtv.Int64()
13246				if err != nil {
13247					return err
13248				}
13249				sv.RuleNumber = int32(i64)
13250			}
13251
13252		default:
13253			_, _ = key, value
13254
13255		}
13256	}
13257	*v = sv
13258	return nil
13259}
13260
13261func awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntryList(v *[]types.AwsEc2NetworkAclEntry, value interface{}) error {
13262	if v == nil {
13263		return fmt.Errorf("unexpected nil of type %T", v)
13264	}
13265	if value == nil {
13266		return nil
13267	}
13268
13269	shape, ok := value.([]interface{})
13270	if !ok {
13271		return fmt.Errorf("unexpected JSON type %v", value)
13272	}
13273
13274	var cv []types.AwsEc2NetworkAclEntry
13275	if *v == nil {
13276		cv = []types.AwsEc2NetworkAclEntry{}
13277	} else {
13278		cv = *v
13279	}
13280
13281	for _, value := range shape {
13282		var col types.AwsEc2NetworkAclEntry
13283		destAddr := &col
13284		if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclEntry(&destAddr, value); err != nil {
13285			return err
13286		}
13287		col = *destAddr
13288		cv = append(cv, col)
13289
13290	}
13291	*v = cv
13292	return nil
13293}
13294
13295func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(v **types.AwsEc2NetworkInterfaceAttachment, value interface{}) error {
13296	if v == nil {
13297		return fmt.Errorf("unexpected nil of type %T", v)
13298	}
13299	if value == nil {
13300		return nil
13301	}
13302
13303	shape, ok := value.(map[string]interface{})
13304	if !ok {
13305		return fmt.Errorf("unexpected JSON type %v", value)
13306	}
13307
13308	var sv *types.AwsEc2NetworkInterfaceAttachment
13309	if *v == nil {
13310		sv = &types.AwsEc2NetworkInterfaceAttachment{}
13311	} else {
13312		sv = *v
13313	}
13314
13315	for key, value := range shape {
13316		switch key {
13317		case "AttachmentId":
13318			if value != nil {
13319				jtv, ok := value.(string)
13320				if !ok {
13321					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13322				}
13323				sv.AttachmentId = ptr.String(jtv)
13324			}
13325
13326		case "AttachTime":
13327			if value != nil {
13328				jtv, ok := value.(string)
13329				if !ok {
13330					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13331				}
13332				sv.AttachTime = ptr.String(jtv)
13333			}
13334
13335		case "DeleteOnTermination":
13336			if value != nil {
13337				jtv, ok := value.(bool)
13338				if !ok {
13339					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
13340				}
13341				sv.DeleteOnTermination = jtv
13342			}
13343
13344		case "DeviceIndex":
13345			if value != nil {
13346				jtv, ok := value.(json.Number)
13347				if !ok {
13348					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
13349				}
13350				i64, err := jtv.Int64()
13351				if err != nil {
13352					return err
13353				}
13354				sv.DeviceIndex = int32(i64)
13355			}
13356
13357		case "InstanceId":
13358			if value != nil {
13359				jtv, ok := value.(string)
13360				if !ok {
13361					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13362				}
13363				sv.InstanceId = ptr.String(jtv)
13364			}
13365
13366		case "InstanceOwnerId":
13367			if value != nil {
13368				jtv, ok := value.(string)
13369				if !ok {
13370					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13371				}
13372				sv.InstanceOwnerId = ptr.String(jtv)
13373			}
13374
13375		case "Status":
13376			if value != nil {
13377				jtv, ok := value.(string)
13378				if !ok {
13379					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13380				}
13381				sv.Status = ptr.String(jtv)
13382			}
13383
13384		default:
13385			_, _ = key, value
13386
13387		}
13388	}
13389	*v = sv
13390	return nil
13391}
13392
13393func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(v **types.AwsEc2NetworkInterfaceDetails, value interface{}) error {
13394	if v == nil {
13395		return fmt.Errorf("unexpected nil of type %T", v)
13396	}
13397	if value == nil {
13398		return nil
13399	}
13400
13401	shape, ok := value.(map[string]interface{})
13402	if !ok {
13403		return fmt.Errorf("unexpected JSON type %v", value)
13404	}
13405
13406	var sv *types.AwsEc2NetworkInterfaceDetails
13407	if *v == nil {
13408		sv = &types.AwsEc2NetworkInterfaceDetails{}
13409	} else {
13410		sv = *v
13411	}
13412
13413	for key, value := range shape {
13414		switch key {
13415		case "Attachment":
13416			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceAttachment(&sv.Attachment, value); err != nil {
13417				return err
13418			}
13419
13420		case "IpV6Addresses":
13421			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(&sv.IpV6Addresses, value); err != nil {
13422				return err
13423			}
13424
13425		case "NetworkInterfaceId":
13426			if value != nil {
13427				jtv, ok := value.(string)
13428				if !ok {
13429					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13430				}
13431				sv.NetworkInterfaceId = ptr.String(jtv)
13432			}
13433
13434		case "PrivateIpAddresses":
13435			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(&sv.PrivateIpAddresses, value); err != nil {
13436				return err
13437			}
13438
13439		case "PublicDnsName":
13440			if value != nil {
13441				jtv, ok := value.(string)
13442				if !ok {
13443					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13444				}
13445				sv.PublicDnsName = ptr.String(jtv)
13446			}
13447
13448		case "PublicIp":
13449			if value != nil {
13450				jtv, ok := value.(string)
13451				if !ok {
13452					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13453				}
13454				sv.PublicIp = ptr.String(jtv)
13455			}
13456
13457		case "SecurityGroups":
13458			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(&sv.SecurityGroups, value); err != nil {
13459				return err
13460			}
13461
13462		case "SourceDestCheck":
13463			if value != nil {
13464				jtv, ok := value.(bool)
13465				if !ok {
13466					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
13467				}
13468				sv.SourceDestCheck = jtv
13469			}
13470
13471		default:
13472			_, _ = key, value
13473
13474		}
13475	}
13476	*v = sv
13477	return nil
13478}
13479
13480func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(v **types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error {
13481	if v == nil {
13482		return fmt.Errorf("unexpected nil of type %T", v)
13483	}
13484	if value == nil {
13485		return nil
13486	}
13487
13488	shape, ok := value.(map[string]interface{})
13489	if !ok {
13490		return fmt.Errorf("unexpected JSON type %v", value)
13491	}
13492
13493	var sv *types.AwsEc2NetworkInterfaceIpV6AddressDetail
13494	if *v == nil {
13495		sv = &types.AwsEc2NetworkInterfaceIpV6AddressDetail{}
13496	} else {
13497		sv = *v
13498	}
13499
13500	for key, value := range shape {
13501		switch key {
13502		case "IpV6Address":
13503			if value != nil {
13504				jtv, ok := value.(string)
13505				if !ok {
13506					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13507				}
13508				sv.IpV6Address = ptr.String(jtv)
13509			}
13510
13511		default:
13512			_, _ = key, value
13513
13514		}
13515	}
13516	*v = sv
13517	return nil
13518}
13519
13520func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(v *[]types.AwsEc2NetworkInterfaceIpV6AddressDetail, value interface{}) error {
13521	if v == nil {
13522		return fmt.Errorf("unexpected nil of type %T", v)
13523	}
13524	if value == nil {
13525		return nil
13526	}
13527
13528	shape, ok := value.([]interface{})
13529	if !ok {
13530		return fmt.Errorf("unexpected JSON type %v", value)
13531	}
13532
13533	var cv []types.AwsEc2NetworkInterfaceIpV6AddressDetail
13534	if *v == nil {
13535		cv = []types.AwsEc2NetworkInterfaceIpV6AddressDetail{}
13536	} else {
13537		cv = *v
13538	}
13539
13540	for _, value := range shape {
13541		var col types.AwsEc2NetworkInterfaceIpV6AddressDetail
13542		destAddr := &col
13543		if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(&destAddr, value); err != nil {
13544			return err
13545		}
13546		col = *destAddr
13547		cv = append(cv, col)
13548
13549	}
13550	*v = cv
13551	return nil
13552}
13553
13554func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(v **types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error {
13555	if v == nil {
13556		return fmt.Errorf("unexpected nil of type %T", v)
13557	}
13558	if value == nil {
13559		return nil
13560	}
13561
13562	shape, ok := value.(map[string]interface{})
13563	if !ok {
13564		return fmt.Errorf("unexpected JSON type %v", value)
13565	}
13566
13567	var sv *types.AwsEc2NetworkInterfacePrivateIpAddressDetail
13568	if *v == nil {
13569		sv = &types.AwsEc2NetworkInterfacePrivateIpAddressDetail{}
13570	} else {
13571		sv = *v
13572	}
13573
13574	for key, value := range shape {
13575		switch key {
13576		case "PrivateDnsName":
13577			if value != nil {
13578				jtv, ok := value.(string)
13579				if !ok {
13580					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13581				}
13582				sv.PrivateDnsName = ptr.String(jtv)
13583			}
13584
13585		case "PrivateIpAddress":
13586			if value != nil {
13587				jtv, ok := value.(string)
13588				if !ok {
13589					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13590				}
13591				sv.PrivateIpAddress = ptr.String(jtv)
13592			}
13593
13594		default:
13595			_, _ = key, value
13596
13597		}
13598	}
13599	*v = sv
13600	return nil
13601}
13602
13603func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(v *[]types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value interface{}) error {
13604	if v == nil {
13605		return fmt.Errorf("unexpected nil of type %T", v)
13606	}
13607	if value == nil {
13608		return nil
13609	}
13610
13611	shape, ok := value.([]interface{})
13612	if !ok {
13613		return fmt.Errorf("unexpected JSON type %v", value)
13614	}
13615
13616	var cv []types.AwsEc2NetworkInterfacePrivateIpAddressDetail
13617	if *v == nil {
13618		cv = []types.AwsEc2NetworkInterfacePrivateIpAddressDetail{}
13619	} else {
13620		cv = *v
13621	}
13622
13623	for _, value := range shape {
13624		var col types.AwsEc2NetworkInterfacePrivateIpAddressDetail
13625		destAddr := &col
13626		if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(&destAddr, value); err != nil {
13627			return err
13628		}
13629		col = *destAddr
13630		cv = append(cv, col)
13631
13632	}
13633	*v = cv
13634	return nil
13635}
13636
13637func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v **types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error {
13638	if v == nil {
13639		return fmt.Errorf("unexpected nil of type %T", v)
13640	}
13641	if value == nil {
13642		return nil
13643	}
13644
13645	shape, ok := value.(map[string]interface{})
13646	if !ok {
13647		return fmt.Errorf("unexpected JSON type %v", value)
13648	}
13649
13650	var sv *types.AwsEc2NetworkInterfaceSecurityGroup
13651	if *v == nil {
13652		sv = &types.AwsEc2NetworkInterfaceSecurityGroup{}
13653	} else {
13654		sv = *v
13655	}
13656
13657	for key, value := range shape {
13658		switch key {
13659		case "GroupId":
13660			if value != nil {
13661				jtv, ok := value.(string)
13662				if !ok {
13663					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13664				}
13665				sv.GroupId = ptr.String(jtv)
13666			}
13667
13668		case "GroupName":
13669			if value != nil {
13670				jtv, ok := value.(string)
13671				if !ok {
13672					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13673				}
13674				sv.GroupName = ptr.String(jtv)
13675			}
13676
13677		default:
13678			_, _ = key, value
13679
13680		}
13681	}
13682	*v = sv
13683	return nil
13684}
13685
13686func awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v *[]types.AwsEc2NetworkInterfaceSecurityGroup, value interface{}) error {
13687	if v == nil {
13688		return fmt.Errorf("unexpected nil of type %T", v)
13689	}
13690	if value == nil {
13691		return nil
13692	}
13693
13694	shape, ok := value.([]interface{})
13695	if !ok {
13696		return fmt.Errorf("unexpected JSON type %v", value)
13697	}
13698
13699	var cv []types.AwsEc2NetworkInterfaceSecurityGroup
13700	if *v == nil {
13701		cv = []types.AwsEc2NetworkInterfaceSecurityGroup{}
13702	} else {
13703		cv = *v
13704	}
13705
13706	for _, value := range shape {
13707		var col types.AwsEc2NetworkInterfaceSecurityGroup
13708		destAddr := &col
13709		if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceSecurityGroup(&destAddr, value); err != nil {
13710			return err
13711		}
13712		col = *destAddr
13713		cv = append(cv, col)
13714
13715	}
13716	*v = cv
13717	return nil
13718}
13719
13720func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(v **types.AwsEc2SecurityGroupDetails, value interface{}) error {
13721	if v == nil {
13722		return fmt.Errorf("unexpected nil of type %T", v)
13723	}
13724	if value == nil {
13725		return nil
13726	}
13727
13728	shape, ok := value.(map[string]interface{})
13729	if !ok {
13730		return fmt.Errorf("unexpected JSON type %v", value)
13731	}
13732
13733	var sv *types.AwsEc2SecurityGroupDetails
13734	if *v == nil {
13735		sv = &types.AwsEc2SecurityGroupDetails{}
13736	} else {
13737		sv = *v
13738	}
13739
13740	for key, value := range shape {
13741		switch key {
13742		case "GroupId":
13743			if value != nil {
13744				jtv, ok := value.(string)
13745				if !ok {
13746					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13747				}
13748				sv.GroupId = ptr.String(jtv)
13749			}
13750
13751		case "GroupName":
13752			if value != nil {
13753				jtv, ok := value.(string)
13754				if !ok {
13755					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13756				}
13757				sv.GroupName = ptr.String(jtv)
13758			}
13759
13760		case "IpPermissions":
13761			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissions, value); err != nil {
13762				return err
13763			}
13764
13765		case "IpPermissionsEgress":
13766			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(&sv.IpPermissionsEgress, value); err != nil {
13767				return err
13768			}
13769
13770		case "OwnerId":
13771			if value != nil {
13772				jtv, ok := value.(string)
13773				if !ok {
13774					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13775				}
13776				sv.OwnerId = ptr.String(jtv)
13777			}
13778
13779		case "VpcId":
13780			if value != nil {
13781				jtv, ok := value.(string)
13782				if !ok {
13783					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13784				}
13785				sv.VpcId = ptr.String(jtv)
13786			}
13787
13788		default:
13789			_, _ = key, value
13790
13791		}
13792	}
13793	*v = sv
13794	return nil
13795}
13796
13797func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(v **types.AwsEc2SecurityGroupIpPermission, value interface{}) error {
13798	if v == nil {
13799		return fmt.Errorf("unexpected nil of type %T", v)
13800	}
13801	if value == nil {
13802		return nil
13803	}
13804
13805	shape, ok := value.(map[string]interface{})
13806	if !ok {
13807		return fmt.Errorf("unexpected JSON type %v", value)
13808	}
13809
13810	var sv *types.AwsEc2SecurityGroupIpPermission
13811	if *v == nil {
13812		sv = &types.AwsEc2SecurityGroupIpPermission{}
13813	} else {
13814		sv = *v
13815	}
13816
13817	for key, value := range shape {
13818		switch key {
13819		case "FromPort":
13820			if value != nil {
13821				jtv, ok := value.(json.Number)
13822				if !ok {
13823					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
13824				}
13825				i64, err := jtv.Int64()
13826				if err != nil {
13827					return err
13828				}
13829				sv.FromPort = int32(i64)
13830			}
13831
13832		case "IpProtocol":
13833			if value != nil {
13834				jtv, ok := value.(string)
13835				if !ok {
13836					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13837				}
13838				sv.IpProtocol = ptr.String(jtv)
13839			}
13840
13841		case "IpRanges":
13842			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(&sv.IpRanges, value); err != nil {
13843				return err
13844			}
13845
13846		case "Ipv6Ranges":
13847			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(&sv.Ipv6Ranges, value); err != nil {
13848				return err
13849			}
13850
13851		case "PrefixListIds":
13852			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(&sv.PrefixListIds, value); err != nil {
13853				return err
13854			}
13855
13856		case "ToPort":
13857			if value != nil {
13858				jtv, ok := value.(json.Number)
13859				if !ok {
13860					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
13861				}
13862				i64, err := jtv.Int64()
13863				if err != nil {
13864					return err
13865				}
13866				sv.ToPort = int32(i64)
13867			}
13868
13869		case "UserIdGroupPairs":
13870			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(&sv.UserIdGroupPairs, value); err != nil {
13871				return err
13872			}
13873
13874		default:
13875			_, _ = key, value
13876
13877		}
13878	}
13879	*v = sv
13880	return nil
13881}
13882
13883func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermissionList(v *[]types.AwsEc2SecurityGroupIpPermission, value interface{}) error {
13884	if v == nil {
13885		return fmt.Errorf("unexpected nil of type %T", v)
13886	}
13887	if value == nil {
13888		return nil
13889	}
13890
13891	shape, ok := value.([]interface{})
13892	if !ok {
13893		return fmt.Errorf("unexpected JSON type %v", value)
13894	}
13895
13896	var cv []types.AwsEc2SecurityGroupIpPermission
13897	if *v == nil {
13898		cv = []types.AwsEc2SecurityGroupIpPermission{}
13899	} else {
13900		cv = *v
13901	}
13902
13903	for _, value := range shape {
13904		var col types.AwsEc2SecurityGroupIpPermission
13905		destAddr := &col
13906		if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpPermission(&destAddr, value); err != nil {
13907			return err
13908		}
13909		col = *destAddr
13910		cv = append(cv, col)
13911
13912	}
13913	*v = cv
13914	return nil
13915}
13916
13917func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(v **types.AwsEc2SecurityGroupIpRange, value interface{}) error {
13918	if v == nil {
13919		return fmt.Errorf("unexpected nil of type %T", v)
13920	}
13921	if value == nil {
13922		return nil
13923	}
13924
13925	shape, ok := value.(map[string]interface{})
13926	if !ok {
13927		return fmt.Errorf("unexpected JSON type %v", value)
13928	}
13929
13930	var sv *types.AwsEc2SecurityGroupIpRange
13931	if *v == nil {
13932		sv = &types.AwsEc2SecurityGroupIpRange{}
13933	} else {
13934		sv = *v
13935	}
13936
13937	for key, value := range shape {
13938		switch key {
13939		case "CidrIp":
13940			if value != nil {
13941				jtv, ok := value.(string)
13942				if !ok {
13943					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
13944				}
13945				sv.CidrIp = ptr.String(jtv)
13946			}
13947
13948		default:
13949			_, _ = key, value
13950
13951		}
13952	}
13953	*v = sv
13954	return nil
13955}
13956
13957func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRangeList(v *[]types.AwsEc2SecurityGroupIpRange, value interface{}) error {
13958	if v == nil {
13959		return fmt.Errorf("unexpected nil of type %T", v)
13960	}
13961	if value == nil {
13962		return nil
13963	}
13964
13965	shape, ok := value.([]interface{})
13966	if !ok {
13967		return fmt.Errorf("unexpected JSON type %v", value)
13968	}
13969
13970	var cv []types.AwsEc2SecurityGroupIpRange
13971	if *v == nil {
13972		cv = []types.AwsEc2SecurityGroupIpRange{}
13973	} else {
13974		cv = *v
13975	}
13976
13977	for _, value := range shape {
13978		var col types.AwsEc2SecurityGroupIpRange
13979		destAddr := &col
13980		if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpRange(&destAddr, value); err != nil {
13981			return err
13982		}
13983		col = *destAddr
13984		cv = append(cv, col)
13985
13986	}
13987	*v = cv
13988	return nil
13989}
13990
13991func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(v **types.AwsEc2SecurityGroupIpv6Range, value interface{}) error {
13992	if v == nil {
13993		return fmt.Errorf("unexpected nil of type %T", v)
13994	}
13995	if value == nil {
13996		return nil
13997	}
13998
13999	shape, ok := value.(map[string]interface{})
14000	if !ok {
14001		return fmt.Errorf("unexpected JSON type %v", value)
14002	}
14003
14004	var sv *types.AwsEc2SecurityGroupIpv6Range
14005	if *v == nil {
14006		sv = &types.AwsEc2SecurityGroupIpv6Range{}
14007	} else {
14008		sv = *v
14009	}
14010
14011	for key, value := range shape {
14012		switch key {
14013		case "CidrIpv6":
14014			if value != nil {
14015				jtv, ok := value.(string)
14016				if !ok {
14017					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14018				}
14019				sv.CidrIpv6 = ptr.String(jtv)
14020			}
14021
14022		default:
14023			_, _ = key, value
14024
14025		}
14026	}
14027	*v = sv
14028	return nil
14029}
14030
14031func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6RangeList(v *[]types.AwsEc2SecurityGroupIpv6Range, value interface{}) error {
14032	if v == nil {
14033		return fmt.Errorf("unexpected nil of type %T", v)
14034	}
14035	if value == nil {
14036		return nil
14037	}
14038
14039	shape, ok := value.([]interface{})
14040	if !ok {
14041		return fmt.Errorf("unexpected JSON type %v", value)
14042	}
14043
14044	var cv []types.AwsEc2SecurityGroupIpv6Range
14045	if *v == nil {
14046		cv = []types.AwsEc2SecurityGroupIpv6Range{}
14047	} else {
14048		cv = *v
14049	}
14050
14051	for _, value := range shape {
14052		var col types.AwsEc2SecurityGroupIpv6Range
14053		destAddr := &col
14054		if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupIpv6Range(&destAddr, value); err != nil {
14055			return err
14056		}
14057		col = *destAddr
14058		cv = append(cv, col)
14059
14060	}
14061	*v = cv
14062	return nil
14063}
14064
14065func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(v **types.AwsEc2SecurityGroupPrefixListId, value interface{}) error {
14066	if v == nil {
14067		return fmt.Errorf("unexpected nil of type %T", v)
14068	}
14069	if value == nil {
14070		return nil
14071	}
14072
14073	shape, ok := value.(map[string]interface{})
14074	if !ok {
14075		return fmt.Errorf("unexpected JSON type %v", value)
14076	}
14077
14078	var sv *types.AwsEc2SecurityGroupPrefixListId
14079	if *v == nil {
14080		sv = &types.AwsEc2SecurityGroupPrefixListId{}
14081	} else {
14082		sv = *v
14083	}
14084
14085	for key, value := range shape {
14086		switch key {
14087		case "PrefixListId":
14088			if value != nil {
14089				jtv, ok := value.(string)
14090				if !ok {
14091					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14092				}
14093				sv.PrefixListId = ptr.String(jtv)
14094			}
14095
14096		default:
14097			_, _ = key, value
14098
14099		}
14100	}
14101	*v = sv
14102	return nil
14103}
14104
14105func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListIdList(v *[]types.AwsEc2SecurityGroupPrefixListId, value interface{}) error {
14106	if v == nil {
14107		return fmt.Errorf("unexpected nil of type %T", v)
14108	}
14109	if value == nil {
14110		return nil
14111	}
14112
14113	shape, ok := value.([]interface{})
14114	if !ok {
14115		return fmt.Errorf("unexpected JSON type %v", value)
14116	}
14117
14118	var cv []types.AwsEc2SecurityGroupPrefixListId
14119	if *v == nil {
14120		cv = []types.AwsEc2SecurityGroupPrefixListId{}
14121	} else {
14122		cv = *v
14123	}
14124
14125	for _, value := range shape {
14126		var col types.AwsEc2SecurityGroupPrefixListId
14127		destAddr := &col
14128		if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupPrefixListId(&destAddr, value); err != nil {
14129			return err
14130		}
14131		col = *destAddr
14132		cv = append(cv, col)
14133
14134	}
14135	*v = cv
14136	return nil
14137}
14138
14139func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v **types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error {
14140	if v == nil {
14141		return fmt.Errorf("unexpected nil of type %T", v)
14142	}
14143	if value == nil {
14144		return nil
14145	}
14146
14147	shape, ok := value.(map[string]interface{})
14148	if !ok {
14149		return fmt.Errorf("unexpected JSON type %v", value)
14150	}
14151
14152	var sv *types.AwsEc2SecurityGroupUserIdGroupPair
14153	if *v == nil {
14154		sv = &types.AwsEc2SecurityGroupUserIdGroupPair{}
14155	} else {
14156		sv = *v
14157	}
14158
14159	for key, value := range shape {
14160		switch key {
14161		case "GroupId":
14162			if value != nil {
14163				jtv, ok := value.(string)
14164				if !ok {
14165					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14166				}
14167				sv.GroupId = ptr.String(jtv)
14168			}
14169
14170		case "GroupName":
14171			if value != nil {
14172				jtv, ok := value.(string)
14173				if !ok {
14174					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14175				}
14176				sv.GroupName = ptr.String(jtv)
14177			}
14178
14179		case "PeeringStatus":
14180			if value != nil {
14181				jtv, ok := value.(string)
14182				if !ok {
14183					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14184				}
14185				sv.PeeringStatus = ptr.String(jtv)
14186			}
14187
14188		case "UserId":
14189			if value != nil {
14190				jtv, ok := value.(string)
14191				if !ok {
14192					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14193				}
14194				sv.UserId = ptr.String(jtv)
14195			}
14196
14197		case "VpcId":
14198			if value != nil {
14199				jtv, ok := value.(string)
14200				if !ok {
14201					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14202				}
14203				sv.VpcId = ptr.String(jtv)
14204			}
14205
14206		case "VpcPeeringConnectionId":
14207			if value != nil {
14208				jtv, ok := value.(string)
14209				if !ok {
14210					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14211				}
14212				sv.VpcPeeringConnectionId = ptr.String(jtv)
14213			}
14214
14215		default:
14216			_, _ = key, value
14217
14218		}
14219	}
14220	*v = sv
14221	return nil
14222}
14223
14224func awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v *[]types.AwsEc2SecurityGroupUserIdGroupPair, value interface{}) error {
14225	if v == nil {
14226		return fmt.Errorf("unexpected nil of type %T", v)
14227	}
14228	if value == nil {
14229		return nil
14230	}
14231
14232	shape, ok := value.([]interface{})
14233	if !ok {
14234		return fmt.Errorf("unexpected JSON type %v", value)
14235	}
14236
14237	var cv []types.AwsEc2SecurityGroupUserIdGroupPair
14238	if *v == nil {
14239		cv = []types.AwsEc2SecurityGroupUserIdGroupPair{}
14240	} else {
14241		cv = *v
14242	}
14243
14244	for _, value := range shape {
14245		var col types.AwsEc2SecurityGroupUserIdGroupPair
14246		destAddr := &col
14247		if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupUserIdGroupPair(&destAddr, value); err != nil {
14248			return err
14249		}
14250		col = *destAddr
14251		cv = append(cv, col)
14252
14253	}
14254	*v = cv
14255	return nil
14256}
14257
14258func awsRestjson1_deserializeDocumentAwsEc2SubnetDetails(v **types.AwsEc2SubnetDetails, value interface{}) error {
14259	if v == nil {
14260		return fmt.Errorf("unexpected nil of type %T", v)
14261	}
14262	if value == nil {
14263		return nil
14264	}
14265
14266	shape, ok := value.(map[string]interface{})
14267	if !ok {
14268		return fmt.Errorf("unexpected JSON type %v", value)
14269	}
14270
14271	var sv *types.AwsEc2SubnetDetails
14272	if *v == nil {
14273		sv = &types.AwsEc2SubnetDetails{}
14274	} else {
14275		sv = *v
14276	}
14277
14278	for key, value := range shape {
14279		switch key {
14280		case "AssignIpv6AddressOnCreation":
14281			if value != nil {
14282				jtv, ok := value.(bool)
14283				if !ok {
14284					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14285				}
14286				sv.AssignIpv6AddressOnCreation = jtv
14287			}
14288
14289		case "AvailabilityZone":
14290			if value != nil {
14291				jtv, ok := value.(string)
14292				if !ok {
14293					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14294				}
14295				sv.AvailabilityZone = ptr.String(jtv)
14296			}
14297
14298		case "AvailabilityZoneId":
14299			if value != nil {
14300				jtv, ok := value.(string)
14301				if !ok {
14302					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14303				}
14304				sv.AvailabilityZoneId = ptr.String(jtv)
14305			}
14306
14307		case "AvailableIpAddressCount":
14308			if value != nil {
14309				jtv, ok := value.(json.Number)
14310				if !ok {
14311					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14312				}
14313				i64, err := jtv.Int64()
14314				if err != nil {
14315					return err
14316				}
14317				sv.AvailableIpAddressCount = int32(i64)
14318			}
14319
14320		case "CidrBlock":
14321			if value != nil {
14322				jtv, ok := value.(string)
14323				if !ok {
14324					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14325				}
14326				sv.CidrBlock = ptr.String(jtv)
14327			}
14328
14329		case "DefaultForAz":
14330			if value != nil {
14331				jtv, ok := value.(bool)
14332				if !ok {
14333					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14334				}
14335				sv.DefaultForAz = jtv
14336			}
14337
14338		case "Ipv6CidrBlockAssociationSet":
14339			if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil {
14340				return err
14341			}
14342
14343		case "MapPublicIpOnLaunch":
14344			if value != nil {
14345				jtv, ok := value.(bool)
14346				if !ok {
14347					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14348				}
14349				sv.MapPublicIpOnLaunch = jtv
14350			}
14351
14352		case "OwnerId":
14353			if value != nil {
14354				jtv, ok := value.(string)
14355				if !ok {
14356					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14357				}
14358				sv.OwnerId = ptr.String(jtv)
14359			}
14360
14361		case "State":
14362			if value != nil {
14363				jtv, ok := value.(string)
14364				if !ok {
14365					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14366				}
14367				sv.State = ptr.String(jtv)
14368			}
14369
14370		case "SubnetArn":
14371			if value != nil {
14372				jtv, ok := value.(string)
14373				if !ok {
14374					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14375				}
14376				sv.SubnetArn = ptr.String(jtv)
14377			}
14378
14379		case "SubnetId":
14380			if value != nil {
14381				jtv, ok := value.(string)
14382				if !ok {
14383					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14384				}
14385				sv.SubnetId = ptr.String(jtv)
14386			}
14387
14388		case "VpcId":
14389			if value != nil {
14390				jtv, ok := value.(string)
14391				if !ok {
14392					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14393				}
14394				sv.VpcId = ptr.String(jtv)
14395			}
14396
14397		default:
14398			_, _ = key, value
14399
14400		}
14401	}
14402	*v = sv
14403	return nil
14404}
14405
14406func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(v **types.AwsEc2VolumeAttachment, value interface{}) error {
14407	if v == nil {
14408		return fmt.Errorf("unexpected nil of type %T", v)
14409	}
14410	if value == nil {
14411		return nil
14412	}
14413
14414	shape, ok := value.(map[string]interface{})
14415	if !ok {
14416		return fmt.Errorf("unexpected JSON type %v", value)
14417	}
14418
14419	var sv *types.AwsEc2VolumeAttachment
14420	if *v == nil {
14421		sv = &types.AwsEc2VolumeAttachment{}
14422	} else {
14423		sv = *v
14424	}
14425
14426	for key, value := range shape {
14427		switch key {
14428		case "AttachTime":
14429			if value != nil {
14430				jtv, ok := value.(string)
14431				if !ok {
14432					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14433				}
14434				sv.AttachTime = ptr.String(jtv)
14435			}
14436
14437		case "DeleteOnTermination":
14438			if value != nil {
14439				jtv, ok := value.(bool)
14440				if !ok {
14441					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14442				}
14443				sv.DeleteOnTermination = jtv
14444			}
14445
14446		case "InstanceId":
14447			if value != nil {
14448				jtv, ok := value.(string)
14449				if !ok {
14450					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14451				}
14452				sv.InstanceId = ptr.String(jtv)
14453			}
14454
14455		case "Status":
14456			if value != nil {
14457				jtv, ok := value.(string)
14458				if !ok {
14459					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14460				}
14461				sv.Status = ptr.String(jtv)
14462			}
14463
14464		default:
14465			_, _ = key, value
14466
14467		}
14468	}
14469	*v = sv
14470	return nil
14471}
14472
14473func awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(v *[]types.AwsEc2VolumeAttachment, value interface{}) error {
14474	if v == nil {
14475		return fmt.Errorf("unexpected nil of type %T", v)
14476	}
14477	if value == nil {
14478		return nil
14479	}
14480
14481	shape, ok := value.([]interface{})
14482	if !ok {
14483		return fmt.Errorf("unexpected JSON type %v", value)
14484	}
14485
14486	var cv []types.AwsEc2VolumeAttachment
14487	if *v == nil {
14488		cv = []types.AwsEc2VolumeAttachment{}
14489	} else {
14490		cv = *v
14491	}
14492
14493	for _, value := range shape {
14494		var col types.AwsEc2VolumeAttachment
14495		destAddr := &col
14496		if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachment(&destAddr, value); err != nil {
14497			return err
14498		}
14499		col = *destAddr
14500		cv = append(cv, col)
14501
14502	}
14503	*v = cv
14504	return nil
14505}
14506
14507func awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(v **types.AwsEc2VolumeDetails, value interface{}) error {
14508	if v == nil {
14509		return fmt.Errorf("unexpected nil of type %T", v)
14510	}
14511	if value == nil {
14512		return nil
14513	}
14514
14515	shape, ok := value.(map[string]interface{})
14516	if !ok {
14517		return fmt.Errorf("unexpected JSON type %v", value)
14518	}
14519
14520	var sv *types.AwsEc2VolumeDetails
14521	if *v == nil {
14522		sv = &types.AwsEc2VolumeDetails{}
14523	} else {
14524		sv = *v
14525	}
14526
14527	for key, value := range shape {
14528		switch key {
14529		case "Attachments":
14530			if err := awsRestjson1_deserializeDocumentAwsEc2VolumeAttachmentList(&sv.Attachments, value); err != nil {
14531				return err
14532			}
14533
14534		case "CreateTime":
14535			if value != nil {
14536				jtv, ok := value.(string)
14537				if !ok {
14538					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14539				}
14540				sv.CreateTime = ptr.String(jtv)
14541			}
14542
14543		case "Encrypted":
14544			if value != nil {
14545				jtv, ok := value.(bool)
14546				if !ok {
14547					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14548				}
14549				sv.Encrypted = jtv
14550			}
14551
14552		case "KmsKeyId":
14553			if value != nil {
14554				jtv, ok := value.(string)
14555				if !ok {
14556					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14557				}
14558				sv.KmsKeyId = ptr.String(jtv)
14559			}
14560
14561		case "Size":
14562			if value != nil {
14563				jtv, ok := value.(json.Number)
14564				if !ok {
14565					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14566				}
14567				i64, err := jtv.Int64()
14568				if err != nil {
14569					return err
14570				}
14571				sv.Size = int32(i64)
14572			}
14573
14574		case "SnapshotId":
14575			if value != nil {
14576				jtv, ok := value.(string)
14577				if !ok {
14578					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14579				}
14580				sv.SnapshotId = ptr.String(jtv)
14581			}
14582
14583		case "Status":
14584			if value != nil {
14585				jtv, ok := value.(string)
14586				if !ok {
14587					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14588				}
14589				sv.Status = ptr.String(jtv)
14590			}
14591
14592		default:
14593			_, _ = key, value
14594
14595		}
14596	}
14597	*v = sv
14598	return nil
14599}
14600
14601func awsRestjson1_deserializeDocumentAwsEc2VpcDetails(v **types.AwsEc2VpcDetails, value interface{}) error {
14602	if v == nil {
14603		return fmt.Errorf("unexpected nil of type %T", v)
14604	}
14605	if value == nil {
14606		return nil
14607	}
14608
14609	shape, ok := value.(map[string]interface{})
14610	if !ok {
14611		return fmt.Errorf("unexpected JSON type %v", value)
14612	}
14613
14614	var sv *types.AwsEc2VpcDetails
14615	if *v == nil {
14616		sv = &types.AwsEc2VpcDetails{}
14617	} else {
14618		sv = *v
14619	}
14620
14621	for key, value := range shape {
14622		switch key {
14623		case "CidrBlockAssociationSet":
14624			if err := awsRestjson1_deserializeDocumentCidrBlockAssociationList(&sv.CidrBlockAssociationSet, value); err != nil {
14625				return err
14626			}
14627
14628		case "DhcpOptionsId":
14629			if value != nil {
14630				jtv, ok := value.(string)
14631				if !ok {
14632					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14633				}
14634				sv.DhcpOptionsId = ptr.String(jtv)
14635			}
14636
14637		case "Ipv6CidrBlockAssociationSet":
14638			if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(&sv.Ipv6CidrBlockAssociationSet, value); err != nil {
14639				return err
14640			}
14641
14642		case "State":
14643			if value != nil {
14644				jtv, ok := value.(string)
14645				if !ok {
14646					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14647				}
14648				sv.State = ptr.String(jtv)
14649			}
14650
14651		default:
14652			_, _ = key, value
14653
14654		}
14655	}
14656	*v = sv
14657	return nil
14658}
14659
14660func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(v **types.AwsEc2VpnConnectionDetails, value interface{}) error {
14661	if v == nil {
14662		return fmt.Errorf("unexpected nil of type %T", v)
14663	}
14664	if value == nil {
14665		return nil
14666	}
14667
14668	shape, ok := value.(map[string]interface{})
14669	if !ok {
14670		return fmt.Errorf("unexpected JSON type %v", value)
14671	}
14672
14673	var sv *types.AwsEc2VpnConnectionDetails
14674	if *v == nil {
14675		sv = &types.AwsEc2VpnConnectionDetails{}
14676	} else {
14677		sv = *v
14678	}
14679
14680	for key, value := range shape {
14681		switch key {
14682		case "Category":
14683			if value != nil {
14684				jtv, ok := value.(string)
14685				if !ok {
14686					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14687				}
14688				sv.Category = ptr.String(jtv)
14689			}
14690
14691		case "CustomerGatewayConfiguration":
14692			if value != nil {
14693				jtv, ok := value.(string)
14694				if !ok {
14695					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14696				}
14697				sv.CustomerGatewayConfiguration = ptr.String(jtv)
14698			}
14699
14700		case "CustomerGatewayId":
14701			if value != nil {
14702				jtv, ok := value.(string)
14703				if !ok {
14704					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14705				}
14706				sv.CustomerGatewayId = ptr.String(jtv)
14707			}
14708
14709		case "Options":
14710			if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsDetails(&sv.Options, value); err != nil {
14711				return err
14712			}
14713
14714		case "Routes":
14715			if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesList(&sv.Routes, value); err != nil {
14716				return err
14717			}
14718
14719		case "State":
14720			if value != nil {
14721				jtv, ok := value.(string)
14722				if !ok {
14723					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14724				}
14725				sv.State = ptr.String(jtv)
14726			}
14727
14728		case "TransitGatewayId":
14729			if value != nil {
14730				jtv, ok := value.(string)
14731				if !ok {
14732					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14733				}
14734				sv.TransitGatewayId = ptr.String(jtv)
14735			}
14736
14737		case "Type":
14738			if value != nil {
14739				jtv, ok := value.(string)
14740				if !ok {
14741					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14742				}
14743				sv.Type = ptr.String(jtv)
14744			}
14745
14746		case "VgwTelemetry":
14747			if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryList(&sv.VgwTelemetry, value); err != nil {
14748				return err
14749			}
14750
14751		case "VpnConnectionId":
14752			if value != nil {
14753				jtv, ok := value.(string)
14754				if !ok {
14755					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14756				}
14757				sv.VpnConnectionId = ptr.String(jtv)
14758			}
14759
14760		case "VpnGatewayId":
14761			if value != nil {
14762				jtv, ok := value.(string)
14763				if !ok {
14764					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14765				}
14766				sv.VpnGatewayId = ptr.String(jtv)
14767			}
14768
14769		default:
14770			_, _ = key, value
14771
14772		}
14773	}
14774	*v = sv
14775	return nil
14776}
14777
14778func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsDetails(v **types.AwsEc2VpnConnectionOptionsDetails, value interface{}) error {
14779	if v == nil {
14780		return fmt.Errorf("unexpected nil of type %T", v)
14781	}
14782	if value == nil {
14783		return nil
14784	}
14785
14786	shape, ok := value.(map[string]interface{})
14787	if !ok {
14788		return fmt.Errorf("unexpected JSON type %v", value)
14789	}
14790
14791	var sv *types.AwsEc2VpnConnectionOptionsDetails
14792	if *v == nil {
14793		sv = &types.AwsEc2VpnConnectionOptionsDetails{}
14794	} else {
14795		sv = *v
14796	}
14797
14798	for key, value := range shape {
14799		switch key {
14800		case "StaticRoutesOnly":
14801			if value != nil {
14802				jtv, ok := value.(bool)
14803				if !ok {
14804					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
14805				}
14806				sv.StaticRoutesOnly = jtv
14807			}
14808
14809		case "TunnelOptions":
14810			if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(&sv.TunnelOptions, value); err != nil {
14811				return err
14812			}
14813
14814		default:
14815			_, _ = key, value
14816
14817		}
14818	}
14819	*v = sv
14820	return nil
14821}
14822
14823func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(v **types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value interface{}) error {
14824	if v == nil {
14825		return fmt.Errorf("unexpected nil of type %T", v)
14826	}
14827	if value == nil {
14828		return nil
14829	}
14830
14831	shape, ok := value.(map[string]interface{})
14832	if !ok {
14833		return fmt.Errorf("unexpected JSON type %v", value)
14834	}
14835
14836	var sv *types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails
14837	if *v == nil {
14838		sv = &types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails{}
14839	} else {
14840		sv = *v
14841	}
14842
14843	for key, value := range shape {
14844		switch key {
14845		case "DpdTimeoutSeconds":
14846			if value != nil {
14847				jtv, ok := value.(json.Number)
14848				if !ok {
14849					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14850				}
14851				i64, err := jtv.Int64()
14852				if err != nil {
14853					return err
14854				}
14855				sv.DpdTimeoutSeconds = int32(i64)
14856			}
14857
14858		case "IkeVersions":
14859			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.IkeVersions, value); err != nil {
14860				return err
14861			}
14862
14863		case "OutsideIpAddress":
14864			if value != nil {
14865				jtv, ok := value.(string)
14866				if !ok {
14867					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14868				}
14869				sv.OutsideIpAddress = ptr.String(jtv)
14870			}
14871
14872		case "Phase1DhGroupNumbers":
14873			if err := awsRestjson1_deserializeDocumentIntegerList(&sv.Phase1DhGroupNumbers, value); err != nil {
14874				return err
14875			}
14876
14877		case "Phase1EncryptionAlgorithms":
14878			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase1EncryptionAlgorithms, value); err != nil {
14879				return err
14880			}
14881
14882		case "Phase1IntegrityAlgorithms":
14883			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase1IntegrityAlgorithms, value); err != nil {
14884				return err
14885			}
14886
14887		case "Phase1LifetimeSeconds":
14888			if value != nil {
14889				jtv, ok := value.(json.Number)
14890				if !ok {
14891					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14892				}
14893				i64, err := jtv.Int64()
14894				if err != nil {
14895					return err
14896				}
14897				sv.Phase1LifetimeSeconds = int32(i64)
14898			}
14899
14900		case "Phase2DhGroupNumbers":
14901			if err := awsRestjson1_deserializeDocumentIntegerList(&sv.Phase2DhGroupNumbers, value); err != nil {
14902				return err
14903			}
14904
14905		case "Phase2EncryptionAlgorithms":
14906			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase2EncryptionAlgorithms, value); err != nil {
14907				return err
14908			}
14909
14910		case "Phase2IntegrityAlgorithms":
14911			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Phase2IntegrityAlgorithms, value); err != nil {
14912				return err
14913			}
14914
14915		case "Phase2LifetimeSeconds":
14916			if value != nil {
14917				jtv, ok := value.(json.Number)
14918				if !ok {
14919					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14920				}
14921				i64, err := jtv.Int64()
14922				if err != nil {
14923					return err
14924				}
14925				sv.Phase2LifetimeSeconds = int32(i64)
14926			}
14927
14928		case "PreSharedKey":
14929			if value != nil {
14930				jtv, ok := value.(string)
14931				if !ok {
14932					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14933				}
14934				sv.PreSharedKey = ptr.String(jtv)
14935			}
14936
14937		case "RekeyFuzzPercentage":
14938			if value != nil {
14939				jtv, ok := value.(json.Number)
14940				if !ok {
14941					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14942				}
14943				i64, err := jtv.Int64()
14944				if err != nil {
14945					return err
14946				}
14947				sv.RekeyFuzzPercentage = int32(i64)
14948			}
14949
14950		case "RekeyMarginTimeSeconds":
14951			if value != nil {
14952				jtv, ok := value.(json.Number)
14953				if !ok {
14954					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14955				}
14956				i64, err := jtv.Int64()
14957				if err != nil {
14958					return err
14959				}
14960				sv.RekeyMarginTimeSeconds = int32(i64)
14961			}
14962
14963		case "ReplayWindowSize":
14964			if value != nil {
14965				jtv, ok := value.(json.Number)
14966				if !ok {
14967					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
14968				}
14969				i64, err := jtv.Int64()
14970				if err != nil {
14971					return err
14972				}
14973				sv.ReplayWindowSize = int32(i64)
14974			}
14975
14976		case "TunnelInsideCidr":
14977			if value != nil {
14978				jtv, ok := value.(string)
14979				if !ok {
14980					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
14981				}
14982				sv.TunnelInsideCidr = ptr.String(jtv)
14983			}
14984
14985		default:
14986			_, _ = key, value
14987
14988		}
14989	}
14990	*v = sv
14991	return nil
14992}
14993
14994func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v *[]types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value interface{}) error {
14995	if v == nil {
14996		return fmt.Errorf("unexpected nil of type %T", v)
14997	}
14998	if value == nil {
14999		return nil
15000	}
15001
15002	shape, ok := value.([]interface{})
15003	if !ok {
15004		return fmt.Errorf("unexpected JSON type %v", value)
15005	}
15006
15007	var cv []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails
15008	if *v == nil {
15009		cv = []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails{}
15010	} else {
15011		cv = *v
15012	}
15013
15014	for _, value := range shape {
15015		var col types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails
15016		destAddr := &col
15017		if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(&destAddr, value); err != nil {
15018			return err
15019		}
15020		col = *destAddr
15021		cv = append(cv, col)
15022
15023	}
15024	*v = cv
15025	return nil
15026}
15027
15028func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesDetails(v **types.AwsEc2VpnConnectionRoutesDetails, value interface{}) error {
15029	if v == nil {
15030		return fmt.Errorf("unexpected nil of type %T", v)
15031	}
15032	if value == nil {
15033		return nil
15034	}
15035
15036	shape, ok := value.(map[string]interface{})
15037	if !ok {
15038		return fmt.Errorf("unexpected JSON type %v", value)
15039	}
15040
15041	var sv *types.AwsEc2VpnConnectionRoutesDetails
15042	if *v == nil {
15043		sv = &types.AwsEc2VpnConnectionRoutesDetails{}
15044	} else {
15045		sv = *v
15046	}
15047
15048	for key, value := range shape {
15049		switch key {
15050		case "DestinationCidrBlock":
15051			if value != nil {
15052				jtv, ok := value.(string)
15053				if !ok {
15054					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15055				}
15056				sv.DestinationCidrBlock = ptr.String(jtv)
15057			}
15058
15059		case "State":
15060			if value != nil {
15061				jtv, ok := value.(string)
15062				if !ok {
15063					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15064				}
15065				sv.State = ptr.String(jtv)
15066			}
15067
15068		default:
15069			_, _ = key, value
15070
15071		}
15072	}
15073	*v = sv
15074	return nil
15075}
15076
15077func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesList(v *[]types.AwsEc2VpnConnectionRoutesDetails, value interface{}) error {
15078	if v == nil {
15079		return fmt.Errorf("unexpected nil of type %T", v)
15080	}
15081	if value == nil {
15082		return nil
15083	}
15084
15085	shape, ok := value.([]interface{})
15086	if !ok {
15087		return fmt.Errorf("unexpected JSON type %v", value)
15088	}
15089
15090	var cv []types.AwsEc2VpnConnectionRoutesDetails
15091	if *v == nil {
15092		cv = []types.AwsEc2VpnConnectionRoutesDetails{}
15093	} else {
15094		cv = *v
15095	}
15096
15097	for _, value := range shape {
15098		var col types.AwsEc2VpnConnectionRoutesDetails
15099		destAddr := &col
15100		if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionRoutesDetails(&destAddr, value); err != nil {
15101			return err
15102		}
15103		col = *destAddr
15104		cv = append(cv, col)
15105
15106	}
15107	*v = cv
15108	return nil
15109}
15110
15111func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(v **types.AwsEc2VpnConnectionVgwTelemetryDetails, value interface{}) error {
15112	if v == nil {
15113		return fmt.Errorf("unexpected nil of type %T", v)
15114	}
15115	if value == nil {
15116		return nil
15117	}
15118
15119	shape, ok := value.(map[string]interface{})
15120	if !ok {
15121		return fmt.Errorf("unexpected JSON type %v", value)
15122	}
15123
15124	var sv *types.AwsEc2VpnConnectionVgwTelemetryDetails
15125	if *v == nil {
15126		sv = &types.AwsEc2VpnConnectionVgwTelemetryDetails{}
15127	} else {
15128		sv = *v
15129	}
15130
15131	for key, value := range shape {
15132		switch key {
15133		case "AcceptedRouteCount":
15134			if value != nil {
15135				jtv, ok := value.(json.Number)
15136				if !ok {
15137					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15138				}
15139				i64, err := jtv.Int64()
15140				if err != nil {
15141					return err
15142				}
15143				sv.AcceptedRouteCount = int32(i64)
15144			}
15145
15146		case "CertificateArn":
15147			if value != nil {
15148				jtv, ok := value.(string)
15149				if !ok {
15150					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15151				}
15152				sv.CertificateArn = ptr.String(jtv)
15153			}
15154
15155		case "LastStatusChange":
15156			if value != nil {
15157				jtv, ok := value.(string)
15158				if !ok {
15159					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15160				}
15161				sv.LastStatusChange = ptr.String(jtv)
15162			}
15163
15164		case "OutsideIpAddress":
15165			if value != nil {
15166				jtv, ok := value.(string)
15167				if !ok {
15168					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15169				}
15170				sv.OutsideIpAddress = ptr.String(jtv)
15171			}
15172
15173		case "Status":
15174			if value != nil {
15175				jtv, ok := value.(string)
15176				if !ok {
15177					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15178				}
15179				sv.Status = ptr.String(jtv)
15180			}
15181
15182		case "StatusMessage":
15183			if value != nil {
15184				jtv, ok := value.(string)
15185				if !ok {
15186					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15187				}
15188				sv.StatusMessage = ptr.String(jtv)
15189			}
15190
15191		default:
15192			_, _ = key, value
15193
15194		}
15195	}
15196	*v = sv
15197	return nil
15198}
15199
15200func awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v *[]types.AwsEc2VpnConnectionVgwTelemetryDetails, value interface{}) error {
15201	if v == nil {
15202		return fmt.Errorf("unexpected nil of type %T", v)
15203	}
15204	if value == nil {
15205		return nil
15206	}
15207
15208	shape, ok := value.([]interface{})
15209	if !ok {
15210		return fmt.Errorf("unexpected JSON type %v", value)
15211	}
15212
15213	var cv []types.AwsEc2VpnConnectionVgwTelemetryDetails
15214	if *v == nil {
15215		cv = []types.AwsEc2VpnConnectionVgwTelemetryDetails{}
15216	} else {
15217		cv = *v
15218	}
15219
15220	for _, value := range shape {
15221		var col types.AwsEc2VpnConnectionVgwTelemetryDetails
15222		destAddr := &col
15223		if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(&destAddr, value); err != nil {
15224			return err
15225		}
15226		col = *destAddr
15227		cv = append(cv, col)
15228
15229	}
15230	*v = cv
15231	return nil
15232}
15233
15234func awsRestjson1_deserializeDocumentAwsEcrContainerImageDetails(v **types.AwsEcrContainerImageDetails, value interface{}) error {
15235	if v == nil {
15236		return fmt.Errorf("unexpected nil of type %T", v)
15237	}
15238	if value == nil {
15239		return nil
15240	}
15241
15242	shape, ok := value.(map[string]interface{})
15243	if !ok {
15244		return fmt.Errorf("unexpected JSON type %v", value)
15245	}
15246
15247	var sv *types.AwsEcrContainerImageDetails
15248	if *v == nil {
15249		sv = &types.AwsEcrContainerImageDetails{}
15250	} else {
15251		sv = *v
15252	}
15253
15254	for key, value := range shape {
15255		switch key {
15256		case "Architecture":
15257			if value != nil {
15258				jtv, ok := value.(string)
15259				if !ok {
15260					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15261				}
15262				sv.Architecture = ptr.String(jtv)
15263			}
15264
15265		case "ImageDigest":
15266			if value != nil {
15267				jtv, ok := value.(string)
15268				if !ok {
15269					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15270				}
15271				sv.ImageDigest = ptr.String(jtv)
15272			}
15273
15274		case "ImagePublishedAt":
15275			if value != nil {
15276				jtv, ok := value.(string)
15277				if !ok {
15278					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15279				}
15280				sv.ImagePublishedAt = ptr.String(jtv)
15281			}
15282
15283		case "ImageTags":
15284			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.ImageTags, value); err != nil {
15285				return err
15286			}
15287
15288		case "RegistryId":
15289			if value != nil {
15290				jtv, ok := value.(string)
15291				if !ok {
15292					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15293				}
15294				sv.RegistryId = ptr.String(jtv)
15295			}
15296
15297		case "RepositoryName":
15298			if value != nil {
15299				jtv, ok := value.(string)
15300				if !ok {
15301					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15302				}
15303				sv.RepositoryName = ptr.String(jtv)
15304			}
15305
15306		default:
15307			_, _ = key, value
15308
15309		}
15310	}
15311	*v = sv
15312	return nil
15313}
15314
15315func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(v **types.AwsEcsClusterClusterSettingsDetails, value interface{}) error {
15316	if v == nil {
15317		return fmt.Errorf("unexpected nil of type %T", v)
15318	}
15319	if value == nil {
15320		return nil
15321	}
15322
15323	shape, ok := value.(map[string]interface{})
15324	if !ok {
15325		return fmt.Errorf("unexpected JSON type %v", value)
15326	}
15327
15328	var sv *types.AwsEcsClusterClusterSettingsDetails
15329	if *v == nil {
15330		sv = &types.AwsEcsClusterClusterSettingsDetails{}
15331	} else {
15332		sv = *v
15333	}
15334
15335	for key, value := range shape {
15336		switch key {
15337		case "Name":
15338			if value != nil {
15339				jtv, ok := value.(string)
15340				if !ok {
15341					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15342				}
15343				sv.Name = ptr.String(jtv)
15344			}
15345
15346		case "Value":
15347			if value != nil {
15348				jtv, ok := value.(string)
15349				if !ok {
15350					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15351				}
15352				sv.Value = ptr.String(jtv)
15353			}
15354
15355		default:
15356			_, _ = key, value
15357
15358		}
15359	}
15360	*v = sv
15361	return nil
15362}
15363
15364func awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(v *[]types.AwsEcsClusterClusterSettingsDetails, value interface{}) error {
15365	if v == nil {
15366		return fmt.Errorf("unexpected nil of type %T", v)
15367	}
15368	if value == nil {
15369		return nil
15370	}
15371
15372	shape, ok := value.([]interface{})
15373	if !ok {
15374		return fmt.Errorf("unexpected JSON type %v", value)
15375	}
15376
15377	var cv []types.AwsEcsClusterClusterSettingsDetails
15378	if *v == nil {
15379		cv = []types.AwsEcsClusterClusterSettingsDetails{}
15380	} else {
15381		cv = *v
15382	}
15383
15384	for _, value := range shape {
15385		var col types.AwsEcsClusterClusterSettingsDetails
15386		destAddr := &col
15387		if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsDetails(&destAddr, value); err != nil {
15388			return err
15389		}
15390		col = *destAddr
15391		cv = append(cv, col)
15392
15393	}
15394	*v = cv
15395	return nil
15396}
15397
15398func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(v **types.AwsEcsClusterConfigurationDetails, value interface{}) error {
15399	if v == nil {
15400		return fmt.Errorf("unexpected nil of type %T", v)
15401	}
15402	if value == nil {
15403		return nil
15404	}
15405
15406	shape, ok := value.(map[string]interface{})
15407	if !ok {
15408		return fmt.Errorf("unexpected JSON type %v", value)
15409	}
15410
15411	var sv *types.AwsEcsClusterConfigurationDetails
15412	if *v == nil {
15413		sv = &types.AwsEcsClusterConfigurationDetails{}
15414	} else {
15415		sv = *v
15416	}
15417
15418	for key, value := range shape {
15419		switch key {
15420		case "ExecuteCommandConfiguration":
15421			if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(&sv.ExecuteCommandConfiguration, value); err != nil {
15422				return err
15423			}
15424
15425		default:
15426			_, _ = key, value
15427
15428		}
15429	}
15430	*v = sv
15431	return nil
15432}
15433
15434func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value interface{}) error {
15435	if v == nil {
15436		return fmt.Errorf("unexpected nil of type %T", v)
15437	}
15438	if value == nil {
15439		return nil
15440	}
15441
15442	shape, ok := value.(map[string]interface{})
15443	if !ok {
15444		return fmt.Errorf("unexpected JSON type %v", value)
15445	}
15446
15447	var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails
15448	if *v == nil {
15449		sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails{}
15450	} else {
15451		sv = *v
15452	}
15453
15454	for key, value := range shape {
15455		switch key {
15456		case "KmsKeyId":
15457			if value != nil {
15458				jtv, ok := value.(string)
15459				if !ok {
15460					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15461				}
15462				sv.KmsKeyId = ptr.String(jtv)
15463			}
15464
15465		case "LogConfiguration":
15466			if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(&sv.LogConfiguration, value); err != nil {
15467				return err
15468			}
15469
15470		case "Logging":
15471			if value != nil {
15472				jtv, ok := value.(string)
15473				if !ok {
15474					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15475				}
15476				sv.Logging = ptr.String(jtv)
15477			}
15478
15479		default:
15480			_, _ = key, value
15481
15482		}
15483	}
15484	*v = sv
15485	return nil
15486}
15487
15488func awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v **types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value interface{}) error {
15489	if v == nil {
15490		return fmt.Errorf("unexpected nil of type %T", v)
15491	}
15492	if value == nil {
15493		return nil
15494	}
15495
15496	shape, ok := value.(map[string]interface{})
15497	if !ok {
15498		return fmt.Errorf("unexpected JSON type %v", value)
15499	}
15500
15501	var sv *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails
15502	if *v == nil {
15503		sv = &types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails{}
15504	} else {
15505		sv = *v
15506	}
15507
15508	for key, value := range shape {
15509		switch key {
15510		case "CloudWatchEncryptionEnabled":
15511			if value != nil {
15512				jtv, ok := value.(bool)
15513				if !ok {
15514					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
15515				}
15516				sv.CloudWatchEncryptionEnabled = jtv
15517			}
15518
15519		case "CloudWatchLogGroupName":
15520			if value != nil {
15521				jtv, ok := value.(string)
15522				if !ok {
15523					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15524				}
15525				sv.CloudWatchLogGroupName = ptr.String(jtv)
15526			}
15527
15528		case "S3BucketName":
15529			if value != nil {
15530				jtv, ok := value.(string)
15531				if !ok {
15532					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15533				}
15534				sv.S3BucketName = ptr.String(jtv)
15535			}
15536
15537		case "S3EncryptionEnabled":
15538			if value != nil {
15539				jtv, ok := value.(bool)
15540				if !ok {
15541					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
15542				}
15543				sv.S3EncryptionEnabled = jtv
15544			}
15545
15546		case "S3KeyPrefix":
15547			if value != nil {
15548				jtv, ok := value.(string)
15549				if !ok {
15550					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15551				}
15552				sv.S3KeyPrefix = ptr.String(jtv)
15553			}
15554
15555		default:
15556			_, _ = key, value
15557
15558		}
15559	}
15560	*v = sv
15561	return nil
15562}
15563
15564func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(v **types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error {
15565	if v == nil {
15566		return fmt.Errorf("unexpected nil of type %T", v)
15567	}
15568	if value == nil {
15569		return nil
15570	}
15571
15572	shape, ok := value.(map[string]interface{})
15573	if !ok {
15574		return fmt.Errorf("unexpected JSON type %v", value)
15575	}
15576
15577	var sv *types.AwsEcsClusterDefaultCapacityProviderStrategyDetails
15578	if *v == nil {
15579		sv = &types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{}
15580	} else {
15581		sv = *v
15582	}
15583
15584	for key, value := range shape {
15585		switch key {
15586		case "Base":
15587			if value != nil {
15588				jtv, ok := value.(json.Number)
15589				if !ok {
15590					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15591				}
15592				i64, err := jtv.Int64()
15593				if err != nil {
15594					return err
15595				}
15596				sv.Base = int32(i64)
15597			}
15598
15599		case "CapacityProvider":
15600			if value != nil {
15601				jtv, ok := value.(string)
15602				if !ok {
15603					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15604				}
15605				sv.CapacityProvider = ptr.String(jtv)
15606			}
15607
15608		case "Weight":
15609			if value != nil {
15610				jtv, ok := value.(json.Number)
15611				if !ok {
15612					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15613				}
15614				i64, err := jtv.Int64()
15615				if err != nil {
15616					return err
15617				}
15618				sv.Weight = int32(i64)
15619			}
15620
15621		default:
15622			_, _ = key, value
15623
15624		}
15625	}
15626	*v = sv
15627	return nil
15628}
15629
15630func awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(v *[]types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value interface{}) error {
15631	if v == nil {
15632		return fmt.Errorf("unexpected nil of type %T", v)
15633	}
15634	if value == nil {
15635		return nil
15636	}
15637
15638	shape, ok := value.([]interface{})
15639	if !ok {
15640		return fmt.Errorf("unexpected JSON type %v", value)
15641	}
15642
15643	var cv []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails
15644	if *v == nil {
15645		cv = []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails{}
15646	} else {
15647		cv = *v
15648	}
15649
15650	for _, value := range shape {
15651		var col types.AwsEcsClusterDefaultCapacityProviderStrategyDetails
15652		destAddr := &col
15653		if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(&destAddr, value); err != nil {
15654			return err
15655		}
15656		col = *destAddr
15657		cv = append(cv, col)
15658
15659	}
15660	*v = cv
15661	return nil
15662}
15663
15664func awsRestjson1_deserializeDocumentAwsEcsClusterDetails(v **types.AwsEcsClusterDetails, value interface{}) error {
15665	if v == nil {
15666		return fmt.Errorf("unexpected nil of type %T", v)
15667	}
15668	if value == nil {
15669		return nil
15670	}
15671
15672	shape, ok := value.(map[string]interface{})
15673	if !ok {
15674		return fmt.Errorf("unexpected JSON type %v", value)
15675	}
15676
15677	var sv *types.AwsEcsClusterDetails
15678	if *v == nil {
15679		sv = &types.AwsEcsClusterDetails{}
15680	} else {
15681		sv = *v
15682	}
15683
15684	for key, value := range shape {
15685		switch key {
15686		case "CapacityProviders":
15687			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CapacityProviders, value); err != nil {
15688				return err
15689			}
15690
15691		case "ClusterSettings":
15692			if err := awsRestjson1_deserializeDocumentAwsEcsClusterClusterSettingsList(&sv.ClusterSettings, value); err != nil {
15693				return err
15694			}
15695
15696		case "Configuration":
15697			if err := awsRestjson1_deserializeDocumentAwsEcsClusterConfigurationDetails(&sv.Configuration, value); err != nil {
15698				return err
15699			}
15700
15701		case "DefaultCapacityProviderStrategy":
15702			if err := awsRestjson1_deserializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(&sv.DefaultCapacityProviderStrategy, value); err != nil {
15703				return err
15704			}
15705
15706		default:
15707			_, _ = key, value
15708
15709		}
15710	}
15711	*v = sv
15712	return nil
15713}
15714
15715func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(v **types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error {
15716	if v == nil {
15717		return fmt.Errorf("unexpected nil of type %T", v)
15718	}
15719	if value == nil {
15720		return nil
15721	}
15722
15723	shape, ok := value.(map[string]interface{})
15724	if !ok {
15725		return fmt.Errorf("unexpected JSON type %v", value)
15726	}
15727
15728	var sv *types.AwsEcsServiceCapacityProviderStrategyDetails
15729	if *v == nil {
15730		sv = &types.AwsEcsServiceCapacityProviderStrategyDetails{}
15731	} else {
15732		sv = *v
15733	}
15734
15735	for key, value := range shape {
15736		switch key {
15737		case "Base":
15738			if value != nil {
15739				jtv, ok := value.(json.Number)
15740				if !ok {
15741					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15742				}
15743				i64, err := jtv.Int64()
15744				if err != nil {
15745					return err
15746				}
15747				sv.Base = int32(i64)
15748			}
15749
15750		case "CapacityProvider":
15751			if value != nil {
15752				jtv, ok := value.(string)
15753				if !ok {
15754					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15755				}
15756				sv.CapacityProvider = ptr.String(jtv)
15757			}
15758
15759		case "Weight":
15760			if value != nil {
15761				jtv, ok := value.(json.Number)
15762				if !ok {
15763					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15764				}
15765				i64, err := jtv.Int64()
15766				if err != nil {
15767					return err
15768				}
15769				sv.Weight = int32(i64)
15770			}
15771
15772		default:
15773			_, _ = key, value
15774
15775		}
15776	}
15777	*v = sv
15778	return nil
15779}
15780
15781func awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(v *[]types.AwsEcsServiceCapacityProviderStrategyDetails, value interface{}) error {
15782	if v == nil {
15783		return fmt.Errorf("unexpected nil of type %T", v)
15784	}
15785	if value == nil {
15786		return nil
15787	}
15788
15789	shape, ok := value.([]interface{})
15790	if !ok {
15791		return fmt.Errorf("unexpected JSON type %v", value)
15792	}
15793
15794	var cv []types.AwsEcsServiceCapacityProviderStrategyDetails
15795	if *v == nil {
15796		cv = []types.AwsEcsServiceCapacityProviderStrategyDetails{}
15797	} else {
15798		cv = *v
15799	}
15800
15801	for _, value := range shape {
15802		var col types.AwsEcsServiceCapacityProviderStrategyDetails
15803		destAddr := &col
15804		if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(&destAddr, value); err != nil {
15805			return err
15806		}
15807		col = *destAddr
15808		cv = append(cv, col)
15809
15810	}
15811	*v = cv
15812	return nil
15813}
15814
15815func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(v **types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails, value interface{}) error {
15816	if v == nil {
15817		return fmt.Errorf("unexpected nil of type %T", v)
15818	}
15819	if value == nil {
15820		return nil
15821	}
15822
15823	shape, ok := value.(map[string]interface{})
15824	if !ok {
15825		return fmt.Errorf("unexpected JSON type %v", value)
15826	}
15827
15828	var sv *types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails
15829	if *v == nil {
15830		sv = &types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails{}
15831	} else {
15832		sv = *v
15833	}
15834
15835	for key, value := range shape {
15836		switch key {
15837		case "Enable":
15838			if value != nil {
15839				jtv, ok := value.(bool)
15840				if !ok {
15841					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
15842				}
15843				sv.Enable = jtv
15844			}
15845
15846		case "Rollback":
15847			if value != nil {
15848				jtv, ok := value.(bool)
15849				if !ok {
15850					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
15851				}
15852				sv.Rollback = jtv
15853			}
15854
15855		default:
15856			_, _ = key, value
15857
15858		}
15859	}
15860	*v = sv
15861	return nil
15862}
15863
15864func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(v **types.AwsEcsServiceDeploymentConfigurationDetails, value interface{}) error {
15865	if v == nil {
15866		return fmt.Errorf("unexpected nil of type %T", v)
15867	}
15868	if value == nil {
15869		return nil
15870	}
15871
15872	shape, ok := value.(map[string]interface{})
15873	if !ok {
15874		return fmt.Errorf("unexpected JSON type %v", value)
15875	}
15876
15877	var sv *types.AwsEcsServiceDeploymentConfigurationDetails
15878	if *v == nil {
15879		sv = &types.AwsEcsServiceDeploymentConfigurationDetails{}
15880	} else {
15881		sv = *v
15882	}
15883
15884	for key, value := range shape {
15885		switch key {
15886		case "DeploymentCircuitBreaker":
15887			if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(&sv.DeploymentCircuitBreaker, value); err != nil {
15888				return err
15889			}
15890
15891		case "MaximumPercent":
15892			if value != nil {
15893				jtv, ok := value.(json.Number)
15894				if !ok {
15895					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15896				}
15897				i64, err := jtv.Int64()
15898				if err != nil {
15899					return err
15900				}
15901				sv.MaximumPercent = int32(i64)
15902			}
15903
15904		case "MinimumHealthyPercent":
15905			if value != nil {
15906				jtv, ok := value.(json.Number)
15907				if !ok {
15908					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
15909				}
15910				i64, err := jtv.Int64()
15911				if err != nil {
15912					return err
15913				}
15914				sv.MinimumHealthyPercent = int32(i64)
15915			}
15916
15917		default:
15918			_, _ = key, value
15919
15920		}
15921	}
15922	*v = sv
15923	return nil
15924}
15925
15926func awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(v **types.AwsEcsServiceDeploymentControllerDetails, value interface{}) error {
15927	if v == nil {
15928		return fmt.Errorf("unexpected nil of type %T", v)
15929	}
15930	if value == nil {
15931		return nil
15932	}
15933
15934	shape, ok := value.(map[string]interface{})
15935	if !ok {
15936		return fmt.Errorf("unexpected JSON type %v", value)
15937	}
15938
15939	var sv *types.AwsEcsServiceDeploymentControllerDetails
15940	if *v == nil {
15941		sv = &types.AwsEcsServiceDeploymentControllerDetails{}
15942	} else {
15943		sv = *v
15944	}
15945
15946	for key, value := range shape {
15947		switch key {
15948		case "Type":
15949			if value != nil {
15950				jtv, ok := value.(string)
15951				if !ok {
15952					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15953				}
15954				sv.Type = ptr.String(jtv)
15955			}
15956
15957		default:
15958			_, _ = key, value
15959
15960		}
15961	}
15962	*v = sv
15963	return nil
15964}
15965
15966func awsRestjson1_deserializeDocumentAwsEcsServiceDetails(v **types.AwsEcsServiceDetails, value interface{}) error {
15967	if v == nil {
15968		return fmt.Errorf("unexpected nil of type %T", v)
15969	}
15970	if value == nil {
15971		return nil
15972	}
15973
15974	shape, ok := value.(map[string]interface{})
15975	if !ok {
15976		return fmt.Errorf("unexpected JSON type %v", value)
15977	}
15978
15979	var sv *types.AwsEcsServiceDetails
15980	if *v == nil {
15981		sv = &types.AwsEcsServiceDetails{}
15982	} else {
15983		sv = *v
15984	}
15985
15986	for key, value := range shape {
15987		switch key {
15988		case "CapacityProviderStrategy":
15989			if err := awsRestjson1_deserializeDocumentAwsEcsServiceCapacityProviderStrategyList(&sv.CapacityProviderStrategy, value); err != nil {
15990				return err
15991			}
15992
15993		case "Cluster":
15994			if value != nil {
15995				jtv, ok := value.(string)
15996				if !ok {
15997					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
15998				}
15999				sv.Cluster = ptr.String(jtv)
16000			}
16001
16002		case "DeploymentConfiguration":
16003			if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentConfigurationDetails(&sv.DeploymentConfiguration, value); err != nil {
16004				return err
16005			}
16006
16007		case "DeploymentController":
16008			if err := awsRestjson1_deserializeDocumentAwsEcsServiceDeploymentControllerDetails(&sv.DeploymentController, value); err != nil {
16009				return err
16010			}
16011
16012		case "DesiredCount":
16013			if value != nil {
16014				jtv, ok := value.(json.Number)
16015				if !ok {
16016					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16017				}
16018				i64, err := jtv.Int64()
16019				if err != nil {
16020					return err
16021				}
16022				sv.DesiredCount = int32(i64)
16023			}
16024
16025		case "EnableEcsManagedTags":
16026			if value != nil {
16027				jtv, ok := value.(bool)
16028				if !ok {
16029					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16030				}
16031				sv.EnableEcsManagedTags = jtv
16032			}
16033
16034		case "EnableExecuteCommand":
16035			if value != nil {
16036				jtv, ok := value.(bool)
16037				if !ok {
16038					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16039				}
16040				sv.EnableExecuteCommand = jtv
16041			}
16042
16043		case "HealthCheckGracePeriodSeconds":
16044			if value != nil {
16045				jtv, ok := value.(json.Number)
16046				if !ok {
16047					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16048				}
16049				i64, err := jtv.Int64()
16050				if err != nil {
16051					return err
16052				}
16053				sv.HealthCheckGracePeriodSeconds = int32(i64)
16054			}
16055
16056		case "LaunchType":
16057			if value != nil {
16058				jtv, ok := value.(string)
16059				if !ok {
16060					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16061				}
16062				sv.LaunchType = ptr.String(jtv)
16063			}
16064
16065		case "LoadBalancers":
16066			if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(&sv.LoadBalancers, value); err != nil {
16067				return err
16068			}
16069
16070		case "Name":
16071			if value != nil {
16072				jtv, ok := value.(string)
16073				if !ok {
16074					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16075				}
16076				sv.Name = ptr.String(jtv)
16077			}
16078
16079		case "NetworkConfiguration":
16080			if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(&sv.NetworkConfiguration, value); err != nil {
16081				return err
16082			}
16083
16084		case "PlacementConstraints":
16085			if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(&sv.PlacementConstraints, value); err != nil {
16086				return err
16087			}
16088
16089		case "PlacementStrategies":
16090			if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(&sv.PlacementStrategies, value); err != nil {
16091				return err
16092			}
16093
16094		case "PlatformVersion":
16095			if value != nil {
16096				jtv, ok := value.(string)
16097				if !ok {
16098					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16099				}
16100				sv.PlatformVersion = ptr.String(jtv)
16101			}
16102
16103		case "PropagateTags":
16104			if value != nil {
16105				jtv, ok := value.(string)
16106				if !ok {
16107					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16108				}
16109				sv.PropagateTags = ptr.String(jtv)
16110			}
16111
16112		case "Role":
16113			if value != nil {
16114				jtv, ok := value.(string)
16115				if !ok {
16116					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16117				}
16118				sv.Role = ptr.String(jtv)
16119			}
16120
16121		case "SchedulingStrategy":
16122			if value != nil {
16123				jtv, ok := value.(string)
16124				if !ok {
16125					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16126				}
16127				sv.SchedulingStrategy = ptr.String(jtv)
16128			}
16129
16130		case "ServiceArn":
16131			if value != nil {
16132				jtv, ok := value.(string)
16133				if !ok {
16134					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16135				}
16136				sv.ServiceArn = ptr.String(jtv)
16137			}
16138
16139		case "ServiceName":
16140			if value != nil {
16141				jtv, ok := value.(string)
16142				if !ok {
16143					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16144				}
16145				sv.ServiceName = ptr.String(jtv)
16146			}
16147
16148		case "ServiceRegistries":
16149			if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(&sv.ServiceRegistries, value); err != nil {
16150				return err
16151			}
16152
16153		case "TaskDefinition":
16154			if value != nil {
16155				jtv, ok := value.(string)
16156				if !ok {
16157					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16158				}
16159				sv.TaskDefinition = ptr.String(jtv)
16160			}
16161
16162		default:
16163			_, _ = key, value
16164
16165		}
16166	}
16167	*v = sv
16168	return nil
16169}
16170
16171func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(v **types.AwsEcsServiceLoadBalancersDetails, value interface{}) error {
16172	if v == nil {
16173		return fmt.Errorf("unexpected nil of type %T", v)
16174	}
16175	if value == nil {
16176		return nil
16177	}
16178
16179	shape, ok := value.(map[string]interface{})
16180	if !ok {
16181		return fmt.Errorf("unexpected JSON type %v", value)
16182	}
16183
16184	var sv *types.AwsEcsServiceLoadBalancersDetails
16185	if *v == nil {
16186		sv = &types.AwsEcsServiceLoadBalancersDetails{}
16187	} else {
16188		sv = *v
16189	}
16190
16191	for key, value := range shape {
16192		switch key {
16193		case "ContainerName":
16194			if value != nil {
16195				jtv, ok := value.(string)
16196				if !ok {
16197					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16198				}
16199				sv.ContainerName = ptr.String(jtv)
16200			}
16201
16202		case "ContainerPort":
16203			if value != nil {
16204				jtv, ok := value.(json.Number)
16205				if !ok {
16206					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16207				}
16208				i64, err := jtv.Int64()
16209				if err != nil {
16210					return err
16211				}
16212				sv.ContainerPort = int32(i64)
16213			}
16214
16215		case "LoadBalancerName":
16216			if value != nil {
16217				jtv, ok := value.(string)
16218				if !ok {
16219					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16220				}
16221				sv.LoadBalancerName = ptr.String(jtv)
16222			}
16223
16224		case "TargetGroupArn":
16225			if value != nil {
16226				jtv, ok := value.(string)
16227				if !ok {
16228					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16229				}
16230				sv.TargetGroupArn = ptr.String(jtv)
16231			}
16232
16233		default:
16234			_, _ = key, value
16235
16236		}
16237	}
16238	*v = sv
16239	return nil
16240}
16241
16242func awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersList(v *[]types.AwsEcsServiceLoadBalancersDetails, value interface{}) error {
16243	if v == nil {
16244		return fmt.Errorf("unexpected nil of type %T", v)
16245	}
16246	if value == nil {
16247		return nil
16248	}
16249
16250	shape, ok := value.([]interface{})
16251	if !ok {
16252		return fmt.Errorf("unexpected JSON type %v", value)
16253	}
16254
16255	var cv []types.AwsEcsServiceLoadBalancersDetails
16256	if *v == nil {
16257		cv = []types.AwsEcsServiceLoadBalancersDetails{}
16258	} else {
16259		cv = *v
16260	}
16261
16262	for _, value := range shape {
16263		var col types.AwsEcsServiceLoadBalancersDetails
16264		destAddr := &col
16265		if err := awsRestjson1_deserializeDocumentAwsEcsServiceLoadBalancersDetails(&destAddr, value); err != nil {
16266			return err
16267		}
16268		col = *destAddr
16269		cv = append(cv, col)
16270
16271	}
16272	*v = cv
16273	return nil
16274}
16275
16276func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails, value interface{}) error {
16277	if v == nil {
16278		return fmt.Errorf("unexpected nil of type %T", v)
16279	}
16280	if value == nil {
16281		return nil
16282	}
16283
16284	shape, ok := value.(map[string]interface{})
16285	if !ok {
16286		return fmt.Errorf("unexpected JSON type %v", value)
16287	}
16288
16289	var sv *types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails
16290	if *v == nil {
16291		sv = &types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails{}
16292	} else {
16293		sv = *v
16294	}
16295
16296	for key, value := range shape {
16297		switch key {
16298		case "AssignPublicIp":
16299			if value != nil {
16300				jtv, ok := value.(string)
16301				if !ok {
16302					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16303				}
16304				sv.AssignPublicIp = ptr.String(jtv)
16305			}
16306
16307		case "SecurityGroups":
16308			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroups, value); err != nil {
16309				return err
16310			}
16311
16312		case "Subnets":
16313			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Subnets, value); err != nil {
16314				return err
16315			}
16316
16317		default:
16318			_, _ = key, value
16319
16320		}
16321	}
16322	*v = sv
16323	return nil
16324}
16325
16326func awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationDetails(v **types.AwsEcsServiceNetworkConfigurationDetails, value interface{}) error {
16327	if v == nil {
16328		return fmt.Errorf("unexpected nil of type %T", v)
16329	}
16330	if value == nil {
16331		return nil
16332	}
16333
16334	shape, ok := value.(map[string]interface{})
16335	if !ok {
16336		return fmt.Errorf("unexpected JSON type %v", value)
16337	}
16338
16339	var sv *types.AwsEcsServiceNetworkConfigurationDetails
16340	if *v == nil {
16341		sv = &types.AwsEcsServiceNetworkConfigurationDetails{}
16342	} else {
16343		sv = *v
16344	}
16345
16346	for key, value := range shape {
16347		switch key {
16348		case "AwsVpcConfiguration":
16349			if err := awsRestjson1_deserializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(&sv.AwsVpcConfiguration, value); err != nil {
16350				return err
16351			}
16352
16353		default:
16354			_, _ = key, value
16355
16356		}
16357	}
16358	*v = sv
16359	return nil
16360}
16361
16362func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(v **types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error {
16363	if v == nil {
16364		return fmt.Errorf("unexpected nil of type %T", v)
16365	}
16366	if value == nil {
16367		return nil
16368	}
16369
16370	shape, ok := value.(map[string]interface{})
16371	if !ok {
16372		return fmt.Errorf("unexpected JSON type %v", value)
16373	}
16374
16375	var sv *types.AwsEcsServicePlacementConstraintsDetails
16376	if *v == nil {
16377		sv = &types.AwsEcsServicePlacementConstraintsDetails{}
16378	} else {
16379		sv = *v
16380	}
16381
16382	for key, value := range shape {
16383		switch key {
16384		case "Expression":
16385			if value != nil {
16386				jtv, ok := value.(string)
16387				if !ok {
16388					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16389				}
16390				sv.Expression = ptr.String(jtv)
16391			}
16392
16393		case "Type":
16394			if value != nil {
16395				jtv, ok := value.(string)
16396				if !ok {
16397					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16398				}
16399				sv.Type = ptr.String(jtv)
16400			}
16401
16402		default:
16403			_, _ = key, value
16404
16405		}
16406	}
16407	*v = sv
16408	return nil
16409}
16410
16411func awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsList(v *[]types.AwsEcsServicePlacementConstraintsDetails, value interface{}) error {
16412	if v == nil {
16413		return fmt.Errorf("unexpected nil of type %T", v)
16414	}
16415	if value == nil {
16416		return nil
16417	}
16418
16419	shape, ok := value.([]interface{})
16420	if !ok {
16421		return fmt.Errorf("unexpected JSON type %v", value)
16422	}
16423
16424	var cv []types.AwsEcsServicePlacementConstraintsDetails
16425	if *v == nil {
16426		cv = []types.AwsEcsServicePlacementConstraintsDetails{}
16427	} else {
16428		cv = *v
16429	}
16430
16431	for _, value := range shape {
16432		var col types.AwsEcsServicePlacementConstraintsDetails
16433		destAddr := &col
16434		if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementConstraintsDetails(&destAddr, value); err != nil {
16435			return err
16436		}
16437		col = *destAddr
16438		cv = append(cv, col)
16439
16440	}
16441	*v = cv
16442	return nil
16443}
16444
16445func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(v **types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error {
16446	if v == nil {
16447		return fmt.Errorf("unexpected nil of type %T", v)
16448	}
16449	if value == nil {
16450		return nil
16451	}
16452
16453	shape, ok := value.(map[string]interface{})
16454	if !ok {
16455		return fmt.Errorf("unexpected JSON type %v", value)
16456	}
16457
16458	var sv *types.AwsEcsServicePlacementStrategiesDetails
16459	if *v == nil {
16460		sv = &types.AwsEcsServicePlacementStrategiesDetails{}
16461	} else {
16462		sv = *v
16463	}
16464
16465	for key, value := range shape {
16466		switch key {
16467		case "Field":
16468			if value != nil {
16469				jtv, ok := value.(string)
16470				if !ok {
16471					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16472				}
16473				sv.Field = ptr.String(jtv)
16474			}
16475
16476		case "Type":
16477			if value != nil {
16478				jtv, ok := value.(string)
16479				if !ok {
16480					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16481				}
16482				sv.Type = ptr.String(jtv)
16483			}
16484
16485		default:
16486			_, _ = key, value
16487
16488		}
16489	}
16490	*v = sv
16491	return nil
16492}
16493
16494func awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesList(v *[]types.AwsEcsServicePlacementStrategiesDetails, value interface{}) error {
16495	if v == nil {
16496		return fmt.Errorf("unexpected nil of type %T", v)
16497	}
16498	if value == nil {
16499		return nil
16500	}
16501
16502	shape, ok := value.([]interface{})
16503	if !ok {
16504		return fmt.Errorf("unexpected JSON type %v", value)
16505	}
16506
16507	var cv []types.AwsEcsServicePlacementStrategiesDetails
16508	if *v == nil {
16509		cv = []types.AwsEcsServicePlacementStrategiesDetails{}
16510	} else {
16511		cv = *v
16512	}
16513
16514	for _, value := range shape {
16515		var col types.AwsEcsServicePlacementStrategiesDetails
16516		destAddr := &col
16517		if err := awsRestjson1_deserializeDocumentAwsEcsServicePlacementStrategiesDetails(&destAddr, value); err != nil {
16518			return err
16519		}
16520		col = *destAddr
16521		cv = append(cv, col)
16522
16523	}
16524	*v = cv
16525	return nil
16526}
16527
16528func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(v **types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error {
16529	if v == nil {
16530		return fmt.Errorf("unexpected nil of type %T", v)
16531	}
16532	if value == nil {
16533		return nil
16534	}
16535
16536	shape, ok := value.(map[string]interface{})
16537	if !ok {
16538		return fmt.Errorf("unexpected JSON type %v", value)
16539	}
16540
16541	var sv *types.AwsEcsServiceServiceRegistriesDetails
16542	if *v == nil {
16543		sv = &types.AwsEcsServiceServiceRegistriesDetails{}
16544	} else {
16545		sv = *v
16546	}
16547
16548	for key, value := range shape {
16549		switch key {
16550		case "ContainerName":
16551			if value != nil {
16552				jtv, ok := value.(string)
16553				if !ok {
16554					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16555				}
16556				sv.ContainerName = ptr.String(jtv)
16557			}
16558
16559		case "ContainerPort":
16560			if value != nil {
16561				jtv, ok := value.(json.Number)
16562				if !ok {
16563					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16564				}
16565				i64, err := jtv.Int64()
16566				if err != nil {
16567					return err
16568				}
16569				sv.ContainerPort = int32(i64)
16570			}
16571
16572		case "Port":
16573			if value != nil {
16574				jtv, ok := value.(json.Number)
16575				if !ok {
16576					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16577				}
16578				i64, err := jtv.Int64()
16579				if err != nil {
16580					return err
16581				}
16582				sv.Port = int32(i64)
16583			}
16584
16585		case "RegistryArn":
16586			if value != nil {
16587				jtv, ok := value.(string)
16588				if !ok {
16589					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16590				}
16591				sv.RegistryArn = ptr.String(jtv)
16592			}
16593
16594		default:
16595			_, _ = key, value
16596
16597		}
16598	}
16599	*v = sv
16600	return nil
16601}
16602
16603func awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesList(v *[]types.AwsEcsServiceServiceRegistriesDetails, value interface{}) error {
16604	if v == nil {
16605		return fmt.Errorf("unexpected nil of type %T", v)
16606	}
16607	if value == nil {
16608		return nil
16609	}
16610
16611	shape, ok := value.([]interface{})
16612	if !ok {
16613		return fmt.Errorf("unexpected JSON type %v", value)
16614	}
16615
16616	var cv []types.AwsEcsServiceServiceRegistriesDetails
16617	if *v == nil {
16618		cv = []types.AwsEcsServiceServiceRegistriesDetails{}
16619	} else {
16620		cv = *v
16621	}
16622
16623	for _, value := range shape {
16624		var col types.AwsEcsServiceServiceRegistriesDetails
16625		destAddr := &col
16626		if err := awsRestjson1_deserializeDocumentAwsEcsServiceServiceRegistriesDetails(&destAddr, value); err != nil {
16627			return err
16628		}
16629		col = *destAddr
16630		cv = append(cv, col)
16631
16632	}
16633	*v = cv
16634	return nil
16635}
16636
16637func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error {
16638	if v == nil {
16639		return fmt.Errorf("unexpected nil of type %T", v)
16640	}
16641	if value == nil {
16642		return nil
16643	}
16644
16645	shape, ok := value.(map[string]interface{})
16646	if !ok {
16647		return fmt.Errorf("unexpected JSON type %v", value)
16648	}
16649
16650	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails
16651	if *v == nil {
16652		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{}
16653	} else {
16654		sv = *v
16655	}
16656
16657	for key, value := range shape {
16658		switch key {
16659		case "Condition":
16660			if value != nil {
16661				jtv, ok := value.(string)
16662				if !ok {
16663					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16664				}
16665				sv.Condition = ptr.String(jtv)
16666			}
16667
16668		case "ContainerName":
16669			if value != nil {
16670				jtv, ok := value.(string)
16671				if !ok {
16672					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16673				}
16674				sv.ContainerName = ptr.String(jtv)
16675			}
16676
16677		default:
16678			_, _ = key, value
16679
16680		}
16681	}
16682	*v = sv
16683	return nil
16684}
16685
16686func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value interface{}) error {
16687	if v == nil {
16688		return fmt.Errorf("unexpected nil of type %T", v)
16689	}
16690	if value == nil {
16691		return nil
16692	}
16693
16694	shape, ok := value.([]interface{})
16695	if !ok {
16696		return fmt.Errorf("unexpected JSON type %v", value)
16697	}
16698
16699	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails
16700	if *v == nil {
16701		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails{}
16702	} else {
16703		cv = *v
16704	}
16705
16706	for _, value := range shape {
16707		var col types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails
16708		destAddr := &col
16709		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(&destAddr, value); err != nil {
16710			return err
16711		}
16712		col = *destAddr
16713		cv = append(cv, col)
16714
16715	}
16716	*v = cv
16717	return nil
16718}
16719
16720func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error {
16721	if v == nil {
16722		return fmt.Errorf("unexpected nil of type %T", v)
16723	}
16724	if value == nil {
16725		return nil
16726	}
16727
16728	shape, ok := value.(map[string]interface{})
16729	if !ok {
16730		return fmt.Errorf("unexpected JSON type %v", value)
16731	}
16732
16733	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsDetails
16734	if *v == nil {
16735		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsDetails{}
16736	} else {
16737		sv = *v
16738	}
16739
16740	for key, value := range shape {
16741		switch key {
16742		case "Command":
16743			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil {
16744				return err
16745			}
16746
16747		case "Cpu":
16748			if value != nil {
16749				jtv, ok := value.(json.Number)
16750				if !ok {
16751					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16752				}
16753				i64, err := jtv.Int64()
16754				if err != nil {
16755					return err
16756				}
16757				sv.Cpu = int32(i64)
16758			}
16759
16760		case "DependsOn":
16761			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(&sv.DependsOn, value); err != nil {
16762				return err
16763			}
16764
16765		case "DisableNetworking":
16766			if value != nil {
16767				jtv, ok := value.(bool)
16768				if !ok {
16769					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16770				}
16771				sv.DisableNetworking = jtv
16772			}
16773
16774		case "DnsSearchDomains":
16775			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsSearchDomains, value); err != nil {
16776				return err
16777			}
16778
16779		case "DnsServers":
16780			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DnsServers, value); err != nil {
16781				return err
16782			}
16783
16784		case "DockerLabels":
16785			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DockerLabels, value); err != nil {
16786				return err
16787			}
16788
16789		case "DockerSecurityOptions":
16790			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.DockerSecurityOptions, value); err != nil {
16791				return err
16792			}
16793
16794		case "EntryPoint":
16795			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EntryPoint, value); err != nil {
16796				return err
16797			}
16798
16799		case "Environment":
16800			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(&sv.Environment, value); err != nil {
16801				return err
16802			}
16803
16804		case "EnvironmentFiles":
16805			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(&sv.EnvironmentFiles, value); err != nil {
16806				return err
16807			}
16808
16809		case "Essential":
16810			if value != nil {
16811				jtv, ok := value.(bool)
16812				if !ok {
16813					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16814				}
16815				sv.Essential = jtv
16816			}
16817
16818		case "ExtraHosts":
16819			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(&sv.ExtraHosts, value); err != nil {
16820				return err
16821			}
16822
16823		case "FirelensConfiguration":
16824			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(&sv.FirelensConfiguration, value); err != nil {
16825				return err
16826			}
16827
16828		case "HealthCheck":
16829			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(&sv.HealthCheck, value); err != nil {
16830				return err
16831			}
16832
16833		case "Hostname":
16834			if value != nil {
16835				jtv, ok := value.(string)
16836				if !ok {
16837					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16838				}
16839				sv.Hostname = ptr.String(jtv)
16840			}
16841
16842		case "Image":
16843			if value != nil {
16844				jtv, ok := value.(string)
16845				if !ok {
16846					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16847				}
16848				sv.Image = ptr.String(jtv)
16849			}
16850
16851		case "Interactive":
16852			if value != nil {
16853				jtv, ok := value.(bool)
16854				if !ok {
16855					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16856				}
16857				sv.Interactive = jtv
16858			}
16859
16860		case "Links":
16861			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Links, value); err != nil {
16862				return err
16863			}
16864
16865		case "LinuxParameters":
16866			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(&sv.LinuxParameters, value); err != nil {
16867				return err
16868			}
16869
16870		case "LogConfiguration":
16871			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(&sv.LogConfiguration, value); err != nil {
16872				return err
16873			}
16874
16875		case "Memory":
16876			if value != nil {
16877				jtv, ok := value.(json.Number)
16878				if !ok {
16879					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16880				}
16881				i64, err := jtv.Int64()
16882				if err != nil {
16883					return err
16884				}
16885				sv.Memory = int32(i64)
16886			}
16887
16888		case "MemoryReservation":
16889			if value != nil {
16890				jtv, ok := value.(json.Number)
16891				if !ok {
16892					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16893				}
16894				i64, err := jtv.Int64()
16895				if err != nil {
16896					return err
16897				}
16898				sv.MemoryReservation = int32(i64)
16899			}
16900
16901		case "MountPoints":
16902			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(&sv.MountPoints, value); err != nil {
16903				return err
16904			}
16905
16906		case "Name":
16907			if value != nil {
16908				jtv, ok := value.(string)
16909				if !ok {
16910					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
16911				}
16912				sv.Name = ptr.String(jtv)
16913			}
16914
16915		case "PortMappings":
16916			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(&sv.PortMappings, value); err != nil {
16917				return err
16918			}
16919
16920		case "Privileged":
16921			if value != nil {
16922				jtv, ok := value.(bool)
16923				if !ok {
16924					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16925				}
16926				sv.Privileged = jtv
16927			}
16928
16929		case "PseudoTerminal":
16930			if value != nil {
16931				jtv, ok := value.(bool)
16932				if !ok {
16933					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16934				}
16935				sv.PseudoTerminal = jtv
16936			}
16937
16938		case "ReadonlyRootFilesystem":
16939			if value != nil {
16940				jtv, ok := value.(bool)
16941				if !ok {
16942					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
16943				}
16944				sv.ReadonlyRootFilesystem = jtv
16945			}
16946
16947		case "RepositoryCredentials":
16948			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(&sv.RepositoryCredentials, value); err != nil {
16949				return err
16950			}
16951
16952		case "ResourceRequirements":
16953			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(&sv.ResourceRequirements, value); err != nil {
16954				return err
16955			}
16956
16957		case "Secrets":
16958			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(&sv.Secrets, value); err != nil {
16959				return err
16960			}
16961
16962		case "StartTimeout":
16963			if value != nil {
16964				jtv, ok := value.(json.Number)
16965				if !ok {
16966					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16967				}
16968				i64, err := jtv.Int64()
16969				if err != nil {
16970					return err
16971				}
16972				sv.StartTimeout = int32(i64)
16973			}
16974
16975		case "StopTimeout":
16976			if value != nil {
16977				jtv, ok := value.(json.Number)
16978				if !ok {
16979					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
16980				}
16981				i64, err := jtv.Int64()
16982				if err != nil {
16983					return err
16984				}
16985				sv.StopTimeout = int32(i64)
16986			}
16987
16988		case "SystemControls":
16989			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(&sv.SystemControls, value); err != nil {
16990				return err
16991			}
16992
16993		case "Ulimits":
16994			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(&sv.Ulimits, value); err != nil {
16995				return err
16996			}
16997
16998		case "User":
16999			if value != nil {
17000				jtv, ok := value.(string)
17001				if !ok {
17002					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17003				}
17004				sv.User = ptr.String(jtv)
17005			}
17006
17007		case "VolumesFrom":
17008			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(&sv.VolumesFrom, value); err != nil {
17009				return err
17010			}
17011
17012		case "WorkingDirectory":
17013			if value != nil {
17014				jtv, ok := value.(string)
17015				if !ok {
17016					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17017				}
17018				sv.WorkingDirectory = ptr.String(jtv)
17019			}
17020
17021		default:
17022			_, _ = key, value
17023
17024		}
17025	}
17026	*v = sv
17027	return nil
17028}
17029
17030func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error {
17031	if v == nil {
17032		return fmt.Errorf("unexpected nil of type %T", v)
17033	}
17034	if value == nil {
17035		return nil
17036	}
17037
17038	shape, ok := value.(map[string]interface{})
17039	if !ok {
17040		return fmt.Errorf("unexpected JSON type %v", value)
17041	}
17042
17043	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails
17044	if *v == nil {
17045		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{}
17046	} else {
17047		sv = *v
17048	}
17049
17050	for key, value := range shape {
17051		switch key {
17052		case "Name":
17053			if value != nil {
17054				jtv, ok := value.(string)
17055				if !ok {
17056					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17057				}
17058				sv.Name = ptr.String(jtv)
17059			}
17060
17061		case "Value":
17062			if value != nil {
17063				jtv, ok := value.(string)
17064				if !ok {
17065					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17066				}
17067				sv.Value = ptr.String(jtv)
17068			}
17069
17070		default:
17071			_, _ = key, value
17072
17073		}
17074	}
17075	*v = sv
17076	return nil
17077}
17078
17079func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error {
17080	if v == nil {
17081		return fmt.Errorf("unexpected nil of type %T", v)
17082	}
17083	if value == nil {
17084		return nil
17085	}
17086
17087	shape, ok := value.(map[string]interface{})
17088	if !ok {
17089		return fmt.Errorf("unexpected JSON type %v", value)
17090	}
17091
17092	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails
17093	if *v == nil {
17094		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{}
17095	} else {
17096		sv = *v
17097	}
17098
17099	for key, value := range shape {
17100		switch key {
17101		case "Type":
17102			if value != nil {
17103				jtv, ok := value.(string)
17104				if !ok {
17105					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17106				}
17107				sv.Type = ptr.String(jtv)
17108			}
17109
17110		case "Value":
17111			if value != nil {
17112				jtv, ok := value.(string)
17113				if !ok {
17114					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17115				}
17116				sv.Value = ptr.String(jtv)
17117			}
17118
17119		default:
17120			_, _ = key, value
17121
17122		}
17123	}
17124	*v = sv
17125	return nil
17126}
17127
17128func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value interface{}) error {
17129	if v == nil {
17130		return fmt.Errorf("unexpected nil of type %T", v)
17131	}
17132	if value == nil {
17133		return nil
17134	}
17135
17136	shape, ok := value.([]interface{})
17137	if !ok {
17138		return fmt.Errorf("unexpected JSON type %v", value)
17139	}
17140
17141	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails
17142	if *v == nil {
17143		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails{}
17144	} else {
17145		cv = *v
17146	}
17147
17148	for _, value := range shape {
17149		var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails
17150		destAddr := &col
17151		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(&destAddr, value); err != nil {
17152			return err
17153		}
17154		col = *destAddr
17155		cv = append(cv, col)
17156
17157	}
17158	*v = cv
17159	return nil
17160}
17161
17162func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value interface{}) error {
17163	if v == nil {
17164		return fmt.Errorf("unexpected nil of type %T", v)
17165	}
17166	if value == nil {
17167		return nil
17168	}
17169
17170	shape, ok := value.([]interface{})
17171	if !ok {
17172		return fmt.Errorf("unexpected JSON type %v", value)
17173	}
17174
17175	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails
17176	if *v == nil {
17177		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails{}
17178	} else {
17179		cv = *v
17180	}
17181
17182	for _, value := range shape {
17183		var col types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails
17184		destAddr := &col
17185		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(&destAddr, value); err != nil {
17186			return err
17187		}
17188		col = *destAddr
17189		cv = append(cv, col)
17190
17191	}
17192	*v = cv
17193	return nil
17194}
17195
17196func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error {
17197	if v == nil {
17198		return fmt.Errorf("unexpected nil of type %T", v)
17199	}
17200	if value == nil {
17201		return nil
17202	}
17203
17204	shape, ok := value.(map[string]interface{})
17205	if !ok {
17206		return fmt.Errorf("unexpected JSON type %v", value)
17207	}
17208
17209	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails
17210	if *v == nil {
17211		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{}
17212	} else {
17213		sv = *v
17214	}
17215
17216	for key, value := range shape {
17217		switch key {
17218		case "Hostname":
17219			if value != nil {
17220				jtv, ok := value.(string)
17221				if !ok {
17222					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17223				}
17224				sv.Hostname = ptr.String(jtv)
17225			}
17226
17227		case "IpAddress":
17228			if value != nil {
17229				jtv, ok := value.(string)
17230				if !ok {
17231					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17232				}
17233				sv.IpAddress = ptr.String(jtv)
17234			}
17235
17236		default:
17237			_, _ = key, value
17238
17239		}
17240	}
17241	*v = sv
17242	return nil
17243}
17244
17245func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value interface{}) error {
17246	if v == nil {
17247		return fmt.Errorf("unexpected nil of type %T", v)
17248	}
17249	if value == nil {
17250		return nil
17251	}
17252
17253	shape, ok := value.([]interface{})
17254	if !ok {
17255		return fmt.Errorf("unexpected JSON type %v", value)
17256	}
17257
17258	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails
17259	if *v == nil {
17260		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails{}
17261	} else {
17262		cv = *v
17263	}
17264
17265	for _, value := range shape {
17266		var col types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails
17267		destAddr := &col
17268		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(&destAddr, value); err != nil {
17269			return err
17270		}
17271		col = *destAddr
17272		cv = append(cv, col)
17273
17274	}
17275	*v = cv
17276	return nil
17277}
17278
17279func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails, value interface{}) error {
17280	if v == nil {
17281		return fmt.Errorf("unexpected nil of type %T", v)
17282	}
17283	if value == nil {
17284		return nil
17285	}
17286
17287	shape, ok := value.(map[string]interface{})
17288	if !ok {
17289		return fmt.Errorf("unexpected JSON type %v", value)
17290	}
17291
17292	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails
17293	if *v == nil {
17294		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails{}
17295	} else {
17296		sv = *v
17297	}
17298
17299	for key, value := range shape {
17300		switch key {
17301		case "Options":
17302			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil {
17303				return err
17304			}
17305
17306		case "Type":
17307			if value != nil {
17308				jtv, ok := value.(string)
17309				if !ok {
17310					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17311				}
17312				sv.Type = ptr.String(jtv)
17313			}
17314
17315		default:
17316			_, _ = key, value
17317
17318		}
17319	}
17320	*v = sv
17321	return nil
17322}
17323
17324func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails, value interface{}) error {
17325	if v == nil {
17326		return fmt.Errorf("unexpected nil of type %T", v)
17327	}
17328	if value == nil {
17329		return nil
17330	}
17331
17332	shape, ok := value.(map[string]interface{})
17333	if !ok {
17334		return fmt.Errorf("unexpected JSON type %v", value)
17335	}
17336
17337	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails
17338	if *v == nil {
17339		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails{}
17340	} else {
17341		sv = *v
17342	}
17343
17344	for key, value := range shape {
17345		switch key {
17346		case "Command":
17347			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Command, value); err != nil {
17348				return err
17349			}
17350
17351		case "Interval":
17352			if value != nil {
17353				jtv, ok := value.(json.Number)
17354				if !ok {
17355					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17356				}
17357				i64, err := jtv.Int64()
17358				if err != nil {
17359					return err
17360				}
17361				sv.Interval = int32(i64)
17362			}
17363
17364		case "Retries":
17365			if value != nil {
17366				jtv, ok := value.(json.Number)
17367				if !ok {
17368					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17369				}
17370				i64, err := jtv.Int64()
17371				if err != nil {
17372					return err
17373				}
17374				sv.Retries = int32(i64)
17375			}
17376
17377		case "StartPeriod":
17378			if value != nil {
17379				jtv, ok := value.(json.Number)
17380				if !ok {
17381					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17382				}
17383				i64, err := jtv.Int64()
17384				if err != nil {
17385					return err
17386				}
17387				sv.StartPeriod = int32(i64)
17388			}
17389
17390		case "Timeout":
17391			if value != nil {
17392				jtv, ok := value.(json.Number)
17393				if !ok {
17394					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17395				}
17396				i64, err := jtv.Int64()
17397				if err != nil {
17398					return err
17399				}
17400				sv.Timeout = int32(i64)
17401			}
17402
17403		default:
17404			_, _ = key, value
17405
17406		}
17407	}
17408	*v = sv
17409	return nil
17410}
17411
17412func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails, value interface{}) error {
17413	if v == nil {
17414		return fmt.Errorf("unexpected nil of type %T", v)
17415	}
17416	if value == nil {
17417		return nil
17418	}
17419
17420	shape, ok := value.(map[string]interface{})
17421	if !ok {
17422		return fmt.Errorf("unexpected JSON type %v", value)
17423	}
17424
17425	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails
17426	if *v == nil {
17427		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails{}
17428	} else {
17429		sv = *v
17430	}
17431
17432	for key, value := range shape {
17433		switch key {
17434		case "Add":
17435			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Add, value); err != nil {
17436				return err
17437			}
17438
17439		case "Drop":
17440			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Drop, value); err != nil {
17441				return err
17442			}
17443
17444		default:
17445			_, _ = key, value
17446
17447		}
17448	}
17449	*v = sv
17450	return nil
17451}
17452
17453func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails, value interface{}) error {
17454	if v == nil {
17455		return fmt.Errorf("unexpected nil of type %T", v)
17456	}
17457	if value == nil {
17458		return nil
17459	}
17460
17461	shape, ok := value.(map[string]interface{})
17462	if !ok {
17463		return fmt.Errorf("unexpected JSON type %v", value)
17464	}
17465
17466	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails
17467	if *v == nil {
17468		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails{}
17469	} else {
17470		sv = *v
17471	}
17472
17473	for key, value := range shape {
17474		switch key {
17475		case "Capabilities":
17476			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(&sv.Capabilities, value); err != nil {
17477				return err
17478			}
17479
17480		case "Devices":
17481			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(&sv.Devices, value); err != nil {
17482				return err
17483			}
17484
17485		case "InitProcessEnabled":
17486			if value != nil {
17487				jtv, ok := value.(bool)
17488				if !ok {
17489					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
17490				}
17491				sv.InitProcessEnabled = jtv
17492			}
17493
17494		case "MaxSwap":
17495			if value != nil {
17496				jtv, ok := value.(json.Number)
17497				if !ok {
17498					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17499				}
17500				i64, err := jtv.Int64()
17501				if err != nil {
17502					return err
17503				}
17504				sv.MaxSwap = int32(i64)
17505			}
17506
17507		case "SharedMemorySize":
17508			if value != nil {
17509				jtv, ok := value.(json.Number)
17510				if !ok {
17511					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17512				}
17513				i64, err := jtv.Int64()
17514				if err != nil {
17515					return err
17516				}
17517				sv.SharedMemorySize = int32(i64)
17518			}
17519
17520		case "Swappiness":
17521			if value != nil {
17522				jtv, ok := value.(json.Number)
17523				if !ok {
17524					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17525				}
17526				i64, err := jtv.Int64()
17527				if err != nil {
17528					return err
17529				}
17530				sv.Swappiness = int32(i64)
17531			}
17532
17533		case "Tmpfs":
17534			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(&sv.Tmpfs, value); err != nil {
17535				return err
17536			}
17537
17538		default:
17539			_, _ = key, value
17540
17541		}
17542	}
17543	*v = sv
17544	return nil
17545}
17546
17547func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error {
17548	if v == nil {
17549		return fmt.Errorf("unexpected nil of type %T", v)
17550	}
17551	if value == nil {
17552		return nil
17553	}
17554
17555	shape, ok := value.(map[string]interface{})
17556	if !ok {
17557		return fmt.Errorf("unexpected JSON type %v", value)
17558	}
17559
17560	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails
17561	if *v == nil {
17562		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{}
17563	} else {
17564		sv = *v
17565	}
17566
17567	for key, value := range shape {
17568		switch key {
17569		case "ContainerPath":
17570			if value != nil {
17571				jtv, ok := value.(string)
17572				if !ok {
17573					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17574				}
17575				sv.ContainerPath = ptr.String(jtv)
17576			}
17577
17578		case "HostPath":
17579			if value != nil {
17580				jtv, ok := value.(string)
17581				if !ok {
17582					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17583				}
17584				sv.HostPath = ptr.String(jtv)
17585			}
17586
17587		case "Permissions":
17588			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.Permissions, value); err != nil {
17589				return err
17590			}
17591
17592		default:
17593			_, _ = key, value
17594
17595		}
17596	}
17597	*v = sv
17598	return nil
17599}
17600
17601func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value interface{}) error {
17602	if v == nil {
17603		return fmt.Errorf("unexpected nil of type %T", v)
17604	}
17605	if value == nil {
17606		return nil
17607	}
17608
17609	shape, ok := value.([]interface{})
17610	if !ok {
17611		return fmt.Errorf("unexpected JSON type %v", value)
17612	}
17613
17614	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails
17615	if *v == nil {
17616		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails{}
17617	} else {
17618		cv = *v
17619	}
17620
17621	for _, value := range shape {
17622		var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails
17623		destAddr := &col
17624		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(&destAddr, value); err != nil {
17625			return err
17626		}
17627		col = *destAddr
17628		cv = append(cv, col)
17629
17630	}
17631	*v = cv
17632	return nil
17633}
17634
17635func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error {
17636	if v == nil {
17637		return fmt.Errorf("unexpected nil of type %T", v)
17638	}
17639	if value == nil {
17640		return nil
17641	}
17642
17643	shape, ok := value.(map[string]interface{})
17644	if !ok {
17645		return fmt.Errorf("unexpected JSON type %v", value)
17646	}
17647
17648	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails
17649	if *v == nil {
17650		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{}
17651	} else {
17652		sv = *v
17653	}
17654
17655	for key, value := range shape {
17656		switch key {
17657		case "ContainerPath":
17658			if value != nil {
17659				jtv, ok := value.(string)
17660				if !ok {
17661					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17662				}
17663				sv.ContainerPath = ptr.String(jtv)
17664			}
17665
17666		case "MountOptions":
17667			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.MountOptions, value); err != nil {
17668				return err
17669			}
17670
17671		case "Size":
17672			if value != nil {
17673				jtv, ok := value.(json.Number)
17674				if !ok {
17675					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
17676				}
17677				i64, err := jtv.Int64()
17678				if err != nil {
17679					return err
17680				}
17681				sv.Size = int32(i64)
17682			}
17683
17684		default:
17685			_, _ = key, value
17686
17687		}
17688	}
17689	*v = sv
17690	return nil
17691}
17692
17693func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value interface{}) error {
17694	if v == nil {
17695		return fmt.Errorf("unexpected nil of type %T", v)
17696	}
17697	if value == nil {
17698		return nil
17699	}
17700
17701	shape, ok := value.([]interface{})
17702	if !ok {
17703		return fmt.Errorf("unexpected JSON type %v", value)
17704	}
17705
17706	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails
17707	if *v == nil {
17708		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails{}
17709	} else {
17710		cv = *v
17711	}
17712
17713	for _, value := range shape {
17714		var col types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails
17715		destAddr := &col
17716		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(&destAddr, value); err != nil {
17717			return err
17718		}
17719		col = *destAddr
17720		cv = append(cv, col)
17721
17722	}
17723	*v = cv
17724	return nil
17725}
17726
17727func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value interface{}) error {
17728	if v == nil {
17729		return fmt.Errorf("unexpected nil of type %T", v)
17730	}
17731	if value == nil {
17732		return nil
17733	}
17734
17735	shape, ok := value.([]interface{})
17736	if !ok {
17737		return fmt.Errorf("unexpected JSON type %v", value)
17738	}
17739
17740	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsDetails
17741	if *v == nil {
17742		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsDetails{}
17743	} else {
17744		cv = *v
17745	}
17746
17747	for _, value := range shape {
17748		var col types.AwsEcsTaskDefinitionContainerDefinitionsDetails
17749		destAddr := &col
17750		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(&destAddr, value); err != nil {
17751			return err
17752		}
17753		col = *destAddr
17754		cv = append(cv, col)
17755
17756	}
17757	*v = cv
17758	return nil
17759}
17760
17761func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails, value interface{}) error {
17762	if v == nil {
17763		return fmt.Errorf("unexpected nil of type %T", v)
17764	}
17765	if value == nil {
17766		return nil
17767	}
17768
17769	shape, ok := value.(map[string]interface{})
17770	if !ok {
17771		return fmt.Errorf("unexpected JSON type %v", value)
17772	}
17773
17774	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails
17775	if *v == nil {
17776		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails{}
17777	} else {
17778		sv = *v
17779	}
17780
17781	for key, value := range shape {
17782		switch key {
17783		case "LogDriver":
17784			if value != nil {
17785				jtv, ok := value.(string)
17786				if !ok {
17787					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17788				}
17789				sv.LogDriver = ptr.String(jtv)
17790			}
17791
17792		case "Options":
17793			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Options, value); err != nil {
17794				return err
17795			}
17796
17797		case "SecretOptions":
17798			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(&sv.SecretOptions, value); err != nil {
17799				return err
17800			}
17801
17802		default:
17803			_, _ = key, value
17804
17805		}
17806	}
17807	*v = sv
17808	return nil
17809}
17810
17811func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error {
17812	if v == nil {
17813		return fmt.Errorf("unexpected nil of type %T", v)
17814	}
17815	if value == nil {
17816		return nil
17817	}
17818
17819	shape, ok := value.(map[string]interface{})
17820	if !ok {
17821		return fmt.Errorf("unexpected JSON type %v", value)
17822	}
17823
17824	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails
17825	if *v == nil {
17826		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{}
17827	} else {
17828		sv = *v
17829	}
17830
17831	for key, value := range shape {
17832		switch key {
17833		case "Name":
17834			if value != nil {
17835				jtv, ok := value.(string)
17836				if !ok {
17837					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17838				}
17839				sv.Name = ptr.String(jtv)
17840			}
17841
17842		case "ValueFrom":
17843			if value != nil {
17844				jtv, ok := value.(string)
17845				if !ok {
17846					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17847				}
17848				sv.ValueFrom = ptr.String(jtv)
17849			}
17850
17851		default:
17852			_, _ = key, value
17853
17854		}
17855	}
17856	*v = sv
17857	return nil
17858}
17859
17860func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value interface{}) error {
17861	if v == nil {
17862		return fmt.Errorf("unexpected nil of type %T", v)
17863	}
17864	if value == nil {
17865		return nil
17866	}
17867
17868	shape, ok := value.([]interface{})
17869	if !ok {
17870		return fmt.Errorf("unexpected JSON type %v", value)
17871	}
17872
17873	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails
17874	if *v == nil {
17875		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails{}
17876	} else {
17877		cv = *v
17878	}
17879
17880	for _, value := range shape {
17881		var col types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails
17882		destAddr := &col
17883		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(&destAddr, value); err != nil {
17884			return err
17885		}
17886		col = *destAddr
17887		cv = append(cv, col)
17888
17889	}
17890	*v = cv
17891	return nil
17892}
17893
17894func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, 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 *types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails
17908	if *v == nil {
17909		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{}
17910	} else {
17911		sv = *v
17912	}
17913
17914	for key, value := range shape {
17915		switch key {
17916		case "ContainerPath":
17917			if value != nil {
17918				jtv, ok := value.(string)
17919				if !ok {
17920					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17921				}
17922				sv.ContainerPath = ptr.String(jtv)
17923			}
17924
17925		case "ReadOnly":
17926			if value != nil {
17927				jtv, ok := value.(bool)
17928				if !ok {
17929					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
17930				}
17931				sv.ReadOnly = jtv
17932			}
17933
17934		case "SourceVolume":
17935			if value != nil {
17936				jtv, ok := value.(string)
17937				if !ok {
17938					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
17939				}
17940				sv.SourceVolume = ptr.String(jtv)
17941			}
17942
17943		default:
17944			_, _ = key, value
17945
17946		}
17947	}
17948	*v = sv
17949	return nil
17950}
17951
17952func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value interface{}) error {
17953	if v == nil {
17954		return fmt.Errorf("unexpected nil of type %T", v)
17955	}
17956	if value == nil {
17957		return nil
17958	}
17959
17960	shape, ok := value.([]interface{})
17961	if !ok {
17962		return fmt.Errorf("unexpected JSON type %v", value)
17963	}
17964
17965	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails
17966	if *v == nil {
17967		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails{}
17968	} else {
17969		cv = *v
17970	}
17971
17972	for _, value := range shape {
17973		var col types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails
17974		destAddr := &col
17975		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(&destAddr, value); err != nil {
17976			return err
17977		}
17978		col = *destAddr
17979		cv = append(cv, col)
17980
17981	}
17982	*v = cv
17983	return nil
17984}
17985
17986func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error {
17987	if v == nil {
17988		return fmt.Errorf("unexpected nil of type %T", v)
17989	}
17990	if value == nil {
17991		return nil
17992	}
17993
17994	shape, ok := value.(map[string]interface{})
17995	if !ok {
17996		return fmt.Errorf("unexpected JSON type %v", value)
17997	}
17998
17999	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails
18000	if *v == nil {
18001		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{}
18002	} else {
18003		sv = *v
18004	}
18005
18006	for key, value := range shape {
18007		switch key {
18008		case "ContainerPort":
18009			if value != nil {
18010				jtv, ok := value.(json.Number)
18011				if !ok {
18012					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
18013				}
18014				i64, err := jtv.Int64()
18015				if err != nil {
18016					return err
18017				}
18018				sv.ContainerPort = int32(i64)
18019			}
18020
18021		case "HostPort":
18022			if value != nil {
18023				jtv, ok := value.(json.Number)
18024				if !ok {
18025					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
18026				}
18027				i64, err := jtv.Int64()
18028				if err != nil {
18029					return err
18030				}
18031				sv.HostPort = int32(i64)
18032			}
18033
18034		case "Protocol":
18035			if value != nil {
18036				jtv, ok := value.(string)
18037				if !ok {
18038					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18039				}
18040				sv.Protocol = ptr.String(jtv)
18041			}
18042
18043		default:
18044			_, _ = key, value
18045
18046		}
18047	}
18048	*v = sv
18049	return nil
18050}
18051
18052func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value interface{}) error {
18053	if v == nil {
18054		return fmt.Errorf("unexpected nil of type %T", v)
18055	}
18056	if value == nil {
18057		return nil
18058	}
18059
18060	shape, ok := value.([]interface{})
18061	if !ok {
18062		return fmt.Errorf("unexpected JSON type %v", value)
18063	}
18064
18065	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails
18066	if *v == nil {
18067		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails{}
18068	} else {
18069		cv = *v
18070	}
18071
18072	for _, value := range shape {
18073		var col types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails
18074		destAddr := &col
18075		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(&destAddr, value); err != nil {
18076			return err
18077		}
18078		col = *destAddr
18079		cv = append(cv, col)
18080
18081	}
18082	*v = cv
18083	return nil
18084}
18085
18086func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails, value interface{}) error {
18087	if v == nil {
18088		return fmt.Errorf("unexpected nil of type %T", v)
18089	}
18090	if value == nil {
18091		return nil
18092	}
18093
18094	shape, ok := value.(map[string]interface{})
18095	if !ok {
18096		return fmt.Errorf("unexpected JSON type %v", value)
18097	}
18098
18099	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails
18100	if *v == nil {
18101		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails{}
18102	} else {
18103		sv = *v
18104	}
18105
18106	for key, value := range shape {
18107		switch key {
18108		case "CredentialsParameter":
18109			if value != nil {
18110				jtv, ok := value.(string)
18111				if !ok {
18112					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18113				}
18114				sv.CredentialsParameter = ptr.String(jtv)
18115			}
18116
18117		default:
18118			_, _ = key, value
18119
18120		}
18121	}
18122	*v = sv
18123	return nil
18124}
18125
18126func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error {
18127	if v == nil {
18128		return fmt.Errorf("unexpected nil of type %T", v)
18129	}
18130	if value == nil {
18131		return nil
18132	}
18133
18134	shape, ok := value.(map[string]interface{})
18135	if !ok {
18136		return fmt.Errorf("unexpected JSON type %v", value)
18137	}
18138
18139	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails
18140	if *v == nil {
18141		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{}
18142	} else {
18143		sv = *v
18144	}
18145
18146	for key, value := range shape {
18147		switch key {
18148		case "Type":
18149			if value != nil {
18150				jtv, ok := value.(string)
18151				if !ok {
18152					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18153				}
18154				sv.Type = ptr.String(jtv)
18155			}
18156
18157		case "Value":
18158			if value != nil {
18159				jtv, ok := value.(string)
18160				if !ok {
18161					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18162				}
18163				sv.Value = ptr.String(jtv)
18164			}
18165
18166		default:
18167			_, _ = key, value
18168
18169		}
18170	}
18171	*v = sv
18172	return nil
18173}
18174
18175func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value interface{}) error {
18176	if v == nil {
18177		return fmt.Errorf("unexpected nil of type %T", v)
18178	}
18179	if value == nil {
18180		return nil
18181	}
18182
18183	shape, ok := value.([]interface{})
18184	if !ok {
18185		return fmt.Errorf("unexpected JSON type %v", value)
18186	}
18187
18188	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails
18189	if *v == nil {
18190		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails{}
18191	} else {
18192		cv = *v
18193	}
18194
18195	for _, value := range shape {
18196		var col types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails
18197		destAddr := &col
18198		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(&destAddr, value); err != nil {
18199			return err
18200		}
18201		col = *destAddr
18202		cv = append(cv, col)
18203
18204	}
18205	*v = cv
18206	return nil
18207}
18208
18209func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error {
18210	if v == nil {
18211		return fmt.Errorf("unexpected nil of type %T", v)
18212	}
18213	if value == nil {
18214		return nil
18215	}
18216
18217	shape, ok := value.(map[string]interface{})
18218	if !ok {
18219		return fmt.Errorf("unexpected JSON type %v", value)
18220	}
18221
18222	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails
18223	if *v == nil {
18224		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{}
18225	} else {
18226		sv = *v
18227	}
18228
18229	for key, value := range shape {
18230		switch key {
18231		case "Name":
18232			if value != nil {
18233				jtv, ok := value.(string)
18234				if !ok {
18235					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18236				}
18237				sv.Name = ptr.String(jtv)
18238			}
18239
18240		case "ValueFrom":
18241			if value != nil {
18242				jtv, ok := value.(string)
18243				if !ok {
18244					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18245				}
18246				sv.ValueFrom = ptr.String(jtv)
18247			}
18248
18249		default:
18250			_, _ = key, value
18251
18252		}
18253	}
18254	*v = sv
18255	return nil
18256}
18257
18258func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value interface{}) error {
18259	if v == nil {
18260		return fmt.Errorf("unexpected nil of type %T", v)
18261	}
18262	if value == nil {
18263		return nil
18264	}
18265
18266	shape, ok := value.([]interface{})
18267	if !ok {
18268		return fmt.Errorf("unexpected JSON type %v", value)
18269	}
18270
18271	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails
18272	if *v == nil {
18273		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails{}
18274	} else {
18275		cv = *v
18276	}
18277
18278	for _, value := range shape {
18279		var col types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails
18280		destAddr := &col
18281		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(&destAddr, value); err != nil {
18282			return err
18283		}
18284		col = *destAddr
18285		cv = append(cv, col)
18286
18287	}
18288	*v = cv
18289	return nil
18290}
18291
18292func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error {
18293	if v == nil {
18294		return fmt.Errorf("unexpected nil of type %T", v)
18295	}
18296	if value == nil {
18297		return nil
18298	}
18299
18300	shape, ok := value.(map[string]interface{})
18301	if !ok {
18302		return fmt.Errorf("unexpected JSON type %v", value)
18303	}
18304
18305	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails
18306	if *v == nil {
18307		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{}
18308	} else {
18309		sv = *v
18310	}
18311
18312	for key, value := range shape {
18313		switch key {
18314		case "Namespace":
18315			if value != nil {
18316				jtv, ok := value.(string)
18317				if !ok {
18318					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18319				}
18320				sv.Namespace = ptr.String(jtv)
18321			}
18322
18323		case "Value":
18324			if value != nil {
18325				jtv, ok := value.(string)
18326				if !ok {
18327					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18328				}
18329				sv.Value = ptr.String(jtv)
18330			}
18331
18332		default:
18333			_, _ = key, value
18334
18335		}
18336	}
18337	*v = sv
18338	return nil
18339}
18340
18341func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value interface{}) error {
18342	if v == nil {
18343		return fmt.Errorf("unexpected nil of type %T", v)
18344	}
18345	if value == nil {
18346		return nil
18347	}
18348
18349	shape, ok := value.([]interface{})
18350	if !ok {
18351		return fmt.Errorf("unexpected JSON type %v", value)
18352	}
18353
18354	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails
18355	if *v == nil {
18356		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails{}
18357	} else {
18358		cv = *v
18359	}
18360
18361	for _, value := range shape {
18362		var col types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails
18363		destAddr := &col
18364		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(&destAddr, value); err != nil {
18365			return err
18366		}
18367		col = *destAddr
18368		cv = append(cv, col)
18369
18370	}
18371	*v = cv
18372	return nil
18373}
18374
18375func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error {
18376	if v == nil {
18377		return fmt.Errorf("unexpected nil of type %T", v)
18378	}
18379	if value == nil {
18380		return nil
18381	}
18382
18383	shape, ok := value.(map[string]interface{})
18384	if !ok {
18385		return fmt.Errorf("unexpected JSON type %v", value)
18386	}
18387
18388	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails
18389	if *v == nil {
18390		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{}
18391	} else {
18392		sv = *v
18393	}
18394
18395	for key, value := range shape {
18396		switch key {
18397		case "HardLimit":
18398			if value != nil {
18399				jtv, ok := value.(json.Number)
18400				if !ok {
18401					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
18402				}
18403				i64, err := jtv.Int64()
18404				if err != nil {
18405					return err
18406				}
18407				sv.HardLimit = int32(i64)
18408			}
18409
18410		case "Name":
18411			if value != nil {
18412				jtv, ok := value.(string)
18413				if !ok {
18414					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18415				}
18416				sv.Name = ptr.String(jtv)
18417			}
18418
18419		case "SoftLimit":
18420			if value != nil {
18421				jtv, ok := value.(json.Number)
18422				if !ok {
18423					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
18424				}
18425				i64, err := jtv.Int64()
18426				if err != nil {
18427					return err
18428				}
18429				sv.SoftLimit = int32(i64)
18430			}
18431
18432		default:
18433			_, _ = key, value
18434
18435		}
18436	}
18437	*v = sv
18438	return nil
18439}
18440
18441func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value interface{}) error {
18442	if v == nil {
18443		return fmt.Errorf("unexpected nil of type %T", v)
18444	}
18445	if value == nil {
18446		return nil
18447	}
18448
18449	shape, ok := value.([]interface{})
18450	if !ok {
18451		return fmt.Errorf("unexpected JSON type %v", value)
18452	}
18453
18454	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails
18455	if *v == nil {
18456		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails{}
18457	} else {
18458		cv = *v
18459	}
18460
18461	for _, value := range shape {
18462		var col types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails
18463		destAddr := &col
18464		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(&destAddr, value); err != nil {
18465			return err
18466		}
18467		col = *destAddr
18468		cv = append(cv, col)
18469
18470	}
18471	*v = cv
18472	return nil
18473}
18474
18475func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(v **types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error {
18476	if v == nil {
18477		return fmt.Errorf("unexpected nil of type %T", v)
18478	}
18479	if value == nil {
18480		return nil
18481	}
18482
18483	shape, ok := value.(map[string]interface{})
18484	if !ok {
18485		return fmt.Errorf("unexpected JSON type %v", value)
18486	}
18487
18488	var sv *types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails
18489	if *v == nil {
18490		sv = &types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{}
18491	} else {
18492		sv = *v
18493	}
18494
18495	for key, value := range shape {
18496		switch key {
18497		case "ReadOnly":
18498			if value != nil {
18499				jtv, ok := value.(bool)
18500				if !ok {
18501					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
18502				}
18503				sv.ReadOnly = jtv
18504			}
18505
18506		case "SourceContainer":
18507			if value != nil {
18508				jtv, ok := value.(string)
18509				if !ok {
18510					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18511				}
18512				sv.SourceContainer = ptr.String(jtv)
18513			}
18514
18515		default:
18516			_, _ = key, value
18517
18518		}
18519	}
18520	*v = sv
18521	return nil
18522}
18523
18524func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(v *[]types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value interface{}) error {
18525	if v == nil {
18526		return fmt.Errorf("unexpected nil of type %T", v)
18527	}
18528	if value == nil {
18529		return nil
18530	}
18531
18532	shape, ok := value.([]interface{})
18533	if !ok {
18534		return fmt.Errorf("unexpected JSON type %v", value)
18535	}
18536
18537	var cv []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails
18538	if *v == nil {
18539		cv = []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails{}
18540	} else {
18541		cv = *v
18542	}
18543
18544	for _, value := range shape {
18545		var col types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails
18546		destAddr := &col
18547		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(&destAddr, value); err != nil {
18548			return err
18549		}
18550		col = *destAddr
18551		cv = append(cv, col)
18552
18553	}
18554	*v = cv
18555	return nil
18556}
18557
18558func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionDetails(v **types.AwsEcsTaskDefinitionDetails, value interface{}) error {
18559	if v == nil {
18560		return fmt.Errorf("unexpected nil of type %T", v)
18561	}
18562	if value == nil {
18563		return nil
18564	}
18565
18566	shape, ok := value.(map[string]interface{})
18567	if !ok {
18568		return fmt.Errorf("unexpected JSON type %v", value)
18569	}
18570
18571	var sv *types.AwsEcsTaskDefinitionDetails
18572	if *v == nil {
18573		sv = &types.AwsEcsTaskDefinitionDetails{}
18574	} else {
18575		sv = *v
18576	}
18577
18578	for key, value := range shape {
18579		switch key {
18580		case "ContainerDefinitions":
18581			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(&sv.ContainerDefinitions, value); err != nil {
18582				return err
18583			}
18584
18585		case "Cpu":
18586			if value != nil {
18587				jtv, ok := value.(string)
18588				if !ok {
18589					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18590				}
18591				sv.Cpu = ptr.String(jtv)
18592			}
18593
18594		case "ExecutionRoleArn":
18595			if value != nil {
18596				jtv, ok := value.(string)
18597				if !ok {
18598					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18599				}
18600				sv.ExecutionRoleArn = ptr.String(jtv)
18601			}
18602
18603		case "Family":
18604			if value != nil {
18605				jtv, ok := value.(string)
18606				if !ok {
18607					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18608				}
18609				sv.Family = ptr.String(jtv)
18610			}
18611
18612		case "InferenceAccelerators":
18613			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(&sv.InferenceAccelerators, value); err != nil {
18614				return err
18615			}
18616
18617		case "IpcMode":
18618			if value != nil {
18619				jtv, ok := value.(string)
18620				if !ok {
18621					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18622				}
18623				sv.IpcMode = ptr.String(jtv)
18624			}
18625
18626		case "Memory":
18627			if value != nil {
18628				jtv, ok := value.(string)
18629				if !ok {
18630					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18631				}
18632				sv.Memory = ptr.String(jtv)
18633			}
18634
18635		case "NetworkMode":
18636			if value != nil {
18637				jtv, ok := value.(string)
18638				if !ok {
18639					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18640				}
18641				sv.NetworkMode = ptr.String(jtv)
18642			}
18643
18644		case "PidMode":
18645			if value != nil {
18646				jtv, ok := value.(string)
18647				if !ok {
18648					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18649				}
18650				sv.PidMode = ptr.String(jtv)
18651			}
18652
18653		case "PlacementConstraints":
18654			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(&sv.PlacementConstraints, value); err != nil {
18655				return err
18656			}
18657
18658		case "ProxyConfiguration":
18659			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(&sv.ProxyConfiguration, value); err != nil {
18660				return err
18661			}
18662
18663		case "RequiresCompatibilities":
18664			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.RequiresCompatibilities, value); err != nil {
18665				return err
18666			}
18667
18668		case "TaskRoleArn":
18669			if value != nil {
18670				jtv, ok := value.(string)
18671				if !ok {
18672					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18673				}
18674				sv.TaskRoleArn = ptr.String(jtv)
18675			}
18676
18677		case "Volumes":
18678			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(&sv.Volumes, value); err != nil {
18679				return err
18680			}
18681
18682		default:
18683			_, _ = key, value
18684
18685		}
18686	}
18687	*v = sv
18688	return nil
18689}
18690
18691func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(v **types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error {
18692	if v == nil {
18693		return fmt.Errorf("unexpected nil of type %T", v)
18694	}
18695	if value == nil {
18696		return nil
18697	}
18698
18699	shape, ok := value.(map[string]interface{})
18700	if !ok {
18701		return fmt.Errorf("unexpected JSON type %v", value)
18702	}
18703
18704	var sv *types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails
18705	if *v == nil {
18706		sv = &types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{}
18707	} else {
18708		sv = *v
18709	}
18710
18711	for key, value := range shape {
18712		switch key {
18713		case "DeviceName":
18714			if value != nil {
18715				jtv, ok := value.(string)
18716				if !ok {
18717					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18718				}
18719				sv.DeviceName = ptr.String(jtv)
18720			}
18721
18722		case "DeviceType":
18723			if value != nil {
18724				jtv, ok := value.(string)
18725				if !ok {
18726					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18727				}
18728				sv.DeviceType = ptr.String(jtv)
18729			}
18730
18731		default:
18732			_, _ = key, value
18733
18734		}
18735	}
18736	*v = sv
18737	return nil
18738}
18739
18740func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(v *[]types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value interface{}) error {
18741	if v == nil {
18742		return fmt.Errorf("unexpected nil of type %T", v)
18743	}
18744	if value == nil {
18745		return nil
18746	}
18747
18748	shape, ok := value.([]interface{})
18749	if !ok {
18750		return fmt.Errorf("unexpected JSON type %v", value)
18751	}
18752
18753	var cv []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails
18754	if *v == nil {
18755		cv = []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails{}
18756	} else {
18757		cv = *v
18758	}
18759
18760	for _, value := range shape {
18761		var col types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails
18762		destAddr := &col
18763		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(&destAddr, value); err != nil {
18764			return err
18765		}
18766		col = *destAddr
18767		cv = append(cv, col)
18768
18769	}
18770	*v = cv
18771	return nil
18772}
18773
18774func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(v **types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error {
18775	if v == nil {
18776		return fmt.Errorf("unexpected nil of type %T", v)
18777	}
18778	if value == nil {
18779		return nil
18780	}
18781
18782	shape, ok := value.(map[string]interface{})
18783	if !ok {
18784		return fmt.Errorf("unexpected JSON type %v", value)
18785	}
18786
18787	var sv *types.AwsEcsTaskDefinitionPlacementConstraintsDetails
18788	if *v == nil {
18789		sv = &types.AwsEcsTaskDefinitionPlacementConstraintsDetails{}
18790	} else {
18791		sv = *v
18792	}
18793
18794	for key, value := range shape {
18795		switch key {
18796		case "Expression":
18797			if value != nil {
18798				jtv, ok := value.(string)
18799				if !ok {
18800					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18801				}
18802				sv.Expression = ptr.String(jtv)
18803			}
18804
18805		case "Type":
18806			if value != nil {
18807				jtv, ok := value.(string)
18808				if !ok {
18809					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18810				}
18811				sv.Type = ptr.String(jtv)
18812			}
18813
18814		default:
18815			_, _ = key, value
18816
18817		}
18818	}
18819	*v = sv
18820	return nil
18821}
18822
18823func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(v *[]types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value interface{}) error {
18824	if v == nil {
18825		return fmt.Errorf("unexpected nil of type %T", v)
18826	}
18827	if value == nil {
18828		return nil
18829	}
18830
18831	shape, ok := value.([]interface{})
18832	if !ok {
18833		return fmt.Errorf("unexpected JSON type %v", value)
18834	}
18835
18836	var cv []types.AwsEcsTaskDefinitionPlacementConstraintsDetails
18837	if *v == nil {
18838		cv = []types.AwsEcsTaskDefinitionPlacementConstraintsDetails{}
18839	} else {
18840		cv = *v
18841	}
18842
18843	for _, value := range shape {
18844		var col types.AwsEcsTaskDefinitionPlacementConstraintsDetails
18845		destAddr := &col
18846		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(&destAddr, value); err != nil {
18847			return err
18848		}
18849		col = *destAddr
18850		cv = append(cv, col)
18851
18852	}
18853	*v = cv
18854	return nil
18855}
18856
18857func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationDetails, value interface{}) error {
18858	if v == nil {
18859		return fmt.Errorf("unexpected nil of type %T", v)
18860	}
18861	if value == nil {
18862		return nil
18863	}
18864
18865	shape, ok := value.(map[string]interface{})
18866	if !ok {
18867		return fmt.Errorf("unexpected JSON type %v", value)
18868	}
18869
18870	var sv *types.AwsEcsTaskDefinitionProxyConfigurationDetails
18871	if *v == nil {
18872		sv = &types.AwsEcsTaskDefinitionProxyConfigurationDetails{}
18873	} else {
18874		sv = *v
18875	}
18876
18877	for key, value := range shape {
18878		switch key {
18879		case "ContainerName":
18880			if value != nil {
18881				jtv, ok := value.(string)
18882				if !ok {
18883					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18884				}
18885				sv.ContainerName = ptr.String(jtv)
18886			}
18887
18888		case "ProxyConfigurationProperties":
18889			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(&sv.ProxyConfigurationProperties, value); err != nil {
18890				return err
18891			}
18892
18893		case "Type":
18894			if value != nil {
18895				jtv, ok := value.(string)
18896				if !ok {
18897					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18898				}
18899				sv.Type = ptr.String(jtv)
18900			}
18901
18902		default:
18903			_, _ = key, value
18904
18905		}
18906	}
18907	*v = sv
18908	return nil
18909}
18910
18911func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(v **types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error {
18912	if v == nil {
18913		return fmt.Errorf("unexpected nil of type %T", v)
18914	}
18915	if value == nil {
18916		return nil
18917	}
18918
18919	shape, ok := value.(map[string]interface{})
18920	if !ok {
18921		return fmt.Errorf("unexpected JSON type %v", value)
18922	}
18923
18924	var sv *types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails
18925	if *v == nil {
18926		sv = &types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{}
18927	} else {
18928		sv = *v
18929	}
18930
18931	for key, value := range shape {
18932		switch key {
18933		case "Name":
18934			if value != nil {
18935				jtv, ok := value.(string)
18936				if !ok {
18937					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18938				}
18939				sv.Name = ptr.String(jtv)
18940			}
18941
18942		case "Value":
18943			if value != nil {
18944				jtv, ok := value.(string)
18945				if !ok {
18946					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
18947				}
18948				sv.Value = ptr.String(jtv)
18949			}
18950
18951		default:
18952			_, _ = key, value
18953
18954		}
18955	}
18956	*v = sv
18957	return nil
18958}
18959
18960func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(v *[]types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value interface{}) error {
18961	if v == nil {
18962		return fmt.Errorf("unexpected nil of type %T", v)
18963	}
18964	if value == nil {
18965		return nil
18966	}
18967
18968	shape, ok := value.([]interface{})
18969	if !ok {
18970		return fmt.Errorf("unexpected JSON type %v", value)
18971	}
18972
18973	var cv []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails
18974	if *v == nil {
18975		cv = []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails{}
18976	} else {
18977		cv = *v
18978	}
18979
18980	for _, value := range shape {
18981		var col types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails
18982		destAddr := &col
18983		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(&destAddr, value); err != nil {
18984			return err
18985		}
18986		col = *destAddr
18987		cv = append(cv, col)
18988
18989	}
18990	*v = cv
18991	return nil
18992}
18993
18994func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(v **types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error {
18995	if v == nil {
18996		return fmt.Errorf("unexpected nil of type %T", v)
18997	}
18998	if value == nil {
18999		return nil
19000	}
19001
19002	shape, ok := value.(map[string]interface{})
19003	if !ok {
19004		return fmt.Errorf("unexpected JSON type %v", value)
19005	}
19006
19007	var sv *types.AwsEcsTaskDefinitionVolumesDetails
19008	if *v == nil {
19009		sv = &types.AwsEcsTaskDefinitionVolumesDetails{}
19010	} else {
19011		sv = *v
19012	}
19013
19014	for key, value := range shape {
19015		switch key {
19016		case "DockerVolumeConfiguration":
19017			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(&sv.DockerVolumeConfiguration, value); err != nil {
19018				return err
19019			}
19020
19021		case "EfsVolumeConfiguration":
19022			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(&sv.EfsVolumeConfiguration, value); err != nil {
19023				return err
19024			}
19025
19026		case "Host":
19027			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(&sv.Host, value); err != nil {
19028				return err
19029			}
19030
19031		case "Name":
19032			if value != nil {
19033				jtv, ok := value.(string)
19034				if !ok {
19035					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19036				}
19037				sv.Name = ptr.String(jtv)
19038			}
19039
19040		default:
19041			_, _ = key, value
19042
19043		}
19044	}
19045	*v = sv
19046	return nil
19047}
19048
19049func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails, value interface{}) error {
19050	if v == nil {
19051		return fmt.Errorf("unexpected nil of type %T", v)
19052	}
19053	if value == nil {
19054		return nil
19055	}
19056
19057	shape, ok := value.(map[string]interface{})
19058	if !ok {
19059		return fmt.Errorf("unexpected JSON type %v", value)
19060	}
19061
19062	var sv *types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails
19063	if *v == nil {
19064		sv = &types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails{}
19065	} else {
19066		sv = *v
19067	}
19068
19069	for key, value := range shape {
19070		switch key {
19071		case "Autoprovision":
19072			if value != nil {
19073				jtv, ok := value.(bool)
19074				if !ok {
19075					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
19076				}
19077				sv.Autoprovision = jtv
19078			}
19079
19080		case "Driver":
19081			if value != nil {
19082				jtv, ok := value.(string)
19083				if !ok {
19084					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19085				}
19086				sv.Driver = ptr.String(jtv)
19087			}
19088
19089		case "DriverOpts":
19090			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.DriverOpts, value); err != nil {
19091				return err
19092			}
19093
19094		case "Labels":
19095			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Labels, value); err != nil {
19096				return err
19097			}
19098
19099		case "Scope":
19100			if value != nil {
19101				jtv, ok := value.(string)
19102				if !ok {
19103					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19104				}
19105				sv.Scope = ptr.String(jtv)
19106			}
19107
19108		default:
19109			_, _ = key, value
19110
19111		}
19112	}
19113	*v = sv
19114	return nil
19115}
19116
19117func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails, value interface{}) error {
19118	if v == nil {
19119		return fmt.Errorf("unexpected nil of type %T", v)
19120	}
19121	if value == nil {
19122		return nil
19123	}
19124
19125	shape, ok := value.(map[string]interface{})
19126	if !ok {
19127		return fmt.Errorf("unexpected JSON type %v", value)
19128	}
19129
19130	var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails
19131	if *v == nil {
19132		sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails{}
19133	} else {
19134		sv = *v
19135	}
19136
19137	for key, value := range shape {
19138		switch key {
19139		case "AccessPointId":
19140			if value != nil {
19141				jtv, ok := value.(string)
19142				if !ok {
19143					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19144				}
19145				sv.AccessPointId = ptr.String(jtv)
19146			}
19147
19148		case "Iam":
19149			if value != nil {
19150				jtv, ok := value.(string)
19151				if !ok {
19152					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19153				}
19154				sv.Iam = ptr.String(jtv)
19155			}
19156
19157		default:
19158			_, _ = key, value
19159
19160		}
19161	}
19162	*v = sv
19163	return nil
19164}
19165
19166func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(v **types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails, value interface{}) error {
19167	if v == nil {
19168		return fmt.Errorf("unexpected nil of type %T", v)
19169	}
19170	if value == nil {
19171		return nil
19172	}
19173
19174	shape, ok := value.(map[string]interface{})
19175	if !ok {
19176		return fmt.Errorf("unexpected JSON type %v", value)
19177	}
19178
19179	var sv *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails
19180	if *v == nil {
19181		sv = &types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails{}
19182	} else {
19183		sv = *v
19184	}
19185
19186	for key, value := range shape {
19187		switch key {
19188		case "AuthorizationConfig":
19189			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(&sv.AuthorizationConfig, value); err != nil {
19190				return err
19191			}
19192
19193		case "FilesystemId":
19194			if value != nil {
19195				jtv, ok := value.(string)
19196				if !ok {
19197					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19198				}
19199				sv.FilesystemId = ptr.String(jtv)
19200			}
19201
19202		case "RootDirectory":
19203			if value != nil {
19204				jtv, ok := value.(string)
19205				if !ok {
19206					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19207				}
19208				sv.RootDirectory = ptr.String(jtv)
19209			}
19210
19211		case "TransitEncryption":
19212			if value != nil {
19213				jtv, ok := value.(string)
19214				if !ok {
19215					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19216				}
19217				sv.TransitEncryption = ptr.String(jtv)
19218			}
19219
19220		case "TransitEncryptionPort":
19221			if value != nil {
19222				jtv, ok := value.(json.Number)
19223				if !ok {
19224					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
19225				}
19226				i64, err := jtv.Int64()
19227				if err != nil {
19228					return err
19229				}
19230				sv.TransitEncryptionPort = int32(i64)
19231			}
19232
19233		default:
19234			_, _ = key, value
19235
19236		}
19237	}
19238	*v = sv
19239	return nil
19240}
19241
19242func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v **types.AwsEcsTaskDefinitionVolumesHostDetails, value interface{}) error {
19243	if v == nil {
19244		return fmt.Errorf("unexpected nil of type %T", v)
19245	}
19246	if value == nil {
19247		return nil
19248	}
19249
19250	shape, ok := value.(map[string]interface{})
19251	if !ok {
19252		return fmt.Errorf("unexpected JSON type %v", value)
19253	}
19254
19255	var sv *types.AwsEcsTaskDefinitionVolumesHostDetails
19256	if *v == nil {
19257		sv = &types.AwsEcsTaskDefinitionVolumesHostDetails{}
19258	} else {
19259		sv = *v
19260	}
19261
19262	for key, value := range shape {
19263		switch key {
19264		case "SourcePath":
19265			if value != nil {
19266				jtv, ok := value.(string)
19267				if !ok {
19268					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19269				}
19270				sv.SourcePath = ptr.String(jtv)
19271			}
19272
19273		default:
19274			_, _ = key, value
19275
19276		}
19277	}
19278	*v = sv
19279	return nil
19280}
19281
19282func awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesList(v *[]types.AwsEcsTaskDefinitionVolumesDetails, value interface{}) error {
19283	if v == nil {
19284		return fmt.Errorf("unexpected nil of type %T", v)
19285	}
19286	if value == nil {
19287		return nil
19288	}
19289
19290	shape, ok := value.([]interface{})
19291	if !ok {
19292		return fmt.Errorf("unexpected JSON type %v", value)
19293	}
19294
19295	var cv []types.AwsEcsTaskDefinitionVolumesDetails
19296	if *v == nil {
19297		cv = []types.AwsEcsTaskDefinitionVolumesDetails{}
19298	} else {
19299		cv = *v
19300	}
19301
19302	for _, value := range shape {
19303		var col types.AwsEcsTaskDefinitionVolumesDetails
19304		destAddr := &col
19305		if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionVolumesDetails(&destAddr, value); err != nil {
19306			return err
19307		}
19308		col = *destAddr
19309		cv = append(cv, col)
19310
19311	}
19312	*v = cv
19313	return nil
19314}
19315
19316func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(v **types.AwsElasticBeanstalkEnvironmentDetails, value interface{}) error {
19317	if v == nil {
19318		return fmt.Errorf("unexpected nil of type %T", v)
19319	}
19320	if value == nil {
19321		return nil
19322	}
19323
19324	shape, ok := value.(map[string]interface{})
19325	if !ok {
19326		return fmt.Errorf("unexpected JSON type %v", value)
19327	}
19328
19329	var sv *types.AwsElasticBeanstalkEnvironmentDetails
19330	if *v == nil {
19331		sv = &types.AwsElasticBeanstalkEnvironmentDetails{}
19332	} else {
19333		sv = *v
19334	}
19335
19336	for key, value := range shape {
19337		switch key {
19338		case "ApplicationName":
19339			if value != nil {
19340				jtv, ok := value.(string)
19341				if !ok {
19342					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19343				}
19344				sv.ApplicationName = ptr.String(jtv)
19345			}
19346
19347		case "Cname":
19348			if value != nil {
19349				jtv, ok := value.(string)
19350				if !ok {
19351					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19352				}
19353				sv.Cname = ptr.String(jtv)
19354			}
19355
19356		case "DateCreated":
19357			if value != nil {
19358				jtv, ok := value.(string)
19359				if !ok {
19360					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19361				}
19362				sv.DateCreated = ptr.String(jtv)
19363			}
19364
19365		case "DateUpdated":
19366			if value != nil {
19367				jtv, ok := value.(string)
19368				if !ok {
19369					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19370				}
19371				sv.DateUpdated = ptr.String(jtv)
19372			}
19373
19374		case "Description":
19375			if value != nil {
19376				jtv, ok := value.(string)
19377				if !ok {
19378					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19379				}
19380				sv.Description = ptr.String(jtv)
19381			}
19382
19383		case "EndpointUrl":
19384			if value != nil {
19385				jtv, ok := value.(string)
19386				if !ok {
19387					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19388				}
19389				sv.EndpointUrl = ptr.String(jtv)
19390			}
19391
19392		case "EnvironmentArn":
19393			if value != nil {
19394				jtv, ok := value.(string)
19395				if !ok {
19396					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19397				}
19398				sv.EnvironmentArn = ptr.String(jtv)
19399			}
19400
19401		case "EnvironmentId":
19402			if value != nil {
19403				jtv, ok := value.(string)
19404				if !ok {
19405					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19406				}
19407				sv.EnvironmentId = ptr.String(jtv)
19408			}
19409
19410		case "EnvironmentLinks":
19411			if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(&sv.EnvironmentLinks, value); err != nil {
19412				return err
19413			}
19414
19415		case "EnvironmentName":
19416			if value != nil {
19417				jtv, ok := value.(string)
19418				if !ok {
19419					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19420				}
19421				sv.EnvironmentName = ptr.String(jtv)
19422			}
19423
19424		case "OptionSettings":
19425			if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(&sv.OptionSettings, value); err != nil {
19426				return err
19427			}
19428
19429		case "PlatformArn":
19430			if value != nil {
19431				jtv, ok := value.(string)
19432				if !ok {
19433					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19434				}
19435				sv.PlatformArn = ptr.String(jtv)
19436			}
19437
19438		case "SolutionStackName":
19439			if value != nil {
19440				jtv, ok := value.(string)
19441				if !ok {
19442					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19443				}
19444				sv.SolutionStackName = ptr.String(jtv)
19445			}
19446
19447		case "Status":
19448			if value != nil {
19449				jtv, ok := value.(string)
19450				if !ok {
19451					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19452				}
19453				sv.Status = ptr.String(jtv)
19454			}
19455
19456		case "Tier":
19457			if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(&sv.Tier, value); err != nil {
19458				return err
19459			}
19460
19461		case "VersionLabel":
19462			if value != nil {
19463				jtv, ok := value.(string)
19464				if !ok {
19465					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19466				}
19467				sv.VersionLabel = ptr.String(jtv)
19468			}
19469
19470		default:
19471			_, _ = key, value
19472
19473		}
19474	}
19475	*v = sv
19476	return nil
19477}
19478
19479func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v **types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error {
19480	if v == nil {
19481		return fmt.Errorf("unexpected nil of type %T", v)
19482	}
19483	if value == nil {
19484		return nil
19485	}
19486
19487	shape, ok := value.(map[string]interface{})
19488	if !ok {
19489		return fmt.Errorf("unexpected JSON type %v", value)
19490	}
19491
19492	var sv *types.AwsElasticBeanstalkEnvironmentEnvironmentLink
19493	if *v == nil {
19494		sv = &types.AwsElasticBeanstalkEnvironmentEnvironmentLink{}
19495	} else {
19496		sv = *v
19497	}
19498
19499	for key, value := range shape {
19500		switch key {
19501		case "EnvironmentName":
19502			if value != nil {
19503				jtv, ok := value.(string)
19504				if !ok {
19505					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19506				}
19507				sv.EnvironmentName = ptr.String(jtv)
19508			}
19509
19510		case "LinkName":
19511			if value != nil {
19512				jtv, ok := value.(string)
19513				if !ok {
19514					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19515				}
19516				sv.LinkName = ptr.String(jtv)
19517			}
19518
19519		default:
19520			_, _ = key, value
19521
19522		}
19523	}
19524	*v = sv
19525	return nil
19526}
19527
19528func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v *[]types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value interface{}) error {
19529	if v == nil {
19530		return fmt.Errorf("unexpected nil of type %T", v)
19531	}
19532	if value == nil {
19533		return nil
19534	}
19535
19536	shape, ok := value.([]interface{})
19537	if !ok {
19538		return fmt.Errorf("unexpected JSON type %v", value)
19539	}
19540
19541	var cv []types.AwsElasticBeanstalkEnvironmentEnvironmentLink
19542	if *v == nil {
19543		cv = []types.AwsElasticBeanstalkEnvironmentEnvironmentLink{}
19544	} else {
19545		cv = *v
19546	}
19547
19548	for _, value := range shape {
19549		var col types.AwsElasticBeanstalkEnvironmentEnvironmentLink
19550		destAddr := &col
19551		if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&destAddr, value); err != nil {
19552			return err
19553		}
19554		col = *destAddr
19555		cv = append(cv, col)
19556
19557	}
19558	*v = cv
19559	return nil
19560}
19561
19562func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v **types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error {
19563	if v == nil {
19564		return fmt.Errorf("unexpected nil of type %T", v)
19565	}
19566	if value == nil {
19567		return nil
19568	}
19569
19570	shape, ok := value.(map[string]interface{})
19571	if !ok {
19572		return fmt.Errorf("unexpected JSON type %v", value)
19573	}
19574
19575	var sv *types.AwsElasticBeanstalkEnvironmentOptionSetting
19576	if *v == nil {
19577		sv = &types.AwsElasticBeanstalkEnvironmentOptionSetting{}
19578	} else {
19579		sv = *v
19580	}
19581
19582	for key, value := range shape {
19583		switch key {
19584		case "Namespace":
19585			if value != nil {
19586				jtv, ok := value.(string)
19587				if !ok {
19588					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19589				}
19590				sv.Namespace = ptr.String(jtv)
19591			}
19592
19593		case "OptionName":
19594			if value != nil {
19595				jtv, ok := value.(string)
19596				if !ok {
19597					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19598				}
19599				sv.OptionName = ptr.String(jtv)
19600			}
19601
19602		case "ResourceName":
19603			if value != nil {
19604				jtv, ok := value.(string)
19605				if !ok {
19606					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19607				}
19608				sv.ResourceName = ptr.String(jtv)
19609			}
19610
19611		case "Value":
19612			if value != nil {
19613				jtv, ok := value.(string)
19614				if !ok {
19615					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19616				}
19617				sv.Value = ptr.String(jtv)
19618			}
19619
19620		default:
19621			_, _ = key, value
19622
19623		}
19624	}
19625	*v = sv
19626	return nil
19627}
19628
19629func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v *[]types.AwsElasticBeanstalkEnvironmentOptionSetting, value interface{}) error {
19630	if v == nil {
19631		return fmt.Errorf("unexpected nil of type %T", v)
19632	}
19633	if value == nil {
19634		return nil
19635	}
19636
19637	shape, ok := value.([]interface{})
19638	if !ok {
19639		return fmt.Errorf("unexpected JSON type %v", value)
19640	}
19641
19642	var cv []types.AwsElasticBeanstalkEnvironmentOptionSetting
19643	if *v == nil {
19644		cv = []types.AwsElasticBeanstalkEnvironmentOptionSetting{}
19645	} else {
19646		cv = *v
19647	}
19648
19649	for _, value := range shape {
19650		var col types.AwsElasticBeanstalkEnvironmentOptionSetting
19651		destAddr := &col
19652		if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&destAddr, value); err != nil {
19653			return err
19654		}
19655		col = *destAddr
19656		cv = append(cv, col)
19657
19658	}
19659	*v = cv
19660	return nil
19661}
19662
19663func awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentTier(v **types.AwsElasticBeanstalkEnvironmentTier, value interface{}) error {
19664	if v == nil {
19665		return fmt.Errorf("unexpected nil of type %T", v)
19666	}
19667	if value == nil {
19668		return nil
19669	}
19670
19671	shape, ok := value.(map[string]interface{})
19672	if !ok {
19673		return fmt.Errorf("unexpected JSON type %v", value)
19674	}
19675
19676	var sv *types.AwsElasticBeanstalkEnvironmentTier
19677	if *v == nil {
19678		sv = &types.AwsElasticBeanstalkEnvironmentTier{}
19679	} else {
19680		sv = *v
19681	}
19682
19683	for key, value := range shape {
19684		switch key {
19685		case "Name":
19686			if value != nil {
19687				jtv, ok := value.(string)
19688				if !ok {
19689					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19690				}
19691				sv.Name = ptr.String(jtv)
19692			}
19693
19694		case "Type":
19695			if value != nil {
19696				jtv, ok := value.(string)
19697				if !ok {
19698					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19699				}
19700				sv.Type = ptr.String(jtv)
19701			}
19702
19703		case "Version":
19704			if value != nil {
19705				jtv, ok := value.(string)
19706				if !ok {
19707					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19708				}
19709				sv.Version = ptr.String(jtv)
19710			}
19711
19712		default:
19713			_, _ = key, value
19714
19715		}
19716	}
19717	*v = sv
19718	return nil
19719}
19720
19721func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(v **types.AwsElasticsearchDomainDetails, value interface{}) error {
19722	if v == nil {
19723		return fmt.Errorf("unexpected nil of type %T", v)
19724	}
19725	if value == nil {
19726		return nil
19727	}
19728
19729	shape, ok := value.(map[string]interface{})
19730	if !ok {
19731		return fmt.Errorf("unexpected JSON type %v", value)
19732	}
19733
19734	var sv *types.AwsElasticsearchDomainDetails
19735	if *v == nil {
19736		sv = &types.AwsElasticsearchDomainDetails{}
19737	} else {
19738		sv = *v
19739	}
19740
19741	for key, value := range shape {
19742		switch key {
19743		case "AccessPolicies":
19744			if value != nil {
19745				jtv, ok := value.(string)
19746				if !ok {
19747					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19748				}
19749				sv.AccessPolicies = ptr.String(jtv)
19750			}
19751
19752		case "DomainEndpointOptions":
19753			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(&sv.DomainEndpointOptions, value); err != nil {
19754				return err
19755			}
19756
19757		case "DomainId":
19758			if value != nil {
19759				jtv, ok := value.(string)
19760				if !ok {
19761					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19762				}
19763				sv.DomainId = ptr.String(jtv)
19764			}
19765
19766		case "DomainName":
19767			if value != nil {
19768				jtv, ok := value.(string)
19769				if !ok {
19770					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19771				}
19772				sv.DomainName = ptr.String(jtv)
19773			}
19774
19775		case "ElasticsearchClusterConfig":
19776			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(&sv.ElasticsearchClusterConfig, value); err != nil {
19777				return err
19778			}
19779
19780		case "ElasticsearchVersion":
19781			if value != nil {
19782				jtv, ok := value.(string)
19783				if !ok {
19784					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19785				}
19786				sv.ElasticsearchVersion = ptr.String(jtv)
19787			}
19788
19789		case "EncryptionAtRestOptions":
19790			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(&sv.EncryptionAtRestOptions, value); err != nil {
19791				return err
19792			}
19793
19794		case "Endpoint":
19795			if value != nil {
19796				jtv, ok := value.(string)
19797				if !ok {
19798					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19799				}
19800				sv.Endpoint = ptr.String(jtv)
19801			}
19802
19803		case "Endpoints":
19804			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Endpoints, value); err != nil {
19805				return err
19806			}
19807
19808		case "LogPublishingOptions":
19809			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(&sv.LogPublishingOptions, value); err != nil {
19810				return err
19811			}
19812
19813		case "NodeToNodeEncryptionOptions":
19814			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(&sv.NodeToNodeEncryptionOptions, value); err != nil {
19815				return err
19816			}
19817
19818		case "ServiceSoftwareOptions":
19819			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(&sv.ServiceSoftwareOptions, value); err != nil {
19820				return err
19821			}
19822
19823		case "VPCOptions":
19824			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(&sv.VPCOptions, value); err != nil {
19825				return err
19826			}
19827
19828		default:
19829			_, _ = key, value
19830
19831		}
19832	}
19833	*v = sv
19834	return nil
19835}
19836
19837func awsRestjson1_deserializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v **types.AwsElasticsearchDomainDomainEndpointOptions, value interface{}) error {
19838	if v == nil {
19839		return fmt.Errorf("unexpected nil of type %T", v)
19840	}
19841	if value == nil {
19842		return nil
19843	}
19844
19845	shape, ok := value.(map[string]interface{})
19846	if !ok {
19847		return fmt.Errorf("unexpected JSON type %v", value)
19848	}
19849
19850	var sv *types.AwsElasticsearchDomainDomainEndpointOptions
19851	if *v == nil {
19852		sv = &types.AwsElasticsearchDomainDomainEndpointOptions{}
19853	} else {
19854		sv = *v
19855	}
19856
19857	for key, value := range shape {
19858		switch key {
19859		case "EnforceHTTPS":
19860			if value != nil {
19861				jtv, ok := value.(bool)
19862				if !ok {
19863					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
19864				}
19865				sv.EnforceHTTPS = jtv
19866			}
19867
19868		case "TLSSecurityPolicy":
19869			if value != nil {
19870				jtv, ok := value.(string)
19871				if !ok {
19872					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19873				}
19874				sv.TLSSecurityPolicy = ptr.String(jtv)
19875			}
19876
19877		default:
19878			_, _ = key, value
19879
19880		}
19881	}
19882	*v = sv
19883	return nil
19884}
19885
19886func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value interface{}) error {
19887	if v == nil {
19888		return fmt.Errorf("unexpected nil of type %T", v)
19889	}
19890	if value == nil {
19891		return nil
19892	}
19893
19894	shape, ok := value.(map[string]interface{})
19895	if !ok {
19896		return fmt.Errorf("unexpected JSON type %v", value)
19897	}
19898
19899	var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails
19900	if *v == nil {
19901		sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigDetails{}
19902	} else {
19903		sv = *v
19904	}
19905
19906	for key, value := range shape {
19907		switch key {
19908		case "DedicatedMasterCount":
19909			if value != nil {
19910				jtv, ok := value.(json.Number)
19911				if !ok {
19912					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
19913				}
19914				i64, err := jtv.Int64()
19915				if err != nil {
19916					return err
19917				}
19918				sv.DedicatedMasterCount = int32(i64)
19919			}
19920
19921		case "DedicatedMasterEnabled":
19922			if value != nil {
19923				jtv, ok := value.(bool)
19924				if !ok {
19925					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
19926				}
19927				sv.DedicatedMasterEnabled = jtv
19928			}
19929
19930		case "DedicatedMasterType":
19931			if value != nil {
19932				jtv, ok := value.(string)
19933				if !ok {
19934					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19935				}
19936				sv.DedicatedMasterType = ptr.String(jtv)
19937			}
19938
19939		case "InstanceCount":
19940			if value != nil {
19941				jtv, ok := value.(json.Number)
19942				if !ok {
19943					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
19944				}
19945				i64, err := jtv.Int64()
19946				if err != nil {
19947					return err
19948				}
19949				sv.InstanceCount = int32(i64)
19950			}
19951
19952		case "InstanceType":
19953			if value != nil {
19954				jtv, ok := value.(string)
19955				if !ok {
19956					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
19957				}
19958				sv.InstanceType = ptr.String(jtv)
19959			}
19960
19961		case "ZoneAwarenessConfig":
19962			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(&sv.ZoneAwarenessConfig, value); err != nil {
19963				return err
19964			}
19965
19966		case "ZoneAwarenessEnabled":
19967			if value != nil {
19968				jtv, ok := value.(bool)
19969				if !ok {
19970					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
19971				}
19972				sv.ZoneAwarenessEnabled = jtv
19973			}
19974
19975		default:
19976			_, _ = key, value
19977
19978		}
19979	}
19980	*v = sv
19981	return nil
19982}
19983
19984func awsRestjson1_deserializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v **types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value interface{}) error {
19985	if v == nil {
19986		return fmt.Errorf("unexpected nil of type %T", v)
19987	}
19988	if value == nil {
19989		return nil
19990	}
19991
19992	shape, ok := value.(map[string]interface{})
19993	if !ok {
19994		return fmt.Errorf("unexpected JSON type %v", value)
19995	}
19996
19997	var sv *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails
19998	if *v == nil {
19999		sv = &types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails{}
20000	} else {
20001		sv = *v
20002	}
20003
20004	for key, value := range shape {
20005		switch key {
20006		case "AvailabilityZoneCount":
20007			if value != nil {
20008				jtv, ok := value.(json.Number)
20009				if !ok {
20010					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
20011				}
20012				i64, err := jtv.Int64()
20013				if err != nil {
20014					return err
20015				}
20016				sv.AvailabilityZoneCount = int32(i64)
20017			}
20018
20019		default:
20020			_, _ = key, value
20021
20022		}
20023	}
20024	*v = sv
20025	return nil
20026}
20027
20028func awsRestjson1_deserializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v **types.AwsElasticsearchDomainEncryptionAtRestOptions, value interface{}) error {
20029	if v == nil {
20030		return fmt.Errorf("unexpected nil of type %T", v)
20031	}
20032	if value == nil {
20033		return nil
20034	}
20035
20036	shape, ok := value.(map[string]interface{})
20037	if !ok {
20038		return fmt.Errorf("unexpected JSON type %v", value)
20039	}
20040
20041	var sv *types.AwsElasticsearchDomainEncryptionAtRestOptions
20042	if *v == nil {
20043		sv = &types.AwsElasticsearchDomainEncryptionAtRestOptions{}
20044	} else {
20045		sv = *v
20046	}
20047
20048	for key, value := range shape {
20049		switch key {
20050		case "Enabled":
20051			if value != nil {
20052				jtv, ok := value.(bool)
20053				if !ok {
20054					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20055				}
20056				sv.Enabled = jtv
20057			}
20058
20059		case "KmsKeyId":
20060			if value != nil {
20061				jtv, ok := value.(string)
20062				if !ok {
20063					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20064				}
20065				sv.KmsKeyId = ptr.String(jtv)
20066			}
20067
20068		default:
20069			_, _ = key, value
20070
20071		}
20072	}
20073	*v = sv
20074	return nil
20075}
20076
20077func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptions(v **types.AwsElasticsearchDomainLogPublishingOptions, value interface{}) error {
20078	if v == nil {
20079		return fmt.Errorf("unexpected nil of type %T", v)
20080	}
20081	if value == nil {
20082		return nil
20083	}
20084
20085	shape, ok := value.(map[string]interface{})
20086	if !ok {
20087		return fmt.Errorf("unexpected JSON type %v", value)
20088	}
20089
20090	var sv *types.AwsElasticsearchDomainLogPublishingOptions
20091	if *v == nil {
20092		sv = &types.AwsElasticsearchDomainLogPublishingOptions{}
20093	} else {
20094		sv = *v
20095	}
20096
20097	for key, value := range shape {
20098		switch key {
20099		case "AuditLogs":
20100			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.AuditLogs, value); err != nil {
20101				return err
20102			}
20103
20104		case "IndexSlowLogs":
20105			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.IndexSlowLogs, value); err != nil {
20106				return err
20107			}
20108
20109		case "SearchSlowLogs":
20110			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(&sv.SearchSlowLogs, value); err != nil {
20111				return err
20112			}
20113
20114		default:
20115			_, _ = key, value
20116
20117		}
20118	}
20119	*v = sv
20120	return nil
20121}
20122
20123func awsRestjson1_deserializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v **types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, 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 *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig
20137	if *v == nil {
20138		sv = &types.AwsElasticsearchDomainLogPublishingOptionsLogConfig{}
20139	} else {
20140		sv = *v
20141	}
20142
20143	for key, value := range shape {
20144		switch key {
20145		case "CloudWatchLogsLogGroupArn":
20146			if value != nil {
20147				jtv, ok := value.(string)
20148				if !ok {
20149					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20150				}
20151				sv.CloudWatchLogsLogGroupArn = ptr.String(jtv)
20152			}
20153
20154		case "Enabled":
20155			if value != nil {
20156				jtv, ok := value.(bool)
20157				if !ok {
20158					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20159				}
20160				sv.Enabled = jtv
20161			}
20162
20163		default:
20164			_, _ = key, value
20165
20166		}
20167	}
20168	*v = sv
20169	return nil
20170}
20171
20172func awsRestjson1_deserializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v **types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value interface{}) error {
20173	if v == nil {
20174		return fmt.Errorf("unexpected nil of type %T", v)
20175	}
20176	if value == nil {
20177		return nil
20178	}
20179
20180	shape, ok := value.(map[string]interface{})
20181	if !ok {
20182		return fmt.Errorf("unexpected JSON type %v", value)
20183	}
20184
20185	var sv *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions
20186	if *v == nil {
20187		sv = &types.AwsElasticsearchDomainNodeToNodeEncryptionOptions{}
20188	} else {
20189		sv = *v
20190	}
20191
20192	for key, value := range shape {
20193		switch key {
20194		case "Enabled":
20195			if value != nil {
20196				jtv, ok := value.(bool)
20197				if !ok {
20198					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20199				}
20200				sv.Enabled = jtv
20201			}
20202
20203		default:
20204			_, _ = key, value
20205
20206		}
20207	}
20208	*v = sv
20209	return nil
20210}
20211
20212func awsRestjson1_deserializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v **types.AwsElasticsearchDomainServiceSoftwareOptions, value interface{}) error {
20213	if v == nil {
20214		return fmt.Errorf("unexpected nil of type %T", v)
20215	}
20216	if value == nil {
20217		return nil
20218	}
20219
20220	shape, ok := value.(map[string]interface{})
20221	if !ok {
20222		return fmt.Errorf("unexpected JSON type %v", value)
20223	}
20224
20225	var sv *types.AwsElasticsearchDomainServiceSoftwareOptions
20226	if *v == nil {
20227		sv = &types.AwsElasticsearchDomainServiceSoftwareOptions{}
20228	} else {
20229		sv = *v
20230	}
20231
20232	for key, value := range shape {
20233		switch key {
20234		case "AutomatedUpdateDate":
20235			if value != nil {
20236				jtv, ok := value.(string)
20237				if !ok {
20238					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20239				}
20240				sv.AutomatedUpdateDate = ptr.String(jtv)
20241			}
20242
20243		case "Cancellable":
20244			if value != nil {
20245				jtv, ok := value.(bool)
20246				if !ok {
20247					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20248				}
20249				sv.Cancellable = jtv
20250			}
20251
20252		case "CurrentVersion":
20253			if value != nil {
20254				jtv, ok := value.(string)
20255				if !ok {
20256					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20257				}
20258				sv.CurrentVersion = ptr.String(jtv)
20259			}
20260
20261		case "Description":
20262			if value != nil {
20263				jtv, ok := value.(string)
20264				if !ok {
20265					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20266				}
20267				sv.Description = ptr.String(jtv)
20268			}
20269
20270		case "NewVersion":
20271			if value != nil {
20272				jtv, ok := value.(string)
20273				if !ok {
20274					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20275				}
20276				sv.NewVersion = ptr.String(jtv)
20277			}
20278
20279		case "UpdateAvailable":
20280			if value != nil {
20281				jtv, ok := value.(bool)
20282				if !ok {
20283					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20284				}
20285				sv.UpdateAvailable = jtv
20286			}
20287
20288		case "UpdateStatus":
20289			if value != nil {
20290				jtv, ok := value.(string)
20291				if !ok {
20292					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20293				}
20294				sv.UpdateStatus = ptr.String(jtv)
20295			}
20296
20297		default:
20298			_, _ = key, value
20299
20300		}
20301	}
20302	*v = sv
20303	return nil
20304}
20305
20306func awsRestjson1_deserializeDocumentAwsElasticsearchDomainVPCOptions(v **types.AwsElasticsearchDomainVPCOptions, value interface{}) error {
20307	if v == nil {
20308		return fmt.Errorf("unexpected nil of type %T", v)
20309	}
20310	if value == nil {
20311		return nil
20312	}
20313
20314	shape, ok := value.(map[string]interface{})
20315	if !ok {
20316		return fmt.Errorf("unexpected JSON type %v", value)
20317	}
20318
20319	var sv *types.AwsElasticsearchDomainVPCOptions
20320	if *v == nil {
20321		sv = &types.AwsElasticsearchDomainVPCOptions{}
20322	} else {
20323		sv = *v
20324	}
20325
20326	for key, value := range shape {
20327		switch key {
20328		case "AvailabilityZones":
20329			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.AvailabilityZones, value); err != nil {
20330				return err
20331			}
20332
20333		case "SecurityGroupIds":
20334			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil {
20335				return err
20336			}
20337
20338		case "SubnetIds":
20339			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil {
20340				return err
20341			}
20342
20343		case "VPCId":
20344			if value != nil {
20345				jtv, ok := value.(string)
20346				if !ok {
20347					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20348				}
20349				sv.VPCId = ptr.String(jtv)
20350			}
20351
20352		default:
20353			_, _ = key, value
20354
20355		}
20356	}
20357	*v = sv
20358	return nil
20359}
20360
20361func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(v *[]types.AwsElbAppCookieStickinessPolicy, value interface{}) error {
20362	if v == nil {
20363		return fmt.Errorf("unexpected nil of type %T", v)
20364	}
20365	if value == nil {
20366		return nil
20367	}
20368
20369	shape, ok := value.([]interface{})
20370	if !ok {
20371		return fmt.Errorf("unexpected JSON type %v", value)
20372	}
20373
20374	var cv []types.AwsElbAppCookieStickinessPolicy
20375	if *v == nil {
20376		cv = []types.AwsElbAppCookieStickinessPolicy{}
20377	} else {
20378		cv = *v
20379	}
20380
20381	for _, value := range shape {
20382		var col types.AwsElbAppCookieStickinessPolicy
20383		destAddr := &col
20384		if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(&destAddr, value); err != nil {
20385			return err
20386		}
20387		col = *destAddr
20388		cv = append(cv, col)
20389
20390	}
20391	*v = cv
20392	return nil
20393}
20394
20395func awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicy(v **types.AwsElbAppCookieStickinessPolicy, value interface{}) error {
20396	if v == nil {
20397		return fmt.Errorf("unexpected nil of type %T", v)
20398	}
20399	if value == nil {
20400		return nil
20401	}
20402
20403	shape, ok := value.(map[string]interface{})
20404	if !ok {
20405		return fmt.Errorf("unexpected JSON type %v", value)
20406	}
20407
20408	var sv *types.AwsElbAppCookieStickinessPolicy
20409	if *v == nil {
20410		sv = &types.AwsElbAppCookieStickinessPolicy{}
20411	} else {
20412		sv = *v
20413	}
20414
20415	for key, value := range shape {
20416		switch key {
20417		case "CookieName":
20418			if value != nil {
20419				jtv, ok := value.(string)
20420				if !ok {
20421					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20422				}
20423				sv.CookieName = ptr.String(jtv)
20424			}
20425
20426		case "PolicyName":
20427			if value != nil {
20428				jtv, ok := value.(string)
20429				if !ok {
20430					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20431				}
20432				sv.PolicyName = ptr.String(jtv)
20433			}
20434
20435		default:
20436			_, _ = key, value
20437
20438		}
20439	}
20440	*v = sv
20441	return nil
20442}
20443
20444func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(v *[]types.AwsElbLbCookieStickinessPolicy, value interface{}) error {
20445	if v == nil {
20446		return fmt.Errorf("unexpected nil of type %T", v)
20447	}
20448	if value == nil {
20449		return nil
20450	}
20451
20452	shape, ok := value.([]interface{})
20453	if !ok {
20454		return fmt.Errorf("unexpected JSON type %v", value)
20455	}
20456
20457	var cv []types.AwsElbLbCookieStickinessPolicy
20458	if *v == nil {
20459		cv = []types.AwsElbLbCookieStickinessPolicy{}
20460	} else {
20461		cv = *v
20462	}
20463
20464	for _, value := range shape {
20465		var col types.AwsElbLbCookieStickinessPolicy
20466		destAddr := &col
20467		if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(&destAddr, value); err != nil {
20468			return err
20469		}
20470		col = *destAddr
20471		cv = append(cv, col)
20472
20473	}
20474	*v = cv
20475	return nil
20476}
20477
20478func awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicy(v **types.AwsElbLbCookieStickinessPolicy, value interface{}) error {
20479	if v == nil {
20480		return fmt.Errorf("unexpected nil of type %T", v)
20481	}
20482	if value == nil {
20483		return nil
20484	}
20485
20486	shape, ok := value.(map[string]interface{})
20487	if !ok {
20488		return fmt.Errorf("unexpected JSON type %v", value)
20489	}
20490
20491	var sv *types.AwsElbLbCookieStickinessPolicy
20492	if *v == nil {
20493		sv = &types.AwsElbLbCookieStickinessPolicy{}
20494	} else {
20495		sv = *v
20496	}
20497
20498	for key, value := range shape {
20499		switch key {
20500		case "CookieExpirationPeriod":
20501			if value != nil {
20502				jtv, ok := value.(json.Number)
20503				if !ok {
20504					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
20505				}
20506				i64, err := jtv.Int64()
20507				if err != nil {
20508					return err
20509				}
20510				sv.CookieExpirationPeriod = i64
20511			}
20512
20513		case "PolicyName":
20514			if value != nil {
20515				jtv, ok := value.(string)
20516				if !ok {
20517					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20518				}
20519				sv.PolicyName = ptr.String(jtv)
20520			}
20521
20522		default:
20523			_, _ = key, value
20524
20525		}
20526	}
20527	*v = sv
20528	return nil
20529}
20530
20531func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(v **types.AwsElbLoadBalancerAccessLog, value interface{}) error {
20532	if v == nil {
20533		return fmt.Errorf("unexpected nil of type %T", v)
20534	}
20535	if value == nil {
20536		return nil
20537	}
20538
20539	shape, ok := value.(map[string]interface{})
20540	if !ok {
20541		return fmt.Errorf("unexpected JSON type %v", value)
20542	}
20543
20544	var sv *types.AwsElbLoadBalancerAccessLog
20545	if *v == nil {
20546		sv = &types.AwsElbLoadBalancerAccessLog{}
20547	} else {
20548		sv = *v
20549	}
20550
20551	for key, value := range shape {
20552		switch key {
20553		case "EmitInterval":
20554			if value != nil {
20555				jtv, ok := value.(json.Number)
20556				if !ok {
20557					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
20558				}
20559				i64, err := jtv.Int64()
20560				if err != nil {
20561					return err
20562				}
20563				sv.EmitInterval = int32(i64)
20564			}
20565
20566		case "Enabled":
20567			if value != nil {
20568				jtv, ok := value.(bool)
20569				if !ok {
20570					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20571				}
20572				sv.Enabled = jtv
20573			}
20574
20575		case "S3BucketName":
20576			if value != nil {
20577				jtv, ok := value.(string)
20578				if !ok {
20579					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20580				}
20581				sv.S3BucketName = ptr.String(jtv)
20582			}
20583
20584		case "S3BucketPrefix":
20585			if value != nil {
20586				jtv, ok := value.(string)
20587				if !ok {
20588					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20589				}
20590				sv.S3BucketPrefix = ptr.String(jtv)
20591			}
20592
20593		default:
20594			_, _ = key, value
20595
20596		}
20597	}
20598	*v = sv
20599	return nil
20600}
20601
20602func awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(v **types.AwsElbLoadBalancerAttributes, value interface{}) error {
20603	if v == nil {
20604		return fmt.Errorf("unexpected nil of type %T", v)
20605	}
20606	if value == nil {
20607		return nil
20608	}
20609
20610	shape, ok := value.(map[string]interface{})
20611	if !ok {
20612		return fmt.Errorf("unexpected JSON type %v", value)
20613	}
20614
20615	var sv *types.AwsElbLoadBalancerAttributes
20616	if *v == nil {
20617		sv = &types.AwsElbLoadBalancerAttributes{}
20618	} else {
20619		sv = *v
20620	}
20621
20622	for key, value := range shape {
20623		switch key {
20624		case "AccessLog":
20625			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAccessLog(&sv.AccessLog, value); err != nil {
20626				return err
20627			}
20628
20629		case "ConnectionDraining":
20630			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(&sv.ConnectionDraining, value); err != nil {
20631				return err
20632			}
20633
20634		case "ConnectionSettings":
20635			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(&sv.ConnectionSettings, value); err != nil {
20636				return err
20637			}
20638
20639		case "CrossZoneLoadBalancing":
20640			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(&sv.CrossZoneLoadBalancing, value); err != nil {
20641				return err
20642			}
20643
20644		default:
20645			_, _ = key, value
20646
20647		}
20648	}
20649	*v = sv
20650	return nil
20651}
20652
20653func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(v **types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error {
20654	if v == nil {
20655		return fmt.Errorf("unexpected nil of type %T", v)
20656	}
20657	if value == nil {
20658		return nil
20659	}
20660
20661	shape, ok := value.(map[string]interface{})
20662	if !ok {
20663		return fmt.Errorf("unexpected JSON type %v", value)
20664	}
20665
20666	var sv *types.AwsElbLoadBalancerBackendServerDescription
20667	if *v == nil {
20668		sv = &types.AwsElbLoadBalancerBackendServerDescription{}
20669	} else {
20670		sv = *v
20671	}
20672
20673	for key, value := range shape {
20674		switch key {
20675		case "InstancePort":
20676			if value != nil {
20677				jtv, ok := value.(json.Number)
20678				if !ok {
20679					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
20680				}
20681				i64, err := jtv.Int64()
20682				if err != nil {
20683					return err
20684				}
20685				sv.InstancePort = int32(i64)
20686			}
20687
20688		case "PolicyNames":
20689			if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil {
20690				return err
20691			}
20692
20693		default:
20694			_, _ = key, value
20695
20696		}
20697	}
20698	*v = sv
20699	return nil
20700}
20701
20702func awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v *[]types.AwsElbLoadBalancerBackendServerDescription, value interface{}) error {
20703	if v == nil {
20704		return fmt.Errorf("unexpected nil of type %T", v)
20705	}
20706	if value == nil {
20707		return nil
20708	}
20709
20710	shape, ok := value.([]interface{})
20711	if !ok {
20712		return fmt.Errorf("unexpected JSON type %v", value)
20713	}
20714
20715	var cv []types.AwsElbLoadBalancerBackendServerDescription
20716	if *v == nil {
20717		cv = []types.AwsElbLoadBalancerBackendServerDescription{}
20718	} else {
20719		cv = *v
20720	}
20721
20722	for _, value := range shape {
20723		var col types.AwsElbLoadBalancerBackendServerDescription
20724		destAddr := &col
20725		if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescription(&destAddr, value); err != nil {
20726			return err
20727		}
20728		col = *destAddr
20729		cv = append(cv, col)
20730
20731	}
20732	*v = cv
20733	return nil
20734}
20735
20736func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionDraining(v **types.AwsElbLoadBalancerConnectionDraining, value interface{}) error {
20737	if v == nil {
20738		return fmt.Errorf("unexpected nil of type %T", v)
20739	}
20740	if value == nil {
20741		return nil
20742	}
20743
20744	shape, ok := value.(map[string]interface{})
20745	if !ok {
20746		return fmt.Errorf("unexpected JSON type %v", value)
20747	}
20748
20749	var sv *types.AwsElbLoadBalancerConnectionDraining
20750	if *v == nil {
20751		sv = &types.AwsElbLoadBalancerConnectionDraining{}
20752	} else {
20753		sv = *v
20754	}
20755
20756	for key, value := range shape {
20757		switch key {
20758		case "Enabled":
20759			if value != nil {
20760				jtv, ok := value.(bool)
20761				if !ok {
20762					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20763				}
20764				sv.Enabled = jtv
20765			}
20766
20767		case "Timeout":
20768			if value != nil {
20769				jtv, ok := value.(json.Number)
20770				if !ok {
20771					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
20772				}
20773				i64, err := jtv.Int64()
20774				if err != nil {
20775					return err
20776				}
20777				sv.Timeout = int32(i64)
20778			}
20779
20780		default:
20781			_, _ = key, value
20782
20783		}
20784	}
20785	*v = sv
20786	return nil
20787}
20788
20789func awsRestjson1_deserializeDocumentAwsElbLoadBalancerConnectionSettings(v **types.AwsElbLoadBalancerConnectionSettings, value interface{}) error {
20790	if v == nil {
20791		return fmt.Errorf("unexpected nil of type %T", v)
20792	}
20793	if value == nil {
20794		return nil
20795	}
20796
20797	shape, ok := value.(map[string]interface{})
20798	if !ok {
20799		return fmt.Errorf("unexpected JSON type %v", value)
20800	}
20801
20802	var sv *types.AwsElbLoadBalancerConnectionSettings
20803	if *v == nil {
20804		sv = &types.AwsElbLoadBalancerConnectionSettings{}
20805	} else {
20806		sv = *v
20807	}
20808
20809	for key, value := range shape {
20810		switch key {
20811		case "IdleTimeout":
20812			if value != nil {
20813				jtv, ok := value.(json.Number)
20814				if !ok {
20815					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
20816				}
20817				i64, err := jtv.Int64()
20818				if err != nil {
20819					return err
20820				}
20821				sv.IdleTimeout = int32(i64)
20822			}
20823
20824		default:
20825			_, _ = key, value
20826
20827		}
20828	}
20829	*v = sv
20830	return nil
20831}
20832
20833func awsRestjson1_deserializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v **types.AwsElbLoadBalancerCrossZoneLoadBalancing, value interface{}) error {
20834	if v == nil {
20835		return fmt.Errorf("unexpected nil of type %T", v)
20836	}
20837	if value == nil {
20838		return nil
20839	}
20840
20841	shape, ok := value.(map[string]interface{})
20842	if !ok {
20843		return fmt.Errorf("unexpected JSON type %v", value)
20844	}
20845
20846	var sv *types.AwsElbLoadBalancerCrossZoneLoadBalancing
20847	if *v == nil {
20848		sv = &types.AwsElbLoadBalancerCrossZoneLoadBalancing{}
20849	} else {
20850		sv = *v
20851	}
20852
20853	for key, value := range shape {
20854		switch key {
20855		case "Enabled":
20856			if value != nil {
20857				jtv, ok := value.(bool)
20858				if !ok {
20859					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
20860				}
20861				sv.Enabled = jtv
20862			}
20863
20864		default:
20865			_, _ = key, value
20866
20867		}
20868	}
20869	*v = sv
20870	return nil
20871}
20872
20873func awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(v **types.AwsElbLoadBalancerDetails, value interface{}) error {
20874	if v == nil {
20875		return fmt.Errorf("unexpected nil of type %T", v)
20876	}
20877	if value == nil {
20878		return nil
20879	}
20880
20881	shape, ok := value.(map[string]interface{})
20882	if !ok {
20883		return fmt.Errorf("unexpected JSON type %v", value)
20884	}
20885
20886	var sv *types.AwsElbLoadBalancerDetails
20887	if *v == nil {
20888		sv = &types.AwsElbLoadBalancerDetails{}
20889	} else {
20890		sv = *v
20891	}
20892
20893	for key, value := range shape {
20894		switch key {
20895		case "AvailabilityZones":
20896			if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil {
20897				return err
20898			}
20899
20900		case "BackendServerDescriptions":
20901			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerBackendServerDescriptions(&sv.BackendServerDescriptions, value); err != nil {
20902				return err
20903			}
20904
20905		case "CanonicalHostedZoneName":
20906			if value != nil {
20907				jtv, ok := value.(string)
20908				if !ok {
20909					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20910				}
20911				sv.CanonicalHostedZoneName = ptr.String(jtv)
20912			}
20913
20914		case "CanonicalHostedZoneNameID":
20915			if value != nil {
20916				jtv, ok := value.(string)
20917				if !ok {
20918					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20919				}
20920				sv.CanonicalHostedZoneNameID = ptr.String(jtv)
20921			}
20922
20923		case "CreatedTime":
20924			if value != nil {
20925				jtv, ok := value.(string)
20926				if !ok {
20927					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20928				}
20929				sv.CreatedTime = ptr.String(jtv)
20930			}
20931
20932		case "DnsName":
20933			if value != nil {
20934				jtv, ok := value.(string)
20935				if !ok {
20936					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20937				}
20938				sv.DnsName = ptr.String(jtv)
20939			}
20940
20941		case "HealthCheck":
20942			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(&sv.HealthCheck, value); err != nil {
20943				return err
20944			}
20945
20946		case "Instances":
20947			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(&sv.Instances, value); err != nil {
20948				return err
20949			}
20950
20951		case "ListenerDescriptions":
20952			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(&sv.ListenerDescriptions, value); err != nil {
20953				return err
20954			}
20955
20956		case "LoadBalancerAttributes":
20957			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerAttributes(&sv.LoadBalancerAttributes, value); err != nil {
20958				return err
20959			}
20960
20961		case "LoadBalancerName":
20962			if value != nil {
20963				jtv, ok := value.(string)
20964				if !ok {
20965					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20966				}
20967				sv.LoadBalancerName = ptr.String(jtv)
20968			}
20969
20970		case "Policies":
20971			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(&sv.Policies, value); err != nil {
20972				return err
20973			}
20974
20975		case "Scheme":
20976			if value != nil {
20977				jtv, ok := value.(string)
20978				if !ok {
20979					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
20980				}
20981				sv.Scheme = ptr.String(jtv)
20982			}
20983
20984		case "SecurityGroups":
20985			if err := awsRestjson1_deserializeDocumentStringList(&sv.SecurityGroups, value); err != nil {
20986				return err
20987			}
20988
20989		case "SourceSecurityGroup":
20990			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(&sv.SourceSecurityGroup, value); err != nil {
20991				return err
20992			}
20993
20994		case "Subnets":
20995			if err := awsRestjson1_deserializeDocumentStringList(&sv.Subnets, value); err != nil {
20996				return err
20997			}
20998
20999		case "VpcId":
21000			if value != nil {
21001				jtv, ok := value.(string)
21002				if !ok {
21003					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21004				}
21005				sv.VpcId = ptr.String(jtv)
21006			}
21007
21008		default:
21009			_, _ = key, value
21010
21011		}
21012	}
21013	*v = sv
21014	return nil
21015}
21016
21017func awsRestjson1_deserializeDocumentAwsElbLoadBalancerHealthCheck(v **types.AwsElbLoadBalancerHealthCheck, value interface{}) error {
21018	if v == nil {
21019		return fmt.Errorf("unexpected nil of type %T", v)
21020	}
21021	if value == nil {
21022		return nil
21023	}
21024
21025	shape, ok := value.(map[string]interface{})
21026	if !ok {
21027		return fmt.Errorf("unexpected JSON type %v", value)
21028	}
21029
21030	var sv *types.AwsElbLoadBalancerHealthCheck
21031	if *v == nil {
21032		sv = &types.AwsElbLoadBalancerHealthCheck{}
21033	} else {
21034		sv = *v
21035	}
21036
21037	for key, value := range shape {
21038		switch key {
21039		case "HealthyThreshold":
21040			if value != nil {
21041				jtv, ok := value.(json.Number)
21042				if !ok {
21043					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21044				}
21045				i64, err := jtv.Int64()
21046				if err != nil {
21047					return err
21048				}
21049				sv.HealthyThreshold = int32(i64)
21050			}
21051
21052		case "Interval":
21053			if value != nil {
21054				jtv, ok := value.(json.Number)
21055				if !ok {
21056					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21057				}
21058				i64, err := jtv.Int64()
21059				if err != nil {
21060					return err
21061				}
21062				sv.Interval = int32(i64)
21063			}
21064
21065		case "Target":
21066			if value != nil {
21067				jtv, ok := value.(string)
21068				if !ok {
21069					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21070				}
21071				sv.Target = ptr.String(jtv)
21072			}
21073
21074		case "Timeout":
21075			if value != nil {
21076				jtv, ok := value.(json.Number)
21077				if !ok {
21078					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21079				}
21080				i64, err := jtv.Int64()
21081				if err != nil {
21082					return err
21083				}
21084				sv.Timeout = int32(i64)
21085			}
21086
21087		case "UnhealthyThreshold":
21088			if value != nil {
21089				jtv, ok := value.(json.Number)
21090				if !ok {
21091					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21092				}
21093				i64, err := jtv.Int64()
21094				if err != nil {
21095					return err
21096				}
21097				sv.UnhealthyThreshold = int32(i64)
21098			}
21099
21100		default:
21101			_, _ = key, value
21102
21103		}
21104	}
21105	*v = sv
21106	return nil
21107}
21108
21109func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(v **types.AwsElbLoadBalancerInstance, value interface{}) error {
21110	if v == nil {
21111		return fmt.Errorf("unexpected nil of type %T", v)
21112	}
21113	if value == nil {
21114		return nil
21115	}
21116
21117	shape, ok := value.(map[string]interface{})
21118	if !ok {
21119		return fmt.Errorf("unexpected JSON type %v", value)
21120	}
21121
21122	var sv *types.AwsElbLoadBalancerInstance
21123	if *v == nil {
21124		sv = &types.AwsElbLoadBalancerInstance{}
21125	} else {
21126		sv = *v
21127	}
21128
21129	for key, value := range shape {
21130		switch key {
21131		case "InstanceId":
21132			if value != nil {
21133				jtv, ok := value.(string)
21134				if !ok {
21135					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21136				}
21137				sv.InstanceId = ptr.String(jtv)
21138			}
21139
21140		default:
21141			_, _ = key, value
21142
21143		}
21144	}
21145	*v = sv
21146	return nil
21147}
21148
21149func awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstances(v *[]types.AwsElbLoadBalancerInstance, value interface{}) error {
21150	if v == nil {
21151		return fmt.Errorf("unexpected nil of type %T", v)
21152	}
21153	if value == nil {
21154		return nil
21155	}
21156
21157	shape, ok := value.([]interface{})
21158	if !ok {
21159		return fmt.Errorf("unexpected JSON type %v", value)
21160	}
21161
21162	var cv []types.AwsElbLoadBalancerInstance
21163	if *v == nil {
21164		cv = []types.AwsElbLoadBalancerInstance{}
21165	} else {
21166		cv = *v
21167	}
21168
21169	for _, value := range shape {
21170		var col types.AwsElbLoadBalancerInstance
21171		destAddr := &col
21172		if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerInstance(&destAddr, value); err != nil {
21173			return err
21174		}
21175		col = *destAddr
21176		cv = append(cv, col)
21177
21178	}
21179	*v = cv
21180	return nil
21181}
21182
21183func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(v **types.AwsElbLoadBalancerListener, value interface{}) error {
21184	if v == nil {
21185		return fmt.Errorf("unexpected nil of type %T", v)
21186	}
21187	if value == nil {
21188		return nil
21189	}
21190
21191	shape, ok := value.(map[string]interface{})
21192	if !ok {
21193		return fmt.Errorf("unexpected JSON type %v", value)
21194	}
21195
21196	var sv *types.AwsElbLoadBalancerListener
21197	if *v == nil {
21198		sv = &types.AwsElbLoadBalancerListener{}
21199	} else {
21200		sv = *v
21201	}
21202
21203	for key, value := range shape {
21204		switch key {
21205		case "InstancePort":
21206			if value != nil {
21207				jtv, ok := value.(json.Number)
21208				if !ok {
21209					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21210				}
21211				i64, err := jtv.Int64()
21212				if err != nil {
21213					return err
21214				}
21215				sv.InstancePort = int32(i64)
21216			}
21217
21218		case "InstanceProtocol":
21219			if value != nil {
21220				jtv, ok := value.(string)
21221				if !ok {
21222					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21223				}
21224				sv.InstanceProtocol = ptr.String(jtv)
21225			}
21226
21227		case "LoadBalancerPort":
21228			if value != nil {
21229				jtv, ok := value.(json.Number)
21230				if !ok {
21231					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
21232				}
21233				i64, err := jtv.Int64()
21234				if err != nil {
21235					return err
21236				}
21237				sv.LoadBalancerPort = int32(i64)
21238			}
21239
21240		case "Protocol":
21241			if value != nil {
21242				jtv, ok := value.(string)
21243				if !ok {
21244					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21245				}
21246				sv.Protocol = ptr.String(jtv)
21247			}
21248
21249		case "SslCertificateId":
21250			if value != nil {
21251				jtv, ok := value.(string)
21252				if !ok {
21253					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21254				}
21255				sv.SslCertificateId = ptr.String(jtv)
21256			}
21257
21258		default:
21259			_, _ = key, value
21260
21261		}
21262	}
21263	*v = sv
21264	return nil
21265}
21266
21267func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(v **types.AwsElbLoadBalancerListenerDescription, value interface{}) error {
21268	if v == nil {
21269		return fmt.Errorf("unexpected nil of type %T", v)
21270	}
21271	if value == nil {
21272		return nil
21273	}
21274
21275	shape, ok := value.(map[string]interface{})
21276	if !ok {
21277		return fmt.Errorf("unexpected JSON type %v", value)
21278	}
21279
21280	var sv *types.AwsElbLoadBalancerListenerDescription
21281	if *v == nil {
21282		sv = &types.AwsElbLoadBalancerListenerDescription{}
21283	} else {
21284		sv = *v
21285	}
21286
21287	for key, value := range shape {
21288		switch key {
21289		case "Listener":
21290			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListener(&sv.Listener, value); err != nil {
21291				return err
21292			}
21293
21294		case "PolicyNames":
21295			if err := awsRestjson1_deserializeDocumentStringList(&sv.PolicyNames, value); err != nil {
21296				return err
21297			}
21298
21299		default:
21300			_, _ = key, value
21301
21302		}
21303	}
21304	*v = sv
21305	return nil
21306}
21307
21308func awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescriptions(v *[]types.AwsElbLoadBalancerListenerDescription, value interface{}) error {
21309	if v == nil {
21310		return fmt.Errorf("unexpected nil of type %T", v)
21311	}
21312	if value == nil {
21313		return nil
21314	}
21315
21316	shape, ok := value.([]interface{})
21317	if !ok {
21318		return fmt.Errorf("unexpected JSON type %v", value)
21319	}
21320
21321	var cv []types.AwsElbLoadBalancerListenerDescription
21322	if *v == nil {
21323		cv = []types.AwsElbLoadBalancerListenerDescription{}
21324	} else {
21325		cv = *v
21326	}
21327
21328	for _, value := range shape {
21329		var col types.AwsElbLoadBalancerListenerDescription
21330		destAddr := &col
21331		if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerListenerDescription(&destAddr, value); err != nil {
21332			return err
21333		}
21334		col = *destAddr
21335		cv = append(cv, col)
21336
21337	}
21338	*v = cv
21339	return nil
21340}
21341
21342func awsRestjson1_deserializeDocumentAwsElbLoadBalancerPolicies(v **types.AwsElbLoadBalancerPolicies, value interface{}) error {
21343	if v == nil {
21344		return fmt.Errorf("unexpected nil of type %T", v)
21345	}
21346	if value == nil {
21347		return nil
21348	}
21349
21350	shape, ok := value.(map[string]interface{})
21351	if !ok {
21352		return fmt.Errorf("unexpected JSON type %v", value)
21353	}
21354
21355	var sv *types.AwsElbLoadBalancerPolicies
21356	if *v == nil {
21357		sv = &types.AwsElbLoadBalancerPolicies{}
21358	} else {
21359		sv = *v
21360	}
21361
21362	for key, value := range shape {
21363		switch key {
21364		case "AppCookieStickinessPolicies":
21365			if err := awsRestjson1_deserializeDocumentAwsElbAppCookieStickinessPolicies(&sv.AppCookieStickinessPolicies, value); err != nil {
21366				return err
21367			}
21368
21369		case "LbCookieStickinessPolicies":
21370			if err := awsRestjson1_deserializeDocumentAwsElbLbCookieStickinessPolicies(&sv.LbCookieStickinessPolicies, value); err != nil {
21371				return err
21372			}
21373
21374		case "OtherPolicies":
21375			if err := awsRestjson1_deserializeDocumentStringList(&sv.OtherPolicies, value); err != nil {
21376				return err
21377			}
21378
21379		default:
21380			_, _ = key, value
21381
21382		}
21383	}
21384	*v = sv
21385	return nil
21386}
21387
21388func awsRestjson1_deserializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v **types.AwsElbLoadBalancerSourceSecurityGroup, value interface{}) error {
21389	if v == nil {
21390		return fmt.Errorf("unexpected nil of type %T", v)
21391	}
21392	if value == nil {
21393		return nil
21394	}
21395
21396	shape, ok := value.(map[string]interface{})
21397	if !ok {
21398		return fmt.Errorf("unexpected JSON type %v", value)
21399	}
21400
21401	var sv *types.AwsElbLoadBalancerSourceSecurityGroup
21402	if *v == nil {
21403		sv = &types.AwsElbLoadBalancerSourceSecurityGroup{}
21404	} else {
21405		sv = *v
21406	}
21407
21408	for key, value := range shape {
21409		switch key {
21410		case "GroupName":
21411			if value != nil {
21412				jtv, ok := value.(string)
21413				if !ok {
21414					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21415				}
21416				sv.GroupName = ptr.String(jtv)
21417			}
21418
21419		case "OwnerAlias":
21420			if value != nil {
21421				jtv, ok := value.(string)
21422				if !ok {
21423					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21424				}
21425				sv.OwnerAlias = ptr.String(jtv)
21426			}
21427
21428		default:
21429			_, _ = key, value
21430
21431		}
21432	}
21433	*v = sv
21434	return nil
21435}
21436
21437func awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(v **types.AwsElbv2LoadBalancerDetails, value interface{}) error {
21438	if v == nil {
21439		return fmt.Errorf("unexpected nil of type %T", v)
21440	}
21441	if value == nil {
21442		return nil
21443	}
21444
21445	shape, ok := value.(map[string]interface{})
21446	if !ok {
21447		return fmt.Errorf("unexpected JSON type %v", value)
21448	}
21449
21450	var sv *types.AwsElbv2LoadBalancerDetails
21451	if *v == nil {
21452		sv = &types.AwsElbv2LoadBalancerDetails{}
21453	} else {
21454		sv = *v
21455	}
21456
21457	for key, value := range shape {
21458		switch key {
21459		case "AvailabilityZones":
21460			if err := awsRestjson1_deserializeDocumentAvailabilityZones(&sv.AvailabilityZones, value); err != nil {
21461				return err
21462			}
21463
21464		case "CanonicalHostedZoneId":
21465			if value != nil {
21466				jtv, ok := value.(string)
21467				if !ok {
21468					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21469				}
21470				sv.CanonicalHostedZoneId = ptr.String(jtv)
21471			}
21472
21473		case "CreatedTime":
21474			if value != nil {
21475				jtv, ok := value.(string)
21476				if !ok {
21477					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21478				}
21479				sv.CreatedTime = ptr.String(jtv)
21480			}
21481
21482		case "DNSName":
21483			if value != nil {
21484				jtv, ok := value.(string)
21485				if !ok {
21486					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21487				}
21488				sv.DNSName = ptr.String(jtv)
21489			}
21490
21491		case "IpAddressType":
21492			if value != nil {
21493				jtv, ok := value.(string)
21494				if !ok {
21495					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21496				}
21497				sv.IpAddressType = ptr.String(jtv)
21498			}
21499
21500		case "Scheme":
21501			if value != nil {
21502				jtv, ok := value.(string)
21503				if !ok {
21504					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21505				}
21506				sv.Scheme = ptr.String(jtv)
21507			}
21508
21509		case "SecurityGroups":
21510			if err := awsRestjson1_deserializeDocumentSecurityGroups(&sv.SecurityGroups, value); err != nil {
21511				return err
21512			}
21513
21514		case "State":
21515			if err := awsRestjson1_deserializeDocumentLoadBalancerState(&sv.State, value); err != nil {
21516				return err
21517			}
21518
21519		case "Type":
21520			if value != nil {
21521				jtv, ok := value.(string)
21522				if !ok {
21523					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21524				}
21525				sv.Type = ptr.String(jtv)
21526			}
21527
21528		case "VpcId":
21529			if value != nil {
21530				jtv, ok := value.(string)
21531				if !ok {
21532					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21533				}
21534				sv.VpcId = ptr.String(jtv)
21535			}
21536
21537		default:
21538			_, _ = key, value
21539
21540		}
21541	}
21542	*v = sv
21543	return nil
21544}
21545
21546func awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(v **types.AwsIamAccessKeyDetails, value interface{}) error {
21547	if v == nil {
21548		return fmt.Errorf("unexpected nil of type %T", v)
21549	}
21550	if value == nil {
21551		return nil
21552	}
21553
21554	shape, ok := value.(map[string]interface{})
21555	if !ok {
21556		return fmt.Errorf("unexpected JSON type %v", value)
21557	}
21558
21559	var sv *types.AwsIamAccessKeyDetails
21560	if *v == nil {
21561		sv = &types.AwsIamAccessKeyDetails{}
21562	} else {
21563		sv = *v
21564	}
21565
21566	for key, value := range shape {
21567		switch key {
21568		case "AccessKeyId":
21569			if value != nil {
21570				jtv, ok := value.(string)
21571				if !ok {
21572					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21573				}
21574				sv.AccessKeyId = ptr.String(jtv)
21575			}
21576
21577		case "AccountId":
21578			if value != nil {
21579				jtv, ok := value.(string)
21580				if !ok {
21581					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21582				}
21583				sv.AccountId = ptr.String(jtv)
21584			}
21585
21586		case "CreatedAt":
21587			if value != nil {
21588				jtv, ok := value.(string)
21589				if !ok {
21590					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21591				}
21592				sv.CreatedAt = ptr.String(jtv)
21593			}
21594
21595		case "PrincipalId":
21596			if value != nil {
21597				jtv, ok := value.(string)
21598				if !ok {
21599					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21600				}
21601				sv.PrincipalId = ptr.String(jtv)
21602			}
21603
21604		case "PrincipalName":
21605			if value != nil {
21606				jtv, ok := value.(string)
21607				if !ok {
21608					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21609				}
21610				sv.PrincipalName = ptr.String(jtv)
21611			}
21612
21613		case "PrincipalType":
21614			if value != nil {
21615				jtv, ok := value.(string)
21616				if !ok {
21617					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21618				}
21619				sv.PrincipalType = ptr.String(jtv)
21620			}
21621
21622		case "SessionContext":
21623			if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(&sv.SessionContext, value); err != nil {
21624				return err
21625			}
21626
21627		case "Status":
21628			if value != nil {
21629				jtv, ok := value.(string)
21630				if !ok {
21631					return fmt.Errorf("expected AwsIamAccessKeyStatus to be of type string, got %T instead", value)
21632				}
21633				sv.Status = types.AwsIamAccessKeyStatus(jtv)
21634			}
21635
21636		case "UserName":
21637			if value != nil {
21638				jtv, ok := value.(string)
21639				if !ok {
21640					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21641				}
21642				sv.UserName = ptr.String(jtv)
21643			}
21644
21645		default:
21646			_, _ = key, value
21647
21648		}
21649	}
21650	*v = sv
21651	return nil
21652}
21653
21654func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContext(v **types.AwsIamAccessKeySessionContext, value interface{}) error {
21655	if v == nil {
21656		return fmt.Errorf("unexpected nil of type %T", v)
21657	}
21658	if value == nil {
21659		return nil
21660	}
21661
21662	shape, ok := value.(map[string]interface{})
21663	if !ok {
21664		return fmt.Errorf("unexpected JSON type %v", value)
21665	}
21666
21667	var sv *types.AwsIamAccessKeySessionContext
21668	if *v == nil {
21669		sv = &types.AwsIamAccessKeySessionContext{}
21670	} else {
21671		sv = *v
21672	}
21673
21674	for key, value := range shape {
21675		switch key {
21676		case "Attributes":
21677			if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(&sv.Attributes, value); err != nil {
21678				return err
21679			}
21680
21681		case "SessionIssuer":
21682			if err := awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(&sv.SessionIssuer, value); err != nil {
21683				return err
21684			}
21685
21686		default:
21687			_, _ = key, value
21688
21689		}
21690	}
21691	*v = sv
21692	return nil
21693}
21694
21695func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextAttributes(v **types.AwsIamAccessKeySessionContextAttributes, value interface{}) error {
21696	if v == nil {
21697		return fmt.Errorf("unexpected nil of type %T", v)
21698	}
21699	if value == nil {
21700		return nil
21701	}
21702
21703	shape, ok := value.(map[string]interface{})
21704	if !ok {
21705		return fmt.Errorf("unexpected JSON type %v", value)
21706	}
21707
21708	var sv *types.AwsIamAccessKeySessionContextAttributes
21709	if *v == nil {
21710		sv = &types.AwsIamAccessKeySessionContextAttributes{}
21711	} else {
21712		sv = *v
21713	}
21714
21715	for key, value := range shape {
21716		switch key {
21717		case "CreationDate":
21718			if value != nil {
21719				jtv, ok := value.(string)
21720				if !ok {
21721					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21722				}
21723				sv.CreationDate = ptr.String(jtv)
21724			}
21725
21726		case "MfaAuthenticated":
21727			if value != nil {
21728				jtv, ok := value.(bool)
21729				if !ok {
21730					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
21731				}
21732				sv.MfaAuthenticated = jtv
21733			}
21734
21735		default:
21736			_, _ = key, value
21737
21738		}
21739	}
21740	*v = sv
21741	return nil
21742}
21743
21744func awsRestjson1_deserializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v **types.AwsIamAccessKeySessionContextSessionIssuer, value interface{}) error {
21745	if v == nil {
21746		return fmt.Errorf("unexpected nil of type %T", v)
21747	}
21748	if value == nil {
21749		return nil
21750	}
21751
21752	shape, ok := value.(map[string]interface{})
21753	if !ok {
21754		return fmt.Errorf("unexpected JSON type %v", value)
21755	}
21756
21757	var sv *types.AwsIamAccessKeySessionContextSessionIssuer
21758	if *v == nil {
21759		sv = &types.AwsIamAccessKeySessionContextSessionIssuer{}
21760	} else {
21761		sv = *v
21762	}
21763
21764	for key, value := range shape {
21765		switch key {
21766		case "AccountId":
21767			if value != nil {
21768				jtv, ok := value.(string)
21769				if !ok {
21770					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21771				}
21772				sv.AccountId = ptr.String(jtv)
21773			}
21774
21775		case "Arn":
21776			if value != nil {
21777				jtv, ok := value.(string)
21778				if !ok {
21779					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21780				}
21781				sv.Arn = ptr.String(jtv)
21782			}
21783
21784		case "PrincipalId":
21785			if value != nil {
21786				jtv, ok := value.(string)
21787				if !ok {
21788					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21789				}
21790				sv.PrincipalId = ptr.String(jtv)
21791			}
21792
21793		case "Type":
21794			if value != nil {
21795				jtv, ok := value.(string)
21796				if !ok {
21797					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21798				}
21799				sv.Type = ptr.String(jtv)
21800			}
21801
21802		case "UserName":
21803			if value != nil {
21804				jtv, ok := value.(string)
21805				if !ok {
21806					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21807				}
21808				sv.UserName = ptr.String(jtv)
21809			}
21810
21811		default:
21812			_, _ = key, value
21813
21814		}
21815	}
21816	*v = sv
21817	return nil
21818}
21819
21820func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(v **types.AwsIamAttachedManagedPolicy, value interface{}) error {
21821	if v == nil {
21822		return fmt.Errorf("unexpected nil of type %T", v)
21823	}
21824	if value == nil {
21825		return nil
21826	}
21827
21828	shape, ok := value.(map[string]interface{})
21829	if !ok {
21830		return fmt.Errorf("unexpected JSON type %v", value)
21831	}
21832
21833	var sv *types.AwsIamAttachedManagedPolicy
21834	if *v == nil {
21835		sv = &types.AwsIamAttachedManagedPolicy{}
21836	} else {
21837		sv = *v
21838	}
21839
21840	for key, value := range shape {
21841		switch key {
21842		case "PolicyArn":
21843			if value != nil {
21844				jtv, ok := value.(string)
21845				if !ok {
21846					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21847				}
21848				sv.PolicyArn = ptr.String(jtv)
21849			}
21850
21851		case "PolicyName":
21852			if value != nil {
21853				jtv, ok := value.(string)
21854				if !ok {
21855					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21856				}
21857				sv.PolicyName = ptr.String(jtv)
21858			}
21859
21860		default:
21861			_, _ = key, value
21862
21863		}
21864	}
21865	*v = sv
21866	return nil
21867}
21868
21869func awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(v *[]types.AwsIamAttachedManagedPolicy, value interface{}) error {
21870	if v == nil {
21871		return fmt.Errorf("unexpected nil of type %T", v)
21872	}
21873	if value == nil {
21874		return nil
21875	}
21876
21877	shape, ok := value.([]interface{})
21878	if !ok {
21879		return fmt.Errorf("unexpected JSON type %v", value)
21880	}
21881
21882	var cv []types.AwsIamAttachedManagedPolicy
21883	if *v == nil {
21884		cv = []types.AwsIamAttachedManagedPolicy{}
21885	} else {
21886		cv = *v
21887	}
21888
21889	for _, value := range shape {
21890		var col types.AwsIamAttachedManagedPolicy
21891		destAddr := &col
21892		if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicy(&destAddr, value); err != nil {
21893			return err
21894		}
21895		col = *destAddr
21896		cv = append(cv, col)
21897
21898	}
21899	*v = cv
21900	return nil
21901}
21902
21903func awsRestjson1_deserializeDocumentAwsIamGroupDetails(v **types.AwsIamGroupDetails, value interface{}) error {
21904	if v == nil {
21905		return fmt.Errorf("unexpected nil of type %T", v)
21906	}
21907	if value == nil {
21908		return nil
21909	}
21910
21911	shape, ok := value.(map[string]interface{})
21912	if !ok {
21913		return fmt.Errorf("unexpected JSON type %v", value)
21914	}
21915
21916	var sv *types.AwsIamGroupDetails
21917	if *v == nil {
21918		sv = &types.AwsIamGroupDetails{}
21919	} else {
21920		sv = *v
21921	}
21922
21923	for key, value := range shape {
21924		switch key {
21925		case "AttachedManagedPolicies":
21926			if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil {
21927				return err
21928			}
21929
21930		case "CreateDate":
21931			if value != nil {
21932				jtv, ok := value.(string)
21933				if !ok {
21934					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21935				}
21936				sv.CreateDate = ptr.String(jtv)
21937			}
21938
21939		case "GroupId":
21940			if value != nil {
21941				jtv, ok := value.(string)
21942				if !ok {
21943					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21944				}
21945				sv.GroupId = ptr.String(jtv)
21946			}
21947
21948		case "GroupName":
21949			if value != nil {
21950				jtv, ok := value.(string)
21951				if !ok {
21952					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21953				}
21954				sv.GroupName = ptr.String(jtv)
21955			}
21956
21957		case "GroupPolicyList":
21958			if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(&sv.GroupPolicyList, value); err != nil {
21959				return err
21960			}
21961
21962		case "Path":
21963			if value != nil {
21964				jtv, ok := value.(string)
21965				if !ok {
21966					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
21967				}
21968				sv.Path = ptr.String(jtv)
21969			}
21970
21971		default:
21972			_, _ = key, value
21973
21974		}
21975	}
21976	*v = sv
21977	return nil
21978}
21979
21980func awsRestjson1_deserializeDocumentAwsIamGroupPolicy(v **types.AwsIamGroupPolicy, value interface{}) error {
21981	if v == nil {
21982		return fmt.Errorf("unexpected nil of type %T", v)
21983	}
21984	if value == nil {
21985		return nil
21986	}
21987
21988	shape, ok := value.(map[string]interface{})
21989	if !ok {
21990		return fmt.Errorf("unexpected JSON type %v", value)
21991	}
21992
21993	var sv *types.AwsIamGroupPolicy
21994	if *v == nil {
21995		sv = &types.AwsIamGroupPolicy{}
21996	} else {
21997		sv = *v
21998	}
21999
22000	for key, value := range shape {
22001		switch key {
22002		case "PolicyName":
22003			if value != nil {
22004				jtv, ok := value.(string)
22005				if !ok {
22006					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22007				}
22008				sv.PolicyName = ptr.String(jtv)
22009			}
22010
22011		default:
22012			_, _ = key, value
22013
22014		}
22015	}
22016	*v = sv
22017	return nil
22018}
22019
22020func awsRestjson1_deserializeDocumentAwsIamGroupPolicyList(v *[]types.AwsIamGroupPolicy, value interface{}) error {
22021	if v == nil {
22022		return fmt.Errorf("unexpected nil of type %T", v)
22023	}
22024	if value == nil {
22025		return nil
22026	}
22027
22028	shape, ok := value.([]interface{})
22029	if !ok {
22030		return fmt.Errorf("unexpected JSON type %v", value)
22031	}
22032
22033	var cv []types.AwsIamGroupPolicy
22034	if *v == nil {
22035		cv = []types.AwsIamGroupPolicy{}
22036	} else {
22037		cv = *v
22038	}
22039
22040	for _, value := range shape {
22041		var col types.AwsIamGroupPolicy
22042		destAddr := &col
22043		if err := awsRestjson1_deserializeDocumentAwsIamGroupPolicy(&destAddr, value); err != nil {
22044			return err
22045		}
22046		col = *destAddr
22047		cv = append(cv, col)
22048
22049	}
22050	*v = cv
22051	return nil
22052}
22053
22054func awsRestjson1_deserializeDocumentAwsIamInstanceProfile(v **types.AwsIamInstanceProfile, value interface{}) error {
22055	if v == nil {
22056		return fmt.Errorf("unexpected nil of type %T", v)
22057	}
22058	if value == nil {
22059		return nil
22060	}
22061
22062	shape, ok := value.(map[string]interface{})
22063	if !ok {
22064		return fmt.Errorf("unexpected JSON type %v", value)
22065	}
22066
22067	var sv *types.AwsIamInstanceProfile
22068	if *v == nil {
22069		sv = &types.AwsIamInstanceProfile{}
22070	} else {
22071		sv = *v
22072	}
22073
22074	for key, value := range shape {
22075		switch key {
22076		case "Arn":
22077			if value != nil {
22078				jtv, ok := value.(string)
22079				if !ok {
22080					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22081				}
22082				sv.Arn = ptr.String(jtv)
22083			}
22084
22085		case "CreateDate":
22086			if value != nil {
22087				jtv, ok := value.(string)
22088				if !ok {
22089					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22090				}
22091				sv.CreateDate = ptr.String(jtv)
22092			}
22093
22094		case "InstanceProfileId":
22095			if value != nil {
22096				jtv, ok := value.(string)
22097				if !ok {
22098					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22099				}
22100				sv.InstanceProfileId = ptr.String(jtv)
22101			}
22102
22103		case "InstanceProfileName":
22104			if value != nil {
22105				jtv, ok := value.(string)
22106				if !ok {
22107					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22108				}
22109				sv.InstanceProfileName = ptr.String(jtv)
22110			}
22111
22112		case "Path":
22113			if value != nil {
22114				jtv, ok := value.(string)
22115				if !ok {
22116					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22117				}
22118				sv.Path = ptr.String(jtv)
22119			}
22120
22121		case "Roles":
22122			if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(&sv.Roles, value); err != nil {
22123				return err
22124			}
22125
22126		default:
22127			_, _ = key, value
22128
22129		}
22130	}
22131	*v = sv
22132	return nil
22133}
22134
22135func awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(v *[]types.AwsIamInstanceProfile, value interface{}) error {
22136	if v == nil {
22137		return fmt.Errorf("unexpected nil of type %T", v)
22138	}
22139	if value == nil {
22140		return nil
22141	}
22142
22143	shape, ok := value.([]interface{})
22144	if !ok {
22145		return fmt.Errorf("unexpected JSON type %v", value)
22146	}
22147
22148	var cv []types.AwsIamInstanceProfile
22149	if *v == nil {
22150		cv = []types.AwsIamInstanceProfile{}
22151	} else {
22152		cv = *v
22153	}
22154
22155	for _, value := range shape {
22156		var col types.AwsIamInstanceProfile
22157		destAddr := &col
22158		if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfile(&destAddr, value); err != nil {
22159			return err
22160		}
22161		col = *destAddr
22162		cv = append(cv, col)
22163
22164	}
22165	*v = cv
22166	return nil
22167}
22168
22169func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(v **types.AwsIamInstanceProfileRole, value interface{}) error {
22170	if v == nil {
22171		return fmt.Errorf("unexpected nil of type %T", v)
22172	}
22173	if value == nil {
22174		return nil
22175	}
22176
22177	shape, ok := value.(map[string]interface{})
22178	if !ok {
22179		return fmt.Errorf("unexpected JSON type %v", value)
22180	}
22181
22182	var sv *types.AwsIamInstanceProfileRole
22183	if *v == nil {
22184		sv = &types.AwsIamInstanceProfileRole{}
22185	} else {
22186		sv = *v
22187	}
22188
22189	for key, value := range shape {
22190		switch key {
22191		case "Arn":
22192			if value != nil {
22193				jtv, ok := value.(string)
22194				if !ok {
22195					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22196				}
22197				sv.Arn = ptr.String(jtv)
22198			}
22199
22200		case "AssumeRolePolicyDocument":
22201			if value != nil {
22202				jtv, ok := value.(string)
22203				if !ok {
22204					return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value)
22205				}
22206				sv.AssumeRolePolicyDocument = ptr.String(jtv)
22207			}
22208
22209		case "CreateDate":
22210			if value != nil {
22211				jtv, ok := value.(string)
22212				if !ok {
22213					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22214				}
22215				sv.CreateDate = ptr.String(jtv)
22216			}
22217
22218		case "Path":
22219			if value != nil {
22220				jtv, ok := value.(string)
22221				if !ok {
22222					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22223				}
22224				sv.Path = ptr.String(jtv)
22225			}
22226
22227		case "RoleId":
22228			if value != nil {
22229				jtv, ok := value.(string)
22230				if !ok {
22231					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22232				}
22233				sv.RoleId = ptr.String(jtv)
22234			}
22235
22236		case "RoleName":
22237			if value != nil {
22238				jtv, ok := value.(string)
22239				if !ok {
22240					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22241				}
22242				sv.RoleName = ptr.String(jtv)
22243			}
22244
22245		default:
22246			_, _ = key, value
22247
22248		}
22249	}
22250	*v = sv
22251	return nil
22252}
22253
22254func awsRestjson1_deserializeDocumentAwsIamInstanceProfileRoles(v *[]types.AwsIamInstanceProfileRole, value interface{}) error {
22255	if v == nil {
22256		return fmt.Errorf("unexpected nil of type %T", v)
22257	}
22258	if value == nil {
22259		return nil
22260	}
22261
22262	shape, ok := value.([]interface{})
22263	if !ok {
22264		return fmt.Errorf("unexpected JSON type %v", value)
22265	}
22266
22267	var cv []types.AwsIamInstanceProfileRole
22268	if *v == nil {
22269		cv = []types.AwsIamInstanceProfileRole{}
22270	} else {
22271		cv = *v
22272	}
22273
22274	for _, value := range shape {
22275		var col types.AwsIamInstanceProfileRole
22276		destAddr := &col
22277		if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileRole(&destAddr, value); err != nil {
22278			return err
22279		}
22280		col = *destAddr
22281		cv = append(cv, col)
22282
22283	}
22284	*v = cv
22285	return nil
22286}
22287
22288func awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(v **types.AwsIamPermissionsBoundary, value interface{}) error {
22289	if v == nil {
22290		return fmt.Errorf("unexpected nil of type %T", v)
22291	}
22292	if value == nil {
22293		return nil
22294	}
22295
22296	shape, ok := value.(map[string]interface{})
22297	if !ok {
22298		return fmt.Errorf("unexpected JSON type %v", value)
22299	}
22300
22301	var sv *types.AwsIamPermissionsBoundary
22302	if *v == nil {
22303		sv = &types.AwsIamPermissionsBoundary{}
22304	} else {
22305		sv = *v
22306	}
22307
22308	for key, value := range shape {
22309		switch key {
22310		case "PermissionsBoundaryArn":
22311			if value != nil {
22312				jtv, ok := value.(string)
22313				if !ok {
22314					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22315				}
22316				sv.PermissionsBoundaryArn = ptr.String(jtv)
22317			}
22318
22319		case "PermissionsBoundaryType":
22320			if value != nil {
22321				jtv, ok := value.(string)
22322				if !ok {
22323					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22324				}
22325				sv.PermissionsBoundaryType = ptr.String(jtv)
22326			}
22327
22328		default:
22329			_, _ = key, value
22330
22331		}
22332	}
22333	*v = sv
22334	return nil
22335}
22336
22337func awsRestjson1_deserializeDocumentAwsIamPolicyDetails(v **types.AwsIamPolicyDetails, value interface{}) error {
22338	if v == nil {
22339		return fmt.Errorf("unexpected nil of type %T", v)
22340	}
22341	if value == nil {
22342		return nil
22343	}
22344
22345	shape, ok := value.(map[string]interface{})
22346	if !ok {
22347		return fmt.Errorf("unexpected JSON type %v", value)
22348	}
22349
22350	var sv *types.AwsIamPolicyDetails
22351	if *v == nil {
22352		sv = &types.AwsIamPolicyDetails{}
22353	} else {
22354		sv = *v
22355	}
22356
22357	for key, value := range shape {
22358		switch key {
22359		case "AttachmentCount":
22360			if value != nil {
22361				jtv, ok := value.(json.Number)
22362				if !ok {
22363					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
22364				}
22365				i64, err := jtv.Int64()
22366				if err != nil {
22367					return err
22368				}
22369				sv.AttachmentCount = int32(i64)
22370			}
22371
22372		case "CreateDate":
22373			if value != nil {
22374				jtv, ok := value.(string)
22375				if !ok {
22376					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22377				}
22378				sv.CreateDate = ptr.String(jtv)
22379			}
22380
22381		case "DefaultVersionId":
22382			if value != nil {
22383				jtv, ok := value.(string)
22384				if !ok {
22385					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22386				}
22387				sv.DefaultVersionId = ptr.String(jtv)
22388			}
22389
22390		case "Description":
22391			if value != nil {
22392				jtv, ok := value.(string)
22393				if !ok {
22394					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22395				}
22396				sv.Description = ptr.String(jtv)
22397			}
22398
22399		case "IsAttachable":
22400			if value != nil {
22401				jtv, ok := value.(bool)
22402				if !ok {
22403					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
22404				}
22405				sv.IsAttachable = jtv
22406			}
22407
22408		case "Path":
22409			if value != nil {
22410				jtv, ok := value.(string)
22411				if !ok {
22412					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22413				}
22414				sv.Path = ptr.String(jtv)
22415			}
22416
22417		case "PermissionsBoundaryUsageCount":
22418			if value != nil {
22419				jtv, ok := value.(json.Number)
22420				if !ok {
22421					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
22422				}
22423				i64, err := jtv.Int64()
22424				if err != nil {
22425					return err
22426				}
22427				sv.PermissionsBoundaryUsageCount = int32(i64)
22428			}
22429
22430		case "PolicyId":
22431			if value != nil {
22432				jtv, ok := value.(string)
22433				if !ok {
22434					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22435				}
22436				sv.PolicyId = ptr.String(jtv)
22437			}
22438
22439		case "PolicyName":
22440			if value != nil {
22441				jtv, ok := value.(string)
22442				if !ok {
22443					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22444				}
22445				sv.PolicyName = ptr.String(jtv)
22446			}
22447
22448		case "PolicyVersionList":
22449			if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(&sv.PolicyVersionList, value); err != nil {
22450				return err
22451			}
22452
22453		case "UpdateDate":
22454			if value != nil {
22455				jtv, ok := value.(string)
22456				if !ok {
22457					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22458				}
22459				sv.UpdateDate = ptr.String(jtv)
22460			}
22461
22462		default:
22463			_, _ = key, value
22464
22465		}
22466	}
22467	*v = sv
22468	return nil
22469}
22470
22471func awsRestjson1_deserializeDocumentAwsIamPolicyVersion(v **types.AwsIamPolicyVersion, value interface{}) error {
22472	if v == nil {
22473		return fmt.Errorf("unexpected nil of type %T", v)
22474	}
22475	if value == nil {
22476		return nil
22477	}
22478
22479	shape, ok := value.(map[string]interface{})
22480	if !ok {
22481		return fmt.Errorf("unexpected JSON type %v", value)
22482	}
22483
22484	var sv *types.AwsIamPolicyVersion
22485	if *v == nil {
22486		sv = &types.AwsIamPolicyVersion{}
22487	} else {
22488		sv = *v
22489	}
22490
22491	for key, value := range shape {
22492		switch key {
22493		case "CreateDate":
22494			if value != nil {
22495				jtv, ok := value.(string)
22496				if !ok {
22497					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22498				}
22499				sv.CreateDate = ptr.String(jtv)
22500			}
22501
22502		case "IsDefaultVersion":
22503			if value != nil {
22504				jtv, ok := value.(bool)
22505				if !ok {
22506					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
22507				}
22508				sv.IsDefaultVersion = jtv
22509			}
22510
22511		case "VersionId":
22512			if value != nil {
22513				jtv, ok := value.(string)
22514				if !ok {
22515					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22516				}
22517				sv.VersionId = ptr.String(jtv)
22518			}
22519
22520		default:
22521			_, _ = key, value
22522
22523		}
22524	}
22525	*v = sv
22526	return nil
22527}
22528
22529func awsRestjson1_deserializeDocumentAwsIamPolicyVersionList(v *[]types.AwsIamPolicyVersion, value interface{}) error {
22530	if v == nil {
22531		return fmt.Errorf("unexpected nil of type %T", v)
22532	}
22533	if value == nil {
22534		return nil
22535	}
22536
22537	shape, ok := value.([]interface{})
22538	if !ok {
22539		return fmt.Errorf("unexpected JSON type %v", value)
22540	}
22541
22542	var cv []types.AwsIamPolicyVersion
22543	if *v == nil {
22544		cv = []types.AwsIamPolicyVersion{}
22545	} else {
22546		cv = *v
22547	}
22548
22549	for _, value := range shape {
22550		var col types.AwsIamPolicyVersion
22551		destAddr := &col
22552		if err := awsRestjson1_deserializeDocumentAwsIamPolicyVersion(&destAddr, value); err != nil {
22553			return err
22554		}
22555		col = *destAddr
22556		cv = append(cv, col)
22557
22558	}
22559	*v = cv
22560	return nil
22561}
22562
22563func awsRestjson1_deserializeDocumentAwsIamRoleDetails(v **types.AwsIamRoleDetails, value interface{}) error {
22564	if v == nil {
22565		return fmt.Errorf("unexpected nil of type %T", v)
22566	}
22567	if value == nil {
22568		return nil
22569	}
22570
22571	shape, ok := value.(map[string]interface{})
22572	if !ok {
22573		return fmt.Errorf("unexpected JSON type %v", value)
22574	}
22575
22576	var sv *types.AwsIamRoleDetails
22577	if *v == nil {
22578		sv = &types.AwsIamRoleDetails{}
22579	} else {
22580		sv = *v
22581	}
22582
22583	for key, value := range shape {
22584		switch key {
22585		case "AssumeRolePolicyDocument":
22586			if value != nil {
22587				jtv, ok := value.(string)
22588				if !ok {
22589					return fmt.Errorf("expected AwsIamRoleAssumeRolePolicyDocument to be of type string, got %T instead", value)
22590				}
22591				sv.AssumeRolePolicyDocument = ptr.String(jtv)
22592			}
22593
22594		case "AttachedManagedPolicies":
22595			if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil {
22596				return err
22597			}
22598
22599		case "CreateDate":
22600			if value != nil {
22601				jtv, ok := value.(string)
22602				if !ok {
22603					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22604				}
22605				sv.CreateDate = ptr.String(jtv)
22606			}
22607
22608		case "InstanceProfileList":
22609			if err := awsRestjson1_deserializeDocumentAwsIamInstanceProfileList(&sv.InstanceProfileList, value); err != nil {
22610				return err
22611			}
22612
22613		case "MaxSessionDuration":
22614			if value != nil {
22615				jtv, ok := value.(json.Number)
22616				if !ok {
22617					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
22618				}
22619				i64, err := jtv.Int64()
22620				if err != nil {
22621					return err
22622				}
22623				sv.MaxSessionDuration = int32(i64)
22624			}
22625
22626		case "Path":
22627			if value != nil {
22628				jtv, ok := value.(string)
22629				if !ok {
22630					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22631				}
22632				sv.Path = ptr.String(jtv)
22633			}
22634
22635		case "PermissionsBoundary":
22636			if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil {
22637				return err
22638			}
22639
22640		case "RoleId":
22641			if value != nil {
22642				jtv, ok := value.(string)
22643				if !ok {
22644					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22645				}
22646				sv.RoleId = ptr.String(jtv)
22647			}
22648
22649		case "RoleName":
22650			if value != nil {
22651				jtv, ok := value.(string)
22652				if !ok {
22653					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22654				}
22655				sv.RoleName = ptr.String(jtv)
22656			}
22657
22658		case "RolePolicyList":
22659			if err := awsRestjson1_deserializeDocumentAwsIamRolePolicyList(&sv.RolePolicyList, value); err != nil {
22660				return err
22661			}
22662
22663		default:
22664			_, _ = key, value
22665
22666		}
22667	}
22668	*v = sv
22669	return nil
22670}
22671
22672func awsRestjson1_deserializeDocumentAwsIamRolePolicy(v **types.AwsIamRolePolicy, value interface{}) error {
22673	if v == nil {
22674		return fmt.Errorf("unexpected nil of type %T", v)
22675	}
22676	if value == nil {
22677		return nil
22678	}
22679
22680	shape, ok := value.(map[string]interface{})
22681	if !ok {
22682		return fmt.Errorf("unexpected JSON type %v", value)
22683	}
22684
22685	var sv *types.AwsIamRolePolicy
22686	if *v == nil {
22687		sv = &types.AwsIamRolePolicy{}
22688	} else {
22689		sv = *v
22690	}
22691
22692	for key, value := range shape {
22693		switch key {
22694		case "PolicyName":
22695			if value != nil {
22696				jtv, ok := value.(string)
22697				if !ok {
22698					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22699				}
22700				sv.PolicyName = ptr.String(jtv)
22701			}
22702
22703		default:
22704			_, _ = key, value
22705
22706		}
22707	}
22708	*v = sv
22709	return nil
22710}
22711
22712func awsRestjson1_deserializeDocumentAwsIamRolePolicyList(v *[]types.AwsIamRolePolicy, value interface{}) error {
22713	if v == nil {
22714		return fmt.Errorf("unexpected nil of type %T", v)
22715	}
22716	if value == nil {
22717		return nil
22718	}
22719
22720	shape, ok := value.([]interface{})
22721	if !ok {
22722		return fmt.Errorf("unexpected JSON type %v", value)
22723	}
22724
22725	var cv []types.AwsIamRolePolicy
22726	if *v == nil {
22727		cv = []types.AwsIamRolePolicy{}
22728	} else {
22729		cv = *v
22730	}
22731
22732	for _, value := range shape {
22733		var col types.AwsIamRolePolicy
22734		destAddr := &col
22735		if err := awsRestjson1_deserializeDocumentAwsIamRolePolicy(&destAddr, value); err != nil {
22736			return err
22737		}
22738		col = *destAddr
22739		cv = append(cv, col)
22740
22741	}
22742	*v = cv
22743	return nil
22744}
22745
22746func awsRestjson1_deserializeDocumentAwsIamUserDetails(v **types.AwsIamUserDetails, value interface{}) error {
22747	if v == nil {
22748		return fmt.Errorf("unexpected nil of type %T", v)
22749	}
22750	if value == nil {
22751		return nil
22752	}
22753
22754	shape, ok := value.(map[string]interface{})
22755	if !ok {
22756		return fmt.Errorf("unexpected JSON type %v", value)
22757	}
22758
22759	var sv *types.AwsIamUserDetails
22760	if *v == nil {
22761		sv = &types.AwsIamUserDetails{}
22762	} else {
22763		sv = *v
22764	}
22765
22766	for key, value := range shape {
22767		switch key {
22768		case "AttachedManagedPolicies":
22769			if err := awsRestjson1_deserializeDocumentAwsIamAttachedManagedPolicyList(&sv.AttachedManagedPolicies, value); err != nil {
22770				return err
22771			}
22772
22773		case "CreateDate":
22774			if value != nil {
22775				jtv, ok := value.(string)
22776				if !ok {
22777					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22778				}
22779				sv.CreateDate = ptr.String(jtv)
22780			}
22781
22782		case "GroupList":
22783			if err := awsRestjson1_deserializeDocumentStringList(&sv.GroupList, value); err != nil {
22784				return err
22785			}
22786
22787		case "Path":
22788			if value != nil {
22789				jtv, ok := value.(string)
22790				if !ok {
22791					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22792				}
22793				sv.Path = ptr.String(jtv)
22794			}
22795
22796		case "PermissionsBoundary":
22797			if err := awsRestjson1_deserializeDocumentAwsIamPermissionsBoundary(&sv.PermissionsBoundary, value); err != nil {
22798				return err
22799			}
22800
22801		case "UserId":
22802			if value != nil {
22803				jtv, ok := value.(string)
22804				if !ok {
22805					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22806				}
22807				sv.UserId = ptr.String(jtv)
22808			}
22809
22810		case "UserName":
22811			if value != nil {
22812				jtv, ok := value.(string)
22813				if !ok {
22814					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22815				}
22816				sv.UserName = ptr.String(jtv)
22817			}
22818
22819		case "UserPolicyList":
22820			if err := awsRestjson1_deserializeDocumentAwsIamUserPolicyList(&sv.UserPolicyList, value); err != nil {
22821				return err
22822			}
22823
22824		default:
22825			_, _ = key, value
22826
22827		}
22828	}
22829	*v = sv
22830	return nil
22831}
22832
22833func awsRestjson1_deserializeDocumentAwsIamUserPolicy(v **types.AwsIamUserPolicy, value interface{}) error {
22834	if v == nil {
22835		return fmt.Errorf("unexpected nil of type %T", v)
22836	}
22837	if value == nil {
22838		return nil
22839	}
22840
22841	shape, ok := value.(map[string]interface{})
22842	if !ok {
22843		return fmt.Errorf("unexpected JSON type %v", value)
22844	}
22845
22846	var sv *types.AwsIamUserPolicy
22847	if *v == nil {
22848		sv = &types.AwsIamUserPolicy{}
22849	} else {
22850		sv = *v
22851	}
22852
22853	for key, value := range shape {
22854		switch key {
22855		case "PolicyName":
22856			if value != nil {
22857				jtv, ok := value.(string)
22858				if !ok {
22859					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22860				}
22861				sv.PolicyName = ptr.String(jtv)
22862			}
22863
22864		default:
22865			_, _ = key, value
22866
22867		}
22868	}
22869	*v = sv
22870	return nil
22871}
22872
22873func awsRestjson1_deserializeDocumentAwsIamUserPolicyList(v *[]types.AwsIamUserPolicy, value interface{}) error {
22874	if v == nil {
22875		return fmt.Errorf("unexpected nil of type %T", v)
22876	}
22877	if value == nil {
22878		return nil
22879	}
22880
22881	shape, ok := value.([]interface{})
22882	if !ok {
22883		return fmt.Errorf("unexpected JSON type %v", value)
22884	}
22885
22886	var cv []types.AwsIamUserPolicy
22887	if *v == nil {
22888		cv = []types.AwsIamUserPolicy{}
22889	} else {
22890		cv = *v
22891	}
22892
22893	for _, value := range shape {
22894		var col types.AwsIamUserPolicy
22895		destAddr := &col
22896		if err := awsRestjson1_deserializeDocumentAwsIamUserPolicy(&destAddr, value); err != nil {
22897			return err
22898		}
22899		col = *destAddr
22900		cv = append(cv, col)
22901
22902	}
22903	*v = cv
22904	return nil
22905}
22906
22907func awsRestjson1_deserializeDocumentAwsKmsKeyDetails(v **types.AwsKmsKeyDetails, value interface{}) error {
22908	if v == nil {
22909		return fmt.Errorf("unexpected nil of type %T", v)
22910	}
22911	if value == nil {
22912		return nil
22913	}
22914
22915	shape, ok := value.(map[string]interface{})
22916	if !ok {
22917		return fmt.Errorf("unexpected JSON type %v", value)
22918	}
22919
22920	var sv *types.AwsKmsKeyDetails
22921	if *v == nil {
22922		sv = &types.AwsKmsKeyDetails{}
22923	} else {
22924		sv = *v
22925	}
22926
22927	for key, value := range shape {
22928		switch key {
22929		case "AWSAccountId":
22930			if value != nil {
22931				jtv, ok := value.(string)
22932				if !ok {
22933					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22934				}
22935				sv.AWSAccountId = ptr.String(jtv)
22936			}
22937
22938		case "CreationDate":
22939			if value != nil {
22940				switch jtv := value.(type) {
22941				case json.Number:
22942					f64, err := jtv.Float64()
22943					if err != nil {
22944						return err
22945					}
22946					sv.CreationDate = f64
22947
22948				case string:
22949					var f64 float64
22950					switch {
22951					case strings.EqualFold(jtv, "NaN"):
22952						f64 = math.NaN()
22953
22954					case strings.EqualFold(jtv, "Infinity"):
22955						f64 = math.Inf(1)
22956
22957					case strings.EqualFold(jtv, "-Infinity"):
22958						f64 = math.Inf(-1)
22959
22960					default:
22961						return fmt.Errorf("unknown JSON number value: %s", jtv)
22962
22963					}
22964					sv.CreationDate = f64
22965
22966				default:
22967					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
22968
22969				}
22970			}
22971
22972		case "Description":
22973			if value != nil {
22974				jtv, ok := value.(string)
22975				if !ok {
22976					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22977				}
22978				sv.Description = ptr.String(jtv)
22979			}
22980
22981		case "KeyId":
22982			if value != nil {
22983				jtv, ok := value.(string)
22984				if !ok {
22985					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22986				}
22987				sv.KeyId = ptr.String(jtv)
22988			}
22989
22990		case "KeyManager":
22991			if value != nil {
22992				jtv, ok := value.(string)
22993				if !ok {
22994					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
22995				}
22996				sv.KeyManager = ptr.String(jtv)
22997			}
22998
22999		case "KeyRotationStatus":
23000			if value != nil {
23001				jtv, ok := value.(bool)
23002				if !ok {
23003					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23004				}
23005				sv.KeyRotationStatus = jtv
23006			}
23007
23008		case "KeyState":
23009			if value != nil {
23010				jtv, ok := value.(string)
23011				if !ok {
23012					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23013				}
23014				sv.KeyState = ptr.String(jtv)
23015			}
23016
23017		case "Origin":
23018			if value != nil {
23019				jtv, ok := value.(string)
23020				if !ok {
23021					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23022				}
23023				sv.Origin = ptr.String(jtv)
23024			}
23025
23026		default:
23027			_, _ = key, value
23028
23029		}
23030	}
23031	*v = sv
23032	return nil
23033}
23034
23035func awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(v **types.AwsLambdaFunctionCode, value interface{}) error {
23036	if v == nil {
23037		return fmt.Errorf("unexpected nil of type %T", v)
23038	}
23039	if value == nil {
23040		return nil
23041	}
23042
23043	shape, ok := value.(map[string]interface{})
23044	if !ok {
23045		return fmt.Errorf("unexpected JSON type %v", value)
23046	}
23047
23048	var sv *types.AwsLambdaFunctionCode
23049	if *v == nil {
23050		sv = &types.AwsLambdaFunctionCode{}
23051	} else {
23052		sv = *v
23053	}
23054
23055	for key, value := range shape {
23056		switch key {
23057		case "S3Bucket":
23058			if value != nil {
23059				jtv, ok := value.(string)
23060				if !ok {
23061					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23062				}
23063				sv.S3Bucket = ptr.String(jtv)
23064			}
23065
23066		case "S3Key":
23067			if value != nil {
23068				jtv, ok := value.(string)
23069				if !ok {
23070					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23071				}
23072				sv.S3Key = ptr.String(jtv)
23073			}
23074
23075		case "S3ObjectVersion":
23076			if value != nil {
23077				jtv, ok := value.(string)
23078				if !ok {
23079					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23080				}
23081				sv.S3ObjectVersion = ptr.String(jtv)
23082			}
23083
23084		case "ZipFile":
23085			if value != nil {
23086				jtv, ok := value.(string)
23087				if !ok {
23088					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23089				}
23090				sv.ZipFile = ptr.String(jtv)
23091			}
23092
23093		default:
23094			_, _ = key, value
23095
23096		}
23097	}
23098	*v = sv
23099	return nil
23100}
23101
23102func awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(v **types.AwsLambdaFunctionDeadLetterConfig, value interface{}) error {
23103	if v == nil {
23104		return fmt.Errorf("unexpected nil of type %T", v)
23105	}
23106	if value == nil {
23107		return nil
23108	}
23109
23110	shape, ok := value.(map[string]interface{})
23111	if !ok {
23112		return fmt.Errorf("unexpected JSON type %v", value)
23113	}
23114
23115	var sv *types.AwsLambdaFunctionDeadLetterConfig
23116	if *v == nil {
23117		sv = &types.AwsLambdaFunctionDeadLetterConfig{}
23118	} else {
23119		sv = *v
23120	}
23121
23122	for key, value := range shape {
23123		switch key {
23124		case "TargetArn":
23125			if value != nil {
23126				jtv, ok := value.(string)
23127				if !ok {
23128					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23129				}
23130				sv.TargetArn = ptr.String(jtv)
23131			}
23132
23133		default:
23134			_, _ = key, value
23135
23136		}
23137	}
23138	*v = sv
23139	return nil
23140}
23141
23142func awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(v **types.AwsLambdaFunctionDetails, value interface{}) error {
23143	if v == nil {
23144		return fmt.Errorf("unexpected nil of type %T", v)
23145	}
23146	if value == nil {
23147		return nil
23148	}
23149
23150	shape, ok := value.(map[string]interface{})
23151	if !ok {
23152		return fmt.Errorf("unexpected JSON type %v", value)
23153	}
23154
23155	var sv *types.AwsLambdaFunctionDetails
23156	if *v == nil {
23157		sv = &types.AwsLambdaFunctionDetails{}
23158	} else {
23159		sv = *v
23160	}
23161
23162	for key, value := range shape {
23163		switch key {
23164		case "Code":
23165			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionCode(&sv.Code, value); err != nil {
23166				return err
23167			}
23168
23169		case "CodeSha256":
23170			if value != nil {
23171				jtv, ok := value.(string)
23172				if !ok {
23173					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23174				}
23175				sv.CodeSha256 = ptr.String(jtv)
23176			}
23177
23178		case "DeadLetterConfig":
23179			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDeadLetterConfig(&sv.DeadLetterConfig, value); err != nil {
23180				return err
23181			}
23182
23183		case "Environment":
23184			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(&sv.Environment, value); err != nil {
23185				return err
23186			}
23187
23188		case "FunctionName":
23189			if value != nil {
23190				jtv, ok := value.(string)
23191				if !ok {
23192					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23193				}
23194				sv.FunctionName = ptr.String(jtv)
23195			}
23196
23197		case "Handler":
23198			if value != nil {
23199				jtv, ok := value.(string)
23200				if !ok {
23201					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23202				}
23203				sv.Handler = ptr.String(jtv)
23204			}
23205
23206		case "KmsKeyArn":
23207			if value != nil {
23208				jtv, ok := value.(string)
23209				if !ok {
23210					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23211				}
23212				sv.KmsKeyArn = ptr.String(jtv)
23213			}
23214
23215		case "LastModified":
23216			if value != nil {
23217				jtv, ok := value.(string)
23218				if !ok {
23219					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23220				}
23221				sv.LastModified = ptr.String(jtv)
23222			}
23223
23224		case "Layers":
23225			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(&sv.Layers, value); err != nil {
23226				return err
23227			}
23228
23229		case "MasterArn":
23230			if value != nil {
23231				jtv, ok := value.(string)
23232				if !ok {
23233					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23234				}
23235				sv.MasterArn = ptr.String(jtv)
23236			}
23237
23238		case "MemorySize":
23239			if value != nil {
23240				jtv, ok := value.(json.Number)
23241				if !ok {
23242					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23243				}
23244				i64, err := jtv.Int64()
23245				if err != nil {
23246					return err
23247				}
23248				sv.MemorySize = int32(i64)
23249			}
23250
23251		case "RevisionId":
23252			if value != nil {
23253				jtv, ok := value.(string)
23254				if !ok {
23255					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23256				}
23257				sv.RevisionId = ptr.String(jtv)
23258			}
23259
23260		case "Role":
23261			if value != nil {
23262				jtv, ok := value.(string)
23263				if !ok {
23264					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23265				}
23266				sv.Role = ptr.String(jtv)
23267			}
23268
23269		case "Runtime":
23270			if value != nil {
23271				jtv, ok := value.(string)
23272				if !ok {
23273					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23274				}
23275				sv.Runtime = ptr.String(jtv)
23276			}
23277
23278		case "Timeout":
23279			if value != nil {
23280				jtv, ok := value.(json.Number)
23281				if !ok {
23282					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23283				}
23284				i64, err := jtv.Int64()
23285				if err != nil {
23286					return err
23287				}
23288				sv.Timeout = int32(i64)
23289			}
23290
23291		case "TracingConfig":
23292			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(&sv.TracingConfig, value); err != nil {
23293				return err
23294			}
23295
23296		case "Version":
23297			if value != nil {
23298				jtv, ok := value.(string)
23299				if !ok {
23300					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23301				}
23302				sv.Version = ptr.String(jtv)
23303			}
23304
23305		case "VpcConfig":
23306			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(&sv.VpcConfig, value); err != nil {
23307				return err
23308			}
23309
23310		default:
23311			_, _ = key, value
23312
23313		}
23314	}
23315	*v = sv
23316	return nil
23317}
23318
23319func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironment(v **types.AwsLambdaFunctionEnvironment, value interface{}) error {
23320	if v == nil {
23321		return fmt.Errorf("unexpected nil of type %T", v)
23322	}
23323	if value == nil {
23324		return nil
23325	}
23326
23327	shape, ok := value.(map[string]interface{})
23328	if !ok {
23329		return fmt.Errorf("unexpected JSON type %v", value)
23330	}
23331
23332	var sv *types.AwsLambdaFunctionEnvironment
23333	if *v == nil {
23334		sv = &types.AwsLambdaFunctionEnvironment{}
23335	} else {
23336		sv = *v
23337	}
23338
23339	for key, value := range shape {
23340		switch key {
23341		case "Error":
23342			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(&sv.Error, value); err != nil {
23343				return err
23344			}
23345
23346		case "Variables":
23347			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Variables, value); err != nil {
23348				return err
23349			}
23350
23351		default:
23352			_, _ = key, value
23353
23354		}
23355	}
23356	*v = sv
23357	return nil
23358}
23359
23360func awsRestjson1_deserializeDocumentAwsLambdaFunctionEnvironmentError(v **types.AwsLambdaFunctionEnvironmentError, value interface{}) error {
23361	if v == nil {
23362		return fmt.Errorf("unexpected nil of type %T", v)
23363	}
23364	if value == nil {
23365		return nil
23366	}
23367
23368	shape, ok := value.(map[string]interface{})
23369	if !ok {
23370		return fmt.Errorf("unexpected JSON type %v", value)
23371	}
23372
23373	var sv *types.AwsLambdaFunctionEnvironmentError
23374	if *v == nil {
23375		sv = &types.AwsLambdaFunctionEnvironmentError{}
23376	} else {
23377		sv = *v
23378	}
23379
23380	for key, value := range shape {
23381		switch key {
23382		case "ErrorCode":
23383			if value != nil {
23384				jtv, ok := value.(string)
23385				if !ok {
23386					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23387				}
23388				sv.ErrorCode = ptr.String(jtv)
23389			}
23390
23391		case "Message":
23392			if value != nil {
23393				jtv, ok := value.(string)
23394				if !ok {
23395					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23396				}
23397				sv.Message = ptr.String(jtv)
23398			}
23399
23400		default:
23401			_, _ = key, value
23402
23403		}
23404	}
23405	*v = sv
23406	return nil
23407}
23408
23409func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(v **types.AwsLambdaFunctionLayer, value interface{}) error {
23410	if v == nil {
23411		return fmt.Errorf("unexpected nil of type %T", v)
23412	}
23413	if value == nil {
23414		return nil
23415	}
23416
23417	shape, ok := value.(map[string]interface{})
23418	if !ok {
23419		return fmt.Errorf("unexpected JSON type %v", value)
23420	}
23421
23422	var sv *types.AwsLambdaFunctionLayer
23423	if *v == nil {
23424		sv = &types.AwsLambdaFunctionLayer{}
23425	} else {
23426		sv = *v
23427	}
23428
23429	for key, value := range shape {
23430		switch key {
23431		case "Arn":
23432			if value != nil {
23433				jtv, ok := value.(string)
23434				if !ok {
23435					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23436				}
23437				sv.Arn = ptr.String(jtv)
23438			}
23439
23440		case "CodeSize":
23441			if value != nil {
23442				jtv, ok := value.(json.Number)
23443				if !ok {
23444					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23445				}
23446				i64, err := jtv.Int64()
23447				if err != nil {
23448					return err
23449				}
23450				sv.CodeSize = int32(i64)
23451			}
23452
23453		default:
23454			_, _ = key, value
23455
23456		}
23457	}
23458	*v = sv
23459	return nil
23460}
23461
23462func awsRestjson1_deserializeDocumentAwsLambdaFunctionLayerList(v *[]types.AwsLambdaFunctionLayer, value interface{}) error {
23463	if v == nil {
23464		return fmt.Errorf("unexpected nil of type %T", v)
23465	}
23466	if value == nil {
23467		return nil
23468	}
23469
23470	shape, ok := value.([]interface{})
23471	if !ok {
23472		return fmt.Errorf("unexpected JSON type %v", value)
23473	}
23474
23475	var cv []types.AwsLambdaFunctionLayer
23476	if *v == nil {
23477		cv = []types.AwsLambdaFunctionLayer{}
23478	} else {
23479		cv = *v
23480	}
23481
23482	for _, value := range shape {
23483		var col types.AwsLambdaFunctionLayer
23484		destAddr := &col
23485		if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionLayer(&destAddr, value); err != nil {
23486			return err
23487		}
23488		col = *destAddr
23489		cv = append(cv, col)
23490
23491	}
23492	*v = cv
23493	return nil
23494}
23495
23496func awsRestjson1_deserializeDocumentAwsLambdaFunctionTracingConfig(v **types.AwsLambdaFunctionTracingConfig, value interface{}) error {
23497	if v == nil {
23498		return fmt.Errorf("unexpected nil of type %T", v)
23499	}
23500	if value == nil {
23501		return nil
23502	}
23503
23504	shape, ok := value.(map[string]interface{})
23505	if !ok {
23506		return fmt.Errorf("unexpected JSON type %v", value)
23507	}
23508
23509	var sv *types.AwsLambdaFunctionTracingConfig
23510	if *v == nil {
23511		sv = &types.AwsLambdaFunctionTracingConfig{}
23512	} else {
23513		sv = *v
23514	}
23515
23516	for key, value := range shape {
23517		switch key {
23518		case "Mode":
23519			if value != nil {
23520				jtv, ok := value.(string)
23521				if !ok {
23522					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23523				}
23524				sv.Mode = ptr.String(jtv)
23525			}
23526
23527		default:
23528			_, _ = key, value
23529
23530		}
23531	}
23532	*v = sv
23533	return nil
23534}
23535
23536func awsRestjson1_deserializeDocumentAwsLambdaFunctionVpcConfig(v **types.AwsLambdaFunctionVpcConfig, value interface{}) error {
23537	if v == nil {
23538		return fmt.Errorf("unexpected nil of type %T", v)
23539	}
23540	if value == nil {
23541		return nil
23542	}
23543
23544	shape, ok := value.(map[string]interface{})
23545	if !ok {
23546		return fmt.Errorf("unexpected JSON type %v", value)
23547	}
23548
23549	var sv *types.AwsLambdaFunctionVpcConfig
23550	if *v == nil {
23551		sv = &types.AwsLambdaFunctionVpcConfig{}
23552	} else {
23553		sv = *v
23554	}
23555
23556	for key, value := range shape {
23557		switch key {
23558		case "SecurityGroupIds":
23559			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SecurityGroupIds, value); err != nil {
23560				return err
23561			}
23562
23563		case "SubnetIds":
23564			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SubnetIds, value); err != nil {
23565				return err
23566			}
23567
23568		case "VpcId":
23569			if value != nil {
23570				jtv, ok := value.(string)
23571				if !ok {
23572					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23573				}
23574				sv.VpcId = ptr.String(jtv)
23575			}
23576
23577		default:
23578			_, _ = key, value
23579
23580		}
23581	}
23582	*v = sv
23583	return nil
23584}
23585
23586func awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(v **types.AwsLambdaLayerVersionDetails, value interface{}) error {
23587	if v == nil {
23588		return fmt.Errorf("unexpected nil of type %T", v)
23589	}
23590	if value == nil {
23591		return nil
23592	}
23593
23594	shape, ok := value.(map[string]interface{})
23595	if !ok {
23596		return fmt.Errorf("unexpected JSON type %v", value)
23597	}
23598
23599	var sv *types.AwsLambdaLayerVersionDetails
23600	if *v == nil {
23601		sv = &types.AwsLambdaLayerVersionDetails{}
23602	} else {
23603		sv = *v
23604	}
23605
23606	for key, value := range shape {
23607		switch key {
23608		case "CompatibleRuntimes":
23609			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.CompatibleRuntimes, value); err != nil {
23610				return err
23611			}
23612
23613		case "CreatedDate":
23614			if value != nil {
23615				jtv, ok := value.(string)
23616				if !ok {
23617					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23618				}
23619				sv.CreatedDate = ptr.String(jtv)
23620			}
23621
23622		case "Version":
23623			if value != nil {
23624				jtv, ok := value.(json.Number)
23625				if !ok {
23626					return fmt.Errorf("expected AwsLambdaLayerVersionNumber to be json.Number, got %T instead", value)
23627				}
23628				i64, err := jtv.Int64()
23629				if err != nil {
23630					return err
23631				}
23632				sv.Version = i64
23633			}
23634
23635		default:
23636			_, _ = key, value
23637
23638		}
23639	}
23640	*v = sv
23641	return nil
23642}
23643
23644func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(v **types.AwsRdsDbClusterAssociatedRole, value interface{}) error {
23645	if v == nil {
23646		return fmt.Errorf("unexpected nil of type %T", v)
23647	}
23648	if value == nil {
23649		return nil
23650	}
23651
23652	shape, ok := value.(map[string]interface{})
23653	if !ok {
23654		return fmt.Errorf("unexpected JSON type %v", value)
23655	}
23656
23657	var sv *types.AwsRdsDbClusterAssociatedRole
23658	if *v == nil {
23659		sv = &types.AwsRdsDbClusterAssociatedRole{}
23660	} else {
23661		sv = *v
23662	}
23663
23664	for key, value := range shape {
23665		switch key {
23666		case "RoleArn":
23667			if value != nil {
23668				jtv, ok := value.(string)
23669				if !ok {
23670					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23671				}
23672				sv.RoleArn = ptr.String(jtv)
23673			}
23674
23675		case "Status":
23676			if value != nil {
23677				jtv, ok := value.(string)
23678				if !ok {
23679					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23680				}
23681				sv.Status = ptr.String(jtv)
23682			}
23683
23684		default:
23685			_, _ = key, value
23686
23687		}
23688	}
23689	*v = sv
23690	return nil
23691}
23692
23693func awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(v *[]types.AwsRdsDbClusterAssociatedRole, value interface{}) error {
23694	if v == nil {
23695		return fmt.Errorf("unexpected nil of type %T", v)
23696	}
23697	if value == nil {
23698		return nil
23699	}
23700
23701	shape, ok := value.([]interface{})
23702	if !ok {
23703		return fmt.Errorf("unexpected JSON type %v", value)
23704	}
23705
23706	var cv []types.AwsRdsDbClusterAssociatedRole
23707	if *v == nil {
23708		cv = []types.AwsRdsDbClusterAssociatedRole{}
23709	} else {
23710		cv = *v
23711	}
23712
23713	for _, value := range shape {
23714		var col types.AwsRdsDbClusterAssociatedRole
23715		destAddr := &col
23716		if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRole(&destAddr, value); err != nil {
23717			return err
23718		}
23719		col = *destAddr
23720		cv = append(cv, col)
23721
23722	}
23723	*v = cv
23724	return nil
23725}
23726
23727func awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(v **types.AwsRdsDbClusterDetails, value interface{}) error {
23728	if v == nil {
23729		return fmt.Errorf("unexpected nil of type %T", v)
23730	}
23731	if value == nil {
23732		return nil
23733	}
23734
23735	shape, ok := value.(map[string]interface{})
23736	if !ok {
23737		return fmt.Errorf("unexpected JSON type %v", value)
23738	}
23739
23740	var sv *types.AwsRdsDbClusterDetails
23741	if *v == nil {
23742		sv = &types.AwsRdsDbClusterDetails{}
23743	} else {
23744		sv = *v
23745	}
23746
23747	for key, value := range shape {
23748		switch key {
23749		case "ActivityStreamStatus":
23750			if value != nil {
23751				jtv, ok := value.(string)
23752				if !ok {
23753					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23754				}
23755				sv.ActivityStreamStatus = ptr.String(jtv)
23756			}
23757
23758		case "AllocatedStorage":
23759			if value != nil {
23760				jtv, ok := value.(json.Number)
23761				if !ok {
23762					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23763				}
23764				i64, err := jtv.Int64()
23765				if err != nil {
23766					return err
23767				}
23768				sv.AllocatedStorage = int32(i64)
23769			}
23770
23771		case "AssociatedRoles":
23772			if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterAssociatedRoles(&sv.AssociatedRoles, value); err != nil {
23773				return err
23774			}
23775
23776		case "AvailabilityZones":
23777			if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil {
23778				return err
23779			}
23780
23781		case "BackupRetentionPeriod":
23782			if value != nil {
23783				jtv, ok := value.(json.Number)
23784				if !ok {
23785					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23786				}
23787				i64, err := jtv.Int64()
23788				if err != nil {
23789					return err
23790				}
23791				sv.BackupRetentionPeriod = int32(i64)
23792			}
23793
23794		case "ClusterCreateTime":
23795			if value != nil {
23796				jtv, ok := value.(string)
23797				if !ok {
23798					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23799				}
23800				sv.ClusterCreateTime = ptr.String(jtv)
23801			}
23802
23803		case "CopyTagsToSnapshot":
23804			if value != nil {
23805				jtv, ok := value.(bool)
23806				if !ok {
23807					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23808				}
23809				sv.CopyTagsToSnapshot = jtv
23810			}
23811
23812		case "CrossAccountClone":
23813			if value != nil {
23814				jtv, ok := value.(bool)
23815				if !ok {
23816					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23817				}
23818				sv.CrossAccountClone = jtv
23819			}
23820
23821		case "CustomEndpoints":
23822			if err := awsRestjson1_deserializeDocumentStringList(&sv.CustomEndpoints, value); err != nil {
23823				return err
23824			}
23825
23826		case "DatabaseName":
23827			if value != nil {
23828				jtv, ok := value.(string)
23829				if !ok {
23830					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23831				}
23832				sv.DatabaseName = ptr.String(jtv)
23833			}
23834
23835		case "DbClusterIdentifier":
23836			if value != nil {
23837				jtv, ok := value.(string)
23838				if !ok {
23839					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23840				}
23841				sv.DbClusterIdentifier = ptr.String(jtv)
23842			}
23843
23844		case "DbClusterMembers":
23845			if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(&sv.DbClusterMembers, value); err != nil {
23846				return err
23847			}
23848
23849		case "DbClusterOptionGroupMemberships":
23850			if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(&sv.DbClusterOptionGroupMemberships, value); err != nil {
23851				return err
23852			}
23853
23854		case "DbClusterParameterGroup":
23855			if value != nil {
23856				jtv, ok := value.(string)
23857				if !ok {
23858					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23859				}
23860				sv.DbClusterParameterGroup = ptr.String(jtv)
23861			}
23862
23863		case "DbClusterResourceId":
23864			if value != nil {
23865				jtv, ok := value.(string)
23866				if !ok {
23867					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23868				}
23869				sv.DbClusterResourceId = ptr.String(jtv)
23870			}
23871
23872		case "DbSubnetGroup":
23873			if value != nil {
23874				jtv, ok := value.(string)
23875				if !ok {
23876					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23877				}
23878				sv.DbSubnetGroup = ptr.String(jtv)
23879			}
23880
23881		case "DeletionProtection":
23882			if value != nil {
23883				jtv, ok := value.(bool)
23884				if !ok {
23885					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23886				}
23887				sv.DeletionProtection = jtv
23888			}
23889
23890		case "DomainMemberships":
23891			if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil {
23892				return err
23893			}
23894
23895		case "EnabledCloudWatchLogsExports":
23896			if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil {
23897				return err
23898			}
23899
23900		case "Endpoint":
23901			if value != nil {
23902				jtv, ok := value.(string)
23903				if !ok {
23904					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23905				}
23906				sv.Endpoint = ptr.String(jtv)
23907			}
23908
23909		case "Engine":
23910			if value != nil {
23911				jtv, ok := value.(string)
23912				if !ok {
23913					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23914				}
23915				sv.Engine = ptr.String(jtv)
23916			}
23917
23918		case "EngineMode":
23919			if value != nil {
23920				jtv, ok := value.(string)
23921				if !ok {
23922					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23923				}
23924				sv.EngineMode = ptr.String(jtv)
23925			}
23926
23927		case "EngineVersion":
23928			if value != nil {
23929				jtv, ok := value.(string)
23930				if !ok {
23931					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23932				}
23933				sv.EngineVersion = ptr.String(jtv)
23934			}
23935
23936		case "HostedZoneId":
23937			if value != nil {
23938				jtv, ok := value.(string)
23939				if !ok {
23940					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23941				}
23942				sv.HostedZoneId = ptr.String(jtv)
23943			}
23944
23945		case "HttpEndpointEnabled":
23946			if value != nil {
23947				jtv, ok := value.(bool)
23948				if !ok {
23949					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23950				}
23951				sv.HttpEndpointEnabled = jtv
23952			}
23953
23954		case "IamDatabaseAuthenticationEnabled":
23955			if value != nil {
23956				jtv, ok := value.(bool)
23957				if !ok {
23958					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23959				}
23960				sv.IamDatabaseAuthenticationEnabled = jtv
23961			}
23962
23963		case "KmsKeyId":
23964			if value != nil {
23965				jtv, ok := value.(string)
23966				if !ok {
23967					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23968				}
23969				sv.KmsKeyId = ptr.String(jtv)
23970			}
23971
23972		case "MasterUsername":
23973			if value != nil {
23974				jtv, ok := value.(string)
23975				if !ok {
23976					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
23977				}
23978				sv.MasterUsername = ptr.String(jtv)
23979			}
23980
23981		case "MultiAz":
23982			if value != nil {
23983				jtv, ok := value.(bool)
23984				if !ok {
23985					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
23986				}
23987				sv.MultiAz = jtv
23988			}
23989
23990		case "Port":
23991			if value != nil {
23992				jtv, ok := value.(json.Number)
23993				if !ok {
23994					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
23995				}
23996				i64, err := jtv.Int64()
23997				if err != nil {
23998					return err
23999				}
24000				sv.Port = int32(i64)
24001			}
24002
24003		case "PreferredBackupWindow":
24004			if value != nil {
24005				jtv, ok := value.(string)
24006				if !ok {
24007					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24008				}
24009				sv.PreferredBackupWindow = ptr.String(jtv)
24010			}
24011
24012		case "PreferredMaintenanceWindow":
24013			if value != nil {
24014				jtv, ok := value.(string)
24015				if !ok {
24016					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24017				}
24018				sv.PreferredMaintenanceWindow = ptr.String(jtv)
24019			}
24020
24021		case "ReaderEndpoint":
24022			if value != nil {
24023				jtv, ok := value.(string)
24024				if !ok {
24025					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24026				}
24027				sv.ReaderEndpoint = ptr.String(jtv)
24028			}
24029
24030		case "ReadReplicaIdentifiers":
24031			if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaIdentifiers, value); err != nil {
24032				return err
24033			}
24034
24035		case "Status":
24036			if value != nil {
24037				jtv, ok := value.(string)
24038				if !ok {
24039					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24040				}
24041				sv.Status = ptr.String(jtv)
24042			}
24043
24044		case "StorageEncrypted":
24045			if value != nil {
24046				jtv, ok := value.(bool)
24047				if !ok {
24048					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24049				}
24050				sv.StorageEncrypted = jtv
24051			}
24052
24053		case "VpcSecurityGroups":
24054			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil {
24055				return err
24056			}
24057
24058		default:
24059			_, _ = key, value
24060
24061		}
24062	}
24063	*v = sv
24064	return nil
24065}
24066
24067func awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(v **types.AwsRdsDbClusterMember, value interface{}) error {
24068	if v == nil {
24069		return fmt.Errorf("unexpected nil of type %T", v)
24070	}
24071	if value == nil {
24072		return nil
24073	}
24074
24075	shape, ok := value.(map[string]interface{})
24076	if !ok {
24077		return fmt.Errorf("unexpected JSON type %v", value)
24078	}
24079
24080	var sv *types.AwsRdsDbClusterMember
24081	if *v == nil {
24082		sv = &types.AwsRdsDbClusterMember{}
24083	} else {
24084		sv = *v
24085	}
24086
24087	for key, value := range shape {
24088		switch key {
24089		case "DbClusterParameterGroupStatus":
24090			if value != nil {
24091				jtv, ok := value.(string)
24092				if !ok {
24093					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24094				}
24095				sv.DbClusterParameterGroupStatus = ptr.String(jtv)
24096			}
24097
24098		case "DbInstanceIdentifier":
24099			if value != nil {
24100				jtv, ok := value.(string)
24101				if !ok {
24102					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24103				}
24104				sv.DbInstanceIdentifier = ptr.String(jtv)
24105			}
24106
24107		case "IsClusterWriter":
24108			if value != nil {
24109				jtv, ok := value.(bool)
24110				if !ok {
24111					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24112				}
24113				sv.IsClusterWriter = jtv
24114			}
24115
24116		case "PromotionTier":
24117			if value != nil {
24118				jtv, ok := value.(json.Number)
24119				if !ok {
24120					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24121				}
24122				i64, err := jtv.Int64()
24123				if err != nil {
24124					return err
24125				}
24126				sv.PromotionTier = int32(i64)
24127			}
24128
24129		default:
24130			_, _ = key, value
24131
24132		}
24133	}
24134	*v = sv
24135	return nil
24136}
24137
24138func awsRestjson1_deserializeDocumentAwsRdsDbClusterMembers(v *[]types.AwsRdsDbClusterMember, value interface{}) error {
24139	if v == nil {
24140		return fmt.Errorf("unexpected nil of type %T", v)
24141	}
24142	if value == nil {
24143		return nil
24144	}
24145
24146	shape, ok := value.([]interface{})
24147	if !ok {
24148		return fmt.Errorf("unexpected JSON type %v", value)
24149	}
24150
24151	var cv []types.AwsRdsDbClusterMember
24152	if *v == nil {
24153		cv = []types.AwsRdsDbClusterMember{}
24154	} else {
24155		cv = *v
24156	}
24157
24158	for _, value := range shape {
24159		var col types.AwsRdsDbClusterMember
24160		destAddr := &col
24161		if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterMember(&destAddr, value); err != nil {
24162			return err
24163		}
24164		col = *destAddr
24165		cv = append(cv, col)
24166
24167	}
24168	*v = cv
24169	return nil
24170}
24171
24172func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(v **types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error {
24173	if v == nil {
24174		return fmt.Errorf("unexpected nil of type %T", v)
24175	}
24176	if value == nil {
24177		return nil
24178	}
24179
24180	shape, ok := value.(map[string]interface{})
24181	if !ok {
24182		return fmt.Errorf("unexpected JSON type %v", value)
24183	}
24184
24185	var sv *types.AwsRdsDbClusterOptionGroupMembership
24186	if *v == nil {
24187		sv = &types.AwsRdsDbClusterOptionGroupMembership{}
24188	} else {
24189		sv = *v
24190	}
24191
24192	for key, value := range shape {
24193		switch key {
24194		case "DbClusterOptionGroupName":
24195			if value != nil {
24196				jtv, ok := value.(string)
24197				if !ok {
24198					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24199				}
24200				sv.DbClusterOptionGroupName = ptr.String(jtv)
24201			}
24202
24203		case "Status":
24204			if value != nil {
24205				jtv, ok := value.(string)
24206				if !ok {
24207					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24208				}
24209				sv.Status = ptr.String(jtv)
24210			}
24211
24212		default:
24213			_, _ = key, value
24214
24215		}
24216	}
24217	*v = sv
24218	return nil
24219}
24220
24221func awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMemberships(v *[]types.AwsRdsDbClusterOptionGroupMembership, value interface{}) error {
24222	if v == nil {
24223		return fmt.Errorf("unexpected nil of type %T", v)
24224	}
24225	if value == nil {
24226		return nil
24227	}
24228
24229	shape, ok := value.([]interface{})
24230	if !ok {
24231		return fmt.Errorf("unexpected JSON type %v", value)
24232	}
24233
24234	var cv []types.AwsRdsDbClusterOptionGroupMembership
24235	if *v == nil {
24236		cv = []types.AwsRdsDbClusterOptionGroupMembership{}
24237	} else {
24238		cv = *v
24239	}
24240
24241	for _, value := range shape {
24242		var col types.AwsRdsDbClusterOptionGroupMembership
24243		destAddr := &col
24244		if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterOptionGroupMembership(&destAddr, value); err != nil {
24245			return err
24246		}
24247		col = *destAddr
24248		cv = append(cv, col)
24249
24250	}
24251	*v = cv
24252	return nil
24253}
24254
24255func awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(v **types.AwsRdsDbClusterSnapshotDetails, value interface{}) error {
24256	if v == nil {
24257		return fmt.Errorf("unexpected nil of type %T", v)
24258	}
24259	if value == nil {
24260		return nil
24261	}
24262
24263	shape, ok := value.(map[string]interface{})
24264	if !ok {
24265		return fmt.Errorf("unexpected JSON type %v", value)
24266	}
24267
24268	var sv *types.AwsRdsDbClusterSnapshotDetails
24269	if *v == nil {
24270		sv = &types.AwsRdsDbClusterSnapshotDetails{}
24271	} else {
24272		sv = *v
24273	}
24274
24275	for key, value := range shape {
24276		switch key {
24277		case "AllocatedStorage":
24278			if value != nil {
24279				jtv, ok := value.(json.Number)
24280				if !ok {
24281					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24282				}
24283				i64, err := jtv.Int64()
24284				if err != nil {
24285					return err
24286				}
24287				sv.AllocatedStorage = int32(i64)
24288			}
24289
24290		case "AvailabilityZones":
24291			if err := awsRestjson1_deserializeDocumentStringList(&sv.AvailabilityZones, value); err != nil {
24292				return err
24293			}
24294
24295		case "ClusterCreateTime":
24296			if value != nil {
24297				jtv, ok := value.(string)
24298				if !ok {
24299					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24300				}
24301				sv.ClusterCreateTime = ptr.String(jtv)
24302			}
24303
24304		case "DbClusterIdentifier":
24305			if value != nil {
24306				jtv, ok := value.(string)
24307				if !ok {
24308					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24309				}
24310				sv.DbClusterIdentifier = ptr.String(jtv)
24311			}
24312
24313		case "DbClusterSnapshotIdentifier":
24314			if value != nil {
24315				jtv, ok := value.(string)
24316				if !ok {
24317					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24318				}
24319				sv.DbClusterSnapshotIdentifier = ptr.String(jtv)
24320			}
24321
24322		case "Engine":
24323			if value != nil {
24324				jtv, ok := value.(string)
24325				if !ok {
24326					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24327				}
24328				sv.Engine = ptr.String(jtv)
24329			}
24330
24331		case "EngineVersion":
24332			if value != nil {
24333				jtv, ok := value.(string)
24334				if !ok {
24335					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24336				}
24337				sv.EngineVersion = ptr.String(jtv)
24338			}
24339
24340		case "IamDatabaseAuthenticationEnabled":
24341			if value != nil {
24342				jtv, ok := value.(bool)
24343				if !ok {
24344					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24345				}
24346				sv.IamDatabaseAuthenticationEnabled = jtv
24347			}
24348
24349		case "KmsKeyId":
24350			if value != nil {
24351				jtv, ok := value.(string)
24352				if !ok {
24353					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24354				}
24355				sv.KmsKeyId = ptr.String(jtv)
24356			}
24357
24358		case "LicenseModel":
24359			if value != nil {
24360				jtv, ok := value.(string)
24361				if !ok {
24362					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24363				}
24364				sv.LicenseModel = ptr.String(jtv)
24365			}
24366
24367		case "MasterUsername":
24368			if value != nil {
24369				jtv, ok := value.(string)
24370				if !ok {
24371					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24372				}
24373				sv.MasterUsername = ptr.String(jtv)
24374			}
24375
24376		case "PercentProgress":
24377			if value != nil {
24378				jtv, ok := value.(json.Number)
24379				if !ok {
24380					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24381				}
24382				i64, err := jtv.Int64()
24383				if err != nil {
24384					return err
24385				}
24386				sv.PercentProgress = int32(i64)
24387			}
24388
24389		case "Port":
24390			if value != nil {
24391				jtv, ok := value.(json.Number)
24392				if !ok {
24393					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24394				}
24395				i64, err := jtv.Int64()
24396				if err != nil {
24397					return err
24398				}
24399				sv.Port = int32(i64)
24400			}
24401
24402		case "SnapshotCreateTime":
24403			if value != nil {
24404				jtv, ok := value.(string)
24405				if !ok {
24406					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24407				}
24408				sv.SnapshotCreateTime = ptr.String(jtv)
24409			}
24410
24411		case "SnapshotType":
24412			if value != nil {
24413				jtv, ok := value.(string)
24414				if !ok {
24415					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24416				}
24417				sv.SnapshotType = ptr.String(jtv)
24418			}
24419
24420		case "Status":
24421			if value != nil {
24422				jtv, ok := value.(string)
24423				if !ok {
24424					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24425				}
24426				sv.Status = ptr.String(jtv)
24427			}
24428
24429		case "StorageEncrypted":
24430			if value != nil {
24431				jtv, ok := value.(bool)
24432				if !ok {
24433					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24434				}
24435				sv.StorageEncrypted = jtv
24436			}
24437
24438		case "VpcId":
24439			if value != nil {
24440				jtv, ok := value.(string)
24441				if !ok {
24442					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24443				}
24444				sv.VpcId = ptr.String(jtv)
24445			}
24446
24447		default:
24448			_, _ = key, value
24449
24450		}
24451	}
24452	*v = sv
24453	return nil
24454}
24455
24456func awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(v **types.AwsRdsDbDomainMembership, value interface{}) error {
24457	if v == nil {
24458		return fmt.Errorf("unexpected nil of type %T", v)
24459	}
24460	if value == nil {
24461		return nil
24462	}
24463
24464	shape, ok := value.(map[string]interface{})
24465	if !ok {
24466		return fmt.Errorf("unexpected JSON type %v", value)
24467	}
24468
24469	var sv *types.AwsRdsDbDomainMembership
24470	if *v == nil {
24471		sv = &types.AwsRdsDbDomainMembership{}
24472	} else {
24473		sv = *v
24474	}
24475
24476	for key, value := range shape {
24477		switch key {
24478		case "Domain":
24479			if value != nil {
24480				jtv, ok := value.(string)
24481				if !ok {
24482					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24483				}
24484				sv.Domain = ptr.String(jtv)
24485			}
24486
24487		case "Fqdn":
24488			if value != nil {
24489				jtv, ok := value.(string)
24490				if !ok {
24491					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24492				}
24493				sv.Fqdn = ptr.String(jtv)
24494			}
24495
24496		case "IamRoleName":
24497			if value != nil {
24498				jtv, ok := value.(string)
24499				if !ok {
24500					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24501				}
24502				sv.IamRoleName = ptr.String(jtv)
24503			}
24504
24505		case "Status":
24506			if value != nil {
24507				jtv, ok := value.(string)
24508				if !ok {
24509					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24510				}
24511				sv.Status = ptr.String(jtv)
24512			}
24513
24514		default:
24515			_, _ = key, value
24516
24517		}
24518	}
24519	*v = sv
24520	return nil
24521}
24522
24523func awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(v *[]types.AwsRdsDbDomainMembership, value interface{}) error {
24524	if v == nil {
24525		return fmt.Errorf("unexpected nil of type %T", v)
24526	}
24527	if value == nil {
24528		return nil
24529	}
24530
24531	shape, ok := value.([]interface{})
24532	if !ok {
24533		return fmt.Errorf("unexpected JSON type %v", value)
24534	}
24535
24536	var cv []types.AwsRdsDbDomainMembership
24537	if *v == nil {
24538		cv = []types.AwsRdsDbDomainMembership{}
24539	} else {
24540		cv = *v
24541	}
24542
24543	for _, value := range shape {
24544		var col types.AwsRdsDbDomainMembership
24545		destAddr := &col
24546		if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMembership(&destAddr, value); err != nil {
24547			return err
24548		}
24549		col = *destAddr
24550		cv = append(cv, col)
24551
24552	}
24553	*v = cv
24554	return nil
24555}
24556
24557func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(v **types.AwsRdsDbInstanceAssociatedRole, value interface{}) error {
24558	if v == nil {
24559		return fmt.Errorf("unexpected nil of type %T", v)
24560	}
24561	if value == nil {
24562		return nil
24563	}
24564
24565	shape, ok := value.(map[string]interface{})
24566	if !ok {
24567		return fmt.Errorf("unexpected JSON type %v", value)
24568	}
24569
24570	var sv *types.AwsRdsDbInstanceAssociatedRole
24571	if *v == nil {
24572		sv = &types.AwsRdsDbInstanceAssociatedRole{}
24573	} else {
24574		sv = *v
24575	}
24576
24577	for key, value := range shape {
24578		switch key {
24579		case "FeatureName":
24580			if value != nil {
24581				jtv, ok := value.(string)
24582				if !ok {
24583					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24584				}
24585				sv.FeatureName = ptr.String(jtv)
24586			}
24587
24588		case "RoleArn":
24589			if value != nil {
24590				jtv, ok := value.(string)
24591				if !ok {
24592					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24593				}
24594				sv.RoleArn = ptr.String(jtv)
24595			}
24596
24597		case "Status":
24598			if value != nil {
24599				jtv, ok := value.(string)
24600				if !ok {
24601					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24602				}
24603				sv.Status = ptr.String(jtv)
24604			}
24605
24606		default:
24607			_, _ = key, value
24608
24609		}
24610	}
24611	*v = sv
24612	return nil
24613}
24614
24615func awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(v *[]types.AwsRdsDbInstanceAssociatedRole, value interface{}) error {
24616	if v == nil {
24617		return fmt.Errorf("unexpected nil of type %T", v)
24618	}
24619	if value == nil {
24620		return nil
24621	}
24622
24623	shape, ok := value.([]interface{})
24624	if !ok {
24625		return fmt.Errorf("unexpected JSON type %v", value)
24626	}
24627
24628	var cv []types.AwsRdsDbInstanceAssociatedRole
24629	if *v == nil {
24630		cv = []types.AwsRdsDbInstanceAssociatedRole{}
24631	} else {
24632		cv = *v
24633	}
24634
24635	for _, value := range shape {
24636		var col types.AwsRdsDbInstanceAssociatedRole
24637		destAddr := &col
24638		if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRole(&destAddr, value); err != nil {
24639			return err
24640		}
24641		col = *destAddr
24642		cv = append(cv, col)
24643
24644	}
24645	*v = cv
24646	return nil
24647}
24648
24649func awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(v **types.AwsRdsDbInstanceDetails, value interface{}) error {
24650	if v == nil {
24651		return fmt.Errorf("unexpected nil of type %T", v)
24652	}
24653	if value == nil {
24654		return nil
24655	}
24656
24657	shape, ok := value.(map[string]interface{})
24658	if !ok {
24659		return fmt.Errorf("unexpected JSON type %v", value)
24660	}
24661
24662	var sv *types.AwsRdsDbInstanceDetails
24663	if *v == nil {
24664		sv = &types.AwsRdsDbInstanceDetails{}
24665	} else {
24666		sv = *v
24667	}
24668
24669	for key, value := range shape {
24670		switch key {
24671		case "AllocatedStorage":
24672			if value != nil {
24673				jtv, ok := value.(json.Number)
24674				if !ok {
24675					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24676				}
24677				i64, err := jtv.Int64()
24678				if err != nil {
24679					return err
24680				}
24681				sv.AllocatedStorage = int32(i64)
24682			}
24683
24684		case "AssociatedRoles":
24685			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceAssociatedRoles(&sv.AssociatedRoles, value); err != nil {
24686				return err
24687			}
24688
24689		case "AutoMinorVersionUpgrade":
24690			if value != nil {
24691				jtv, ok := value.(bool)
24692				if !ok {
24693					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24694				}
24695				sv.AutoMinorVersionUpgrade = jtv
24696			}
24697
24698		case "AvailabilityZone":
24699			if value != nil {
24700				jtv, ok := value.(string)
24701				if !ok {
24702					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24703				}
24704				sv.AvailabilityZone = ptr.String(jtv)
24705			}
24706
24707		case "BackupRetentionPeriod":
24708			if value != nil {
24709				jtv, ok := value.(json.Number)
24710				if !ok {
24711					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24712				}
24713				i64, err := jtv.Int64()
24714				if err != nil {
24715					return err
24716				}
24717				sv.BackupRetentionPeriod = int32(i64)
24718			}
24719
24720		case "CACertificateIdentifier":
24721			if value != nil {
24722				jtv, ok := value.(string)
24723				if !ok {
24724					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24725				}
24726				sv.CACertificateIdentifier = ptr.String(jtv)
24727			}
24728
24729		case "CharacterSetName":
24730			if value != nil {
24731				jtv, ok := value.(string)
24732				if !ok {
24733					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24734				}
24735				sv.CharacterSetName = ptr.String(jtv)
24736			}
24737
24738		case "CopyTagsToSnapshot":
24739			if value != nil {
24740				jtv, ok := value.(bool)
24741				if !ok {
24742					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24743				}
24744				sv.CopyTagsToSnapshot = jtv
24745			}
24746
24747		case "DBClusterIdentifier":
24748			if value != nil {
24749				jtv, ok := value.(string)
24750				if !ok {
24751					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24752				}
24753				sv.DBClusterIdentifier = ptr.String(jtv)
24754			}
24755
24756		case "DBInstanceClass":
24757			if value != nil {
24758				jtv, ok := value.(string)
24759				if !ok {
24760					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24761				}
24762				sv.DBInstanceClass = ptr.String(jtv)
24763			}
24764
24765		case "DBInstanceIdentifier":
24766			if value != nil {
24767				jtv, ok := value.(string)
24768				if !ok {
24769					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24770				}
24771				sv.DBInstanceIdentifier = ptr.String(jtv)
24772			}
24773
24774		case "DbInstancePort":
24775			if value != nil {
24776				jtv, ok := value.(json.Number)
24777				if !ok {
24778					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24779				}
24780				i64, err := jtv.Int64()
24781				if err != nil {
24782					return err
24783				}
24784				sv.DbInstancePort = int32(i64)
24785			}
24786
24787		case "DbInstanceStatus":
24788			if value != nil {
24789				jtv, ok := value.(string)
24790				if !ok {
24791					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24792				}
24793				sv.DbInstanceStatus = ptr.String(jtv)
24794			}
24795
24796		case "DbiResourceId":
24797			if value != nil {
24798				jtv, ok := value.(string)
24799				if !ok {
24800					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24801				}
24802				sv.DbiResourceId = ptr.String(jtv)
24803			}
24804
24805		case "DBName":
24806			if value != nil {
24807				jtv, ok := value.(string)
24808				if !ok {
24809					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24810				}
24811				sv.DBName = ptr.String(jtv)
24812			}
24813
24814		case "DbParameterGroups":
24815			if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(&sv.DbParameterGroups, value); err != nil {
24816				return err
24817			}
24818
24819		case "DbSecurityGroups":
24820			if err := awsRestjson1_deserializeDocumentStringList(&sv.DbSecurityGroups, value); err != nil {
24821				return err
24822			}
24823
24824		case "DbSubnetGroup":
24825			if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(&sv.DbSubnetGroup, value); err != nil {
24826				return err
24827			}
24828
24829		case "DeletionProtection":
24830			if value != nil {
24831				jtv, ok := value.(bool)
24832				if !ok {
24833					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24834				}
24835				sv.DeletionProtection = jtv
24836			}
24837
24838		case "DomainMemberships":
24839			if err := awsRestjson1_deserializeDocumentAwsRdsDbDomainMemberships(&sv.DomainMemberships, value); err != nil {
24840				return err
24841			}
24842
24843		case "EnabledCloudWatchLogsExports":
24844			if err := awsRestjson1_deserializeDocumentStringList(&sv.EnabledCloudWatchLogsExports, value); err != nil {
24845				return err
24846			}
24847
24848		case "Endpoint":
24849			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.Endpoint, value); err != nil {
24850				return err
24851			}
24852
24853		case "Engine":
24854			if value != nil {
24855				jtv, ok := value.(string)
24856				if !ok {
24857					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24858				}
24859				sv.Engine = ptr.String(jtv)
24860			}
24861
24862		case "EngineVersion":
24863			if value != nil {
24864				jtv, ok := value.(string)
24865				if !ok {
24866					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24867				}
24868				sv.EngineVersion = ptr.String(jtv)
24869			}
24870
24871		case "EnhancedMonitoringResourceArn":
24872			if value != nil {
24873				jtv, ok := value.(string)
24874				if !ok {
24875					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24876				}
24877				sv.EnhancedMonitoringResourceArn = ptr.String(jtv)
24878			}
24879
24880		case "IAMDatabaseAuthenticationEnabled":
24881			if value != nil {
24882				jtv, ok := value.(bool)
24883				if !ok {
24884					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24885				}
24886				sv.IAMDatabaseAuthenticationEnabled = jtv
24887			}
24888
24889		case "InstanceCreateTime":
24890			if value != nil {
24891				jtv, ok := value.(string)
24892				if !ok {
24893					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24894				}
24895				sv.InstanceCreateTime = ptr.String(jtv)
24896			}
24897
24898		case "Iops":
24899			if value != nil {
24900				jtv, ok := value.(json.Number)
24901				if !ok {
24902					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24903				}
24904				i64, err := jtv.Int64()
24905				if err != nil {
24906					return err
24907				}
24908				sv.Iops = int32(i64)
24909			}
24910
24911		case "KmsKeyId":
24912			if value != nil {
24913				jtv, ok := value.(string)
24914				if !ok {
24915					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24916				}
24917				sv.KmsKeyId = ptr.String(jtv)
24918			}
24919
24920		case "LatestRestorableTime":
24921			if value != nil {
24922				jtv, ok := value.(string)
24923				if !ok {
24924					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24925				}
24926				sv.LatestRestorableTime = ptr.String(jtv)
24927			}
24928
24929		case "LicenseModel":
24930			if value != nil {
24931				jtv, ok := value.(string)
24932				if !ok {
24933					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24934				}
24935				sv.LicenseModel = ptr.String(jtv)
24936			}
24937
24938		case "ListenerEndpoint":
24939			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(&sv.ListenerEndpoint, value); err != nil {
24940				return err
24941			}
24942
24943		case "MasterUsername":
24944			if value != nil {
24945				jtv, ok := value.(string)
24946				if !ok {
24947					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24948				}
24949				sv.MasterUsername = ptr.String(jtv)
24950			}
24951
24952		case "MaxAllocatedStorage":
24953			if value != nil {
24954				jtv, ok := value.(json.Number)
24955				if !ok {
24956					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24957				}
24958				i64, err := jtv.Int64()
24959				if err != nil {
24960					return err
24961				}
24962				sv.MaxAllocatedStorage = int32(i64)
24963			}
24964
24965		case "MonitoringInterval":
24966			if value != nil {
24967				jtv, ok := value.(json.Number)
24968				if !ok {
24969					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
24970				}
24971				i64, err := jtv.Int64()
24972				if err != nil {
24973					return err
24974				}
24975				sv.MonitoringInterval = int32(i64)
24976			}
24977
24978		case "MonitoringRoleArn":
24979			if value != nil {
24980				jtv, ok := value.(string)
24981				if !ok {
24982					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
24983				}
24984				sv.MonitoringRoleArn = ptr.String(jtv)
24985			}
24986
24987		case "MultiAz":
24988			if value != nil {
24989				jtv, ok := value.(bool)
24990				if !ok {
24991					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
24992				}
24993				sv.MultiAz = jtv
24994			}
24995
24996		case "OptionGroupMemberships":
24997			if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(&sv.OptionGroupMemberships, value); err != nil {
24998				return err
24999			}
25000
25001		case "PendingModifiedValues":
25002			if err := awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil {
25003				return err
25004			}
25005
25006		case "PerformanceInsightsEnabled":
25007			if value != nil {
25008				jtv, ok := value.(bool)
25009				if !ok {
25010					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25011				}
25012				sv.PerformanceInsightsEnabled = jtv
25013			}
25014
25015		case "PerformanceInsightsKmsKeyId":
25016			if value != nil {
25017				jtv, ok := value.(string)
25018				if !ok {
25019					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25020				}
25021				sv.PerformanceInsightsKmsKeyId = ptr.String(jtv)
25022			}
25023
25024		case "PerformanceInsightsRetentionPeriod":
25025			if value != nil {
25026				jtv, ok := value.(json.Number)
25027				if !ok {
25028					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25029				}
25030				i64, err := jtv.Int64()
25031				if err != nil {
25032					return err
25033				}
25034				sv.PerformanceInsightsRetentionPeriod = int32(i64)
25035			}
25036
25037		case "PreferredBackupWindow":
25038			if value != nil {
25039				jtv, ok := value.(string)
25040				if !ok {
25041					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25042				}
25043				sv.PreferredBackupWindow = ptr.String(jtv)
25044			}
25045
25046		case "PreferredMaintenanceWindow":
25047			if value != nil {
25048				jtv, ok := value.(string)
25049				if !ok {
25050					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25051				}
25052				sv.PreferredMaintenanceWindow = ptr.String(jtv)
25053			}
25054
25055		case "ProcessorFeatures":
25056			if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil {
25057				return err
25058			}
25059
25060		case "PromotionTier":
25061			if value != nil {
25062				jtv, ok := value.(json.Number)
25063				if !ok {
25064					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25065				}
25066				i64, err := jtv.Int64()
25067				if err != nil {
25068					return err
25069				}
25070				sv.PromotionTier = int32(i64)
25071			}
25072
25073		case "PubliclyAccessible":
25074			if value != nil {
25075				jtv, ok := value.(bool)
25076				if !ok {
25077					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25078				}
25079				sv.PubliclyAccessible = jtv
25080			}
25081
25082		case "ReadReplicaDBClusterIdentifiers":
25083			if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBClusterIdentifiers, value); err != nil {
25084				return err
25085			}
25086
25087		case "ReadReplicaDBInstanceIdentifiers":
25088			if err := awsRestjson1_deserializeDocumentStringList(&sv.ReadReplicaDBInstanceIdentifiers, value); err != nil {
25089				return err
25090			}
25091
25092		case "ReadReplicaSourceDBInstanceIdentifier":
25093			if value != nil {
25094				jtv, ok := value.(string)
25095				if !ok {
25096					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25097				}
25098				sv.ReadReplicaSourceDBInstanceIdentifier = ptr.String(jtv)
25099			}
25100
25101		case "SecondaryAvailabilityZone":
25102			if value != nil {
25103				jtv, ok := value.(string)
25104				if !ok {
25105					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25106				}
25107				sv.SecondaryAvailabilityZone = ptr.String(jtv)
25108			}
25109
25110		case "StatusInfos":
25111			if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(&sv.StatusInfos, value); err != nil {
25112				return err
25113			}
25114
25115		case "StorageEncrypted":
25116			if value != nil {
25117				jtv, ok := value.(bool)
25118				if !ok {
25119					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25120				}
25121				sv.StorageEncrypted = jtv
25122			}
25123
25124		case "StorageType":
25125			if value != nil {
25126				jtv, ok := value.(string)
25127				if !ok {
25128					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25129				}
25130				sv.StorageType = ptr.String(jtv)
25131			}
25132
25133		case "TdeCredentialArn":
25134			if value != nil {
25135				jtv, ok := value.(string)
25136				if !ok {
25137					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25138				}
25139				sv.TdeCredentialArn = ptr.String(jtv)
25140			}
25141
25142		case "Timezone":
25143			if value != nil {
25144				jtv, ok := value.(string)
25145				if !ok {
25146					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25147				}
25148				sv.Timezone = ptr.String(jtv)
25149			}
25150
25151		case "VpcSecurityGroups":
25152			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil {
25153				return err
25154			}
25155
25156		default:
25157			_, _ = key, value
25158
25159		}
25160	}
25161	*v = sv
25162	return nil
25163}
25164
25165func awsRestjson1_deserializeDocumentAwsRdsDbInstanceEndpoint(v **types.AwsRdsDbInstanceEndpoint, value interface{}) error {
25166	if v == nil {
25167		return fmt.Errorf("unexpected nil of type %T", v)
25168	}
25169	if value == nil {
25170		return nil
25171	}
25172
25173	shape, ok := value.(map[string]interface{})
25174	if !ok {
25175		return fmt.Errorf("unexpected JSON type %v", value)
25176	}
25177
25178	var sv *types.AwsRdsDbInstanceEndpoint
25179	if *v == nil {
25180		sv = &types.AwsRdsDbInstanceEndpoint{}
25181	} else {
25182		sv = *v
25183	}
25184
25185	for key, value := range shape {
25186		switch key {
25187		case "Address":
25188			if value != nil {
25189				jtv, ok := value.(string)
25190				if !ok {
25191					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25192				}
25193				sv.Address = ptr.String(jtv)
25194			}
25195
25196		case "HostedZoneId":
25197			if value != nil {
25198				jtv, ok := value.(string)
25199				if !ok {
25200					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25201				}
25202				sv.HostedZoneId = ptr.String(jtv)
25203			}
25204
25205		case "Port":
25206			if value != nil {
25207				jtv, ok := value.(json.Number)
25208				if !ok {
25209					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25210				}
25211				i64, err := jtv.Int64()
25212				if err != nil {
25213					return err
25214				}
25215				sv.Port = int32(i64)
25216			}
25217
25218		default:
25219			_, _ = key, value
25220
25221		}
25222	}
25223	*v = sv
25224	return nil
25225}
25226
25227func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(v **types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error {
25228	if v == nil {
25229		return fmt.Errorf("unexpected nil of type %T", v)
25230	}
25231	if value == nil {
25232		return nil
25233	}
25234
25235	shape, ok := value.(map[string]interface{})
25236	if !ok {
25237		return fmt.Errorf("unexpected JSON type %v", value)
25238	}
25239
25240	var sv *types.AwsRdsDbInstanceVpcSecurityGroup
25241	if *v == nil {
25242		sv = &types.AwsRdsDbInstanceVpcSecurityGroup{}
25243	} else {
25244		sv = *v
25245	}
25246
25247	for key, value := range shape {
25248		switch key {
25249		case "Status":
25250			if value != nil {
25251				jtv, ok := value.(string)
25252				if !ok {
25253					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25254				}
25255				sv.Status = ptr.String(jtv)
25256			}
25257
25258		case "VpcSecurityGroupId":
25259			if value != nil {
25260				jtv, ok := value.(string)
25261				if !ok {
25262					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25263				}
25264				sv.VpcSecurityGroupId = ptr.String(jtv)
25265			}
25266
25267		default:
25268			_, _ = key, value
25269
25270		}
25271	}
25272	*v = sv
25273	return nil
25274}
25275
25276func awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v *[]types.AwsRdsDbInstanceVpcSecurityGroup, value interface{}) error {
25277	if v == nil {
25278		return fmt.Errorf("unexpected nil of type %T", v)
25279	}
25280	if value == nil {
25281		return nil
25282	}
25283
25284	shape, ok := value.([]interface{})
25285	if !ok {
25286		return fmt.Errorf("unexpected JSON type %v", value)
25287	}
25288
25289	var cv []types.AwsRdsDbInstanceVpcSecurityGroup
25290	if *v == nil {
25291		cv = []types.AwsRdsDbInstanceVpcSecurityGroup{}
25292	} else {
25293		cv = *v
25294	}
25295
25296	for _, value := range shape {
25297		var col types.AwsRdsDbInstanceVpcSecurityGroup
25298		destAddr := &col
25299		if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceVpcSecurityGroup(&destAddr, value); err != nil {
25300			return err
25301		}
25302		col = *destAddr
25303		cv = append(cv, col)
25304
25305	}
25306	*v = cv
25307	return nil
25308}
25309
25310func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(v **types.AwsRdsDbOptionGroupMembership, value interface{}) error {
25311	if v == nil {
25312		return fmt.Errorf("unexpected nil of type %T", v)
25313	}
25314	if value == nil {
25315		return nil
25316	}
25317
25318	shape, ok := value.(map[string]interface{})
25319	if !ok {
25320		return fmt.Errorf("unexpected JSON type %v", value)
25321	}
25322
25323	var sv *types.AwsRdsDbOptionGroupMembership
25324	if *v == nil {
25325		sv = &types.AwsRdsDbOptionGroupMembership{}
25326	} else {
25327		sv = *v
25328	}
25329
25330	for key, value := range shape {
25331		switch key {
25332		case "OptionGroupName":
25333			if value != nil {
25334				jtv, ok := value.(string)
25335				if !ok {
25336					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25337				}
25338				sv.OptionGroupName = ptr.String(jtv)
25339			}
25340
25341		case "Status":
25342			if value != nil {
25343				jtv, ok := value.(string)
25344				if !ok {
25345					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25346				}
25347				sv.Status = ptr.String(jtv)
25348			}
25349
25350		default:
25351			_, _ = key, value
25352
25353		}
25354	}
25355	*v = sv
25356	return nil
25357}
25358
25359func awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMemberships(v *[]types.AwsRdsDbOptionGroupMembership, value interface{}) error {
25360	if v == nil {
25361		return fmt.Errorf("unexpected nil of type %T", v)
25362	}
25363	if value == nil {
25364		return nil
25365	}
25366
25367	shape, ok := value.([]interface{})
25368	if !ok {
25369		return fmt.Errorf("unexpected JSON type %v", value)
25370	}
25371
25372	var cv []types.AwsRdsDbOptionGroupMembership
25373	if *v == nil {
25374		cv = []types.AwsRdsDbOptionGroupMembership{}
25375	} else {
25376		cv = *v
25377	}
25378
25379	for _, value := range shape {
25380		var col types.AwsRdsDbOptionGroupMembership
25381		destAddr := &col
25382		if err := awsRestjson1_deserializeDocumentAwsRdsDbOptionGroupMembership(&destAddr, value); err != nil {
25383			return err
25384		}
25385		col = *destAddr
25386		cv = append(cv, col)
25387
25388	}
25389	*v = cv
25390	return nil
25391}
25392
25393func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(v **types.AwsRdsDbParameterGroup, value interface{}) error {
25394	if v == nil {
25395		return fmt.Errorf("unexpected nil of type %T", v)
25396	}
25397	if value == nil {
25398		return nil
25399	}
25400
25401	shape, ok := value.(map[string]interface{})
25402	if !ok {
25403		return fmt.Errorf("unexpected JSON type %v", value)
25404	}
25405
25406	var sv *types.AwsRdsDbParameterGroup
25407	if *v == nil {
25408		sv = &types.AwsRdsDbParameterGroup{}
25409	} else {
25410		sv = *v
25411	}
25412
25413	for key, value := range shape {
25414		switch key {
25415		case "DbParameterGroupName":
25416			if value != nil {
25417				jtv, ok := value.(string)
25418				if !ok {
25419					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25420				}
25421				sv.DbParameterGroupName = ptr.String(jtv)
25422			}
25423
25424		case "ParameterApplyStatus":
25425			if value != nil {
25426				jtv, ok := value.(string)
25427				if !ok {
25428					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25429				}
25430				sv.ParameterApplyStatus = ptr.String(jtv)
25431			}
25432
25433		default:
25434			_, _ = key, value
25435
25436		}
25437	}
25438	*v = sv
25439	return nil
25440}
25441
25442func awsRestjson1_deserializeDocumentAwsRdsDbParameterGroups(v *[]types.AwsRdsDbParameterGroup, value interface{}) error {
25443	if v == nil {
25444		return fmt.Errorf("unexpected nil of type %T", v)
25445	}
25446	if value == nil {
25447		return nil
25448	}
25449
25450	shape, ok := value.([]interface{})
25451	if !ok {
25452		return fmt.Errorf("unexpected JSON type %v", value)
25453	}
25454
25455	var cv []types.AwsRdsDbParameterGroup
25456	if *v == nil {
25457		cv = []types.AwsRdsDbParameterGroup{}
25458	} else {
25459		cv = *v
25460	}
25461
25462	for _, value := range shape {
25463		var col types.AwsRdsDbParameterGroup
25464		destAddr := &col
25465		if err := awsRestjson1_deserializeDocumentAwsRdsDbParameterGroup(&destAddr, value); err != nil {
25466			return err
25467		}
25468		col = *destAddr
25469		cv = append(cv, col)
25470
25471	}
25472	*v = cv
25473	return nil
25474}
25475
25476func awsRestjson1_deserializeDocumentAwsRdsDbPendingModifiedValues(v **types.AwsRdsDbPendingModifiedValues, value interface{}) error {
25477	if v == nil {
25478		return fmt.Errorf("unexpected nil of type %T", v)
25479	}
25480	if value == nil {
25481		return nil
25482	}
25483
25484	shape, ok := value.(map[string]interface{})
25485	if !ok {
25486		return fmt.Errorf("unexpected JSON type %v", value)
25487	}
25488
25489	var sv *types.AwsRdsDbPendingModifiedValues
25490	if *v == nil {
25491		sv = &types.AwsRdsDbPendingModifiedValues{}
25492	} else {
25493		sv = *v
25494	}
25495
25496	for key, value := range shape {
25497		switch key {
25498		case "AllocatedStorage":
25499			if value != nil {
25500				jtv, ok := value.(json.Number)
25501				if !ok {
25502					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25503				}
25504				i64, err := jtv.Int64()
25505				if err != nil {
25506					return err
25507				}
25508				sv.AllocatedStorage = int32(i64)
25509			}
25510
25511		case "BackupRetentionPeriod":
25512			if value != nil {
25513				jtv, ok := value.(json.Number)
25514				if !ok {
25515					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25516				}
25517				i64, err := jtv.Int64()
25518				if err != nil {
25519					return err
25520				}
25521				sv.BackupRetentionPeriod = int32(i64)
25522			}
25523
25524		case "CaCertificateIdentifier":
25525			if value != nil {
25526				jtv, ok := value.(string)
25527				if !ok {
25528					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25529				}
25530				sv.CaCertificateIdentifier = ptr.String(jtv)
25531			}
25532
25533		case "DbInstanceClass":
25534			if value != nil {
25535				jtv, ok := value.(string)
25536				if !ok {
25537					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25538				}
25539				sv.DbInstanceClass = ptr.String(jtv)
25540			}
25541
25542		case "DbInstanceIdentifier":
25543			if value != nil {
25544				jtv, ok := value.(string)
25545				if !ok {
25546					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25547				}
25548				sv.DbInstanceIdentifier = ptr.String(jtv)
25549			}
25550
25551		case "DbSubnetGroupName":
25552			if value != nil {
25553				jtv, ok := value.(string)
25554				if !ok {
25555					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25556				}
25557				sv.DbSubnetGroupName = ptr.String(jtv)
25558			}
25559
25560		case "EngineVersion":
25561			if value != nil {
25562				jtv, ok := value.(string)
25563				if !ok {
25564					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25565				}
25566				sv.EngineVersion = ptr.String(jtv)
25567			}
25568
25569		case "Iops":
25570			if value != nil {
25571				jtv, ok := value.(json.Number)
25572				if !ok {
25573					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25574				}
25575				i64, err := jtv.Int64()
25576				if err != nil {
25577					return err
25578				}
25579				sv.Iops = int32(i64)
25580			}
25581
25582		case "LicenseModel":
25583			if value != nil {
25584				jtv, ok := value.(string)
25585				if !ok {
25586					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25587				}
25588				sv.LicenseModel = ptr.String(jtv)
25589			}
25590
25591		case "MasterUserPassword":
25592			if value != nil {
25593				jtv, ok := value.(string)
25594				if !ok {
25595					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25596				}
25597				sv.MasterUserPassword = ptr.String(jtv)
25598			}
25599
25600		case "MultiAZ":
25601			if value != nil {
25602				jtv, ok := value.(bool)
25603				if !ok {
25604					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25605				}
25606				sv.MultiAZ = jtv
25607			}
25608
25609		case "PendingCloudWatchLogsExports":
25610			if err := awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(&sv.PendingCloudWatchLogsExports, value); err != nil {
25611				return err
25612			}
25613
25614		case "Port":
25615			if value != nil {
25616				jtv, ok := value.(json.Number)
25617				if !ok {
25618					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25619				}
25620				i64, err := jtv.Int64()
25621				if err != nil {
25622					return err
25623				}
25624				sv.Port = int32(i64)
25625			}
25626
25627		case "ProcessorFeatures":
25628			if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil {
25629				return err
25630			}
25631
25632		case "StorageType":
25633			if value != nil {
25634				jtv, ok := value.(string)
25635				if !ok {
25636					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25637				}
25638				sv.StorageType = ptr.String(jtv)
25639			}
25640
25641		default:
25642			_, _ = key, value
25643
25644		}
25645	}
25646	*v = sv
25647	return nil
25648}
25649
25650func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(v **types.AwsRdsDbProcessorFeature, value interface{}) error {
25651	if v == nil {
25652		return fmt.Errorf("unexpected nil of type %T", v)
25653	}
25654	if value == nil {
25655		return nil
25656	}
25657
25658	shape, ok := value.(map[string]interface{})
25659	if !ok {
25660		return fmt.Errorf("unexpected JSON type %v", value)
25661	}
25662
25663	var sv *types.AwsRdsDbProcessorFeature
25664	if *v == nil {
25665		sv = &types.AwsRdsDbProcessorFeature{}
25666	} else {
25667		sv = *v
25668	}
25669
25670	for key, value := range shape {
25671		switch key {
25672		case "Name":
25673			if value != nil {
25674				jtv, ok := value.(string)
25675				if !ok {
25676					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25677				}
25678				sv.Name = ptr.String(jtv)
25679			}
25680
25681		case "Value":
25682			if value != nil {
25683				jtv, ok := value.(string)
25684				if !ok {
25685					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25686				}
25687				sv.Value = ptr.String(jtv)
25688			}
25689
25690		default:
25691			_, _ = key, value
25692
25693		}
25694	}
25695	*v = sv
25696	return nil
25697}
25698
25699func awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(v *[]types.AwsRdsDbProcessorFeature, value interface{}) error {
25700	if v == nil {
25701		return fmt.Errorf("unexpected nil of type %T", v)
25702	}
25703	if value == nil {
25704		return nil
25705	}
25706
25707	shape, ok := value.([]interface{})
25708	if !ok {
25709		return fmt.Errorf("unexpected JSON type %v", value)
25710	}
25711
25712	var cv []types.AwsRdsDbProcessorFeature
25713	if *v == nil {
25714		cv = []types.AwsRdsDbProcessorFeature{}
25715	} else {
25716		cv = *v
25717	}
25718
25719	for _, value := range shape {
25720		var col types.AwsRdsDbProcessorFeature
25721		destAddr := &col
25722		if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeature(&destAddr, value); err != nil {
25723			return err
25724		}
25725		col = *destAddr
25726		cv = append(cv, col)
25727
25728	}
25729	*v = cv
25730	return nil
25731}
25732
25733func awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(v **types.AwsRdsDbSnapshotDetails, value interface{}) error {
25734	if v == nil {
25735		return fmt.Errorf("unexpected nil of type %T", v)
25736	}
25737	if value == nil {
25738		return nil
25739	}
25740
25741	shape, ok := value.(map[string]interface{})
25742	if !ok {
25743		return fmt.Errorf("unexpected JSON type %v", value)
25744	}
25745
25746	var sv *types.AwsRdsDbSnapshotDetails
25747	if *v == nil {
25748		sv = &types.AwsRdsDbSnapshotDetails{}
25749	} else {
25750		sv = *v
25751	}
25752
25753	for key, value := range shape {
25754		switch key {
25755		case "AllocatedStorage":
25756			if value != nil {
25757				jtv, ok := value.(json.Number)
25758				if !ok {
25759					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25760				}
25761				i64, err := jtv.Int64()
25762				if err != nil {
25763					return err
25764				}
25765				sv.AllocatedStorage = int32(i64)
25766			}
25767
25768		case "AvailabilityZone":
25769			if value != nil {
25770				jtv, ok := value.(string)
25771				if !ok {
25772					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25773				}
25774				sv.AvailabilityZone = ptr.String(jtv)
25775			}
25776
25777		case "DbInstanceIdentifier":
25778			if value != nil {
25779				jtv, ok := value.(string)
25780				if !ok {
25781					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25782				}
25783				sv.DbInstanceIdentifier = ptr.String(jtv)
25784			}
25785
25786		case "DbiResourceId":
25787			if value != nil {
25788				jtv, ok := value.(string)
25789				if !ok {
25790					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25791				}
25792				sv.DbiResourceId = ptr.String(jtv)
25793			}
25794
25795		case "DbSnapshotIdentifier":
25796			if value != nil {
25797				jtv, ok := value.(string)
25798				if !ok {
25799					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25800				}
25801				sv.DbSnapshotIdentifier = ptr.String(jtv)
25802			}
25803
25804		case "Encrypted":
25805			if value != nil {
25806				jtv, ok := value.(bool)
25807				if !ok {
25808					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25809				}
25810				sv.Encrypted = jtv
25811			}
25812
25813		case "Engine":
25814			if value != nil {
25815				jtv, ok := value.(string)
25816				if !ok {
25817					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25818				}
25819				sv.Engine = ptr.String(jtv)
25820			}
25821
25822		case "EngineVersion":
25823			if value != nil {
25824				jtv, ok := value.(string)
25825				if !ok {
25826					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25827				}
25828				sv.EngineVersion = ptr.String(jtv)
25829			}
25830
25831		case "IamDatabaseAuthenticationEnabled":
25832			if value != nil {
25833				jtv, ok := value.(bool)
25834				if !ok {
25835					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
25836				}
25837				sv.IamDatabaseAuthenticationEnabled = jtv
25838			}
25839
25840		case "InstanceCreateTime":
25841			if value != nil {
25842				jtv, ok := value.(string)
25843				if !ok {
25844					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25845				}
25846				sv.InstanceCreateTime = ptr.String(jtv)
25847			}
25848
25849		case "Iops":
25850			if value != nil {
25851				jtv, ok := value.(json.Number)
25852				if !ok {
25853					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25854				}
25855				i64, err := jtv.Int64()
25856				if err != nil {
25857					return err
25858				}
25859				sv.Iops = int32(i64)
25860			}
25861
25862		case "KmsKeyId":
25863			if value != nil {
25864				jtv, ok := value.(string)
25865				if !ok {
25866					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25867				}
25868				sv.KmsKeyId = ptr.String(jtv)
25869			}
25870
25871		case "LicenseModel":
25872			if value != nil {
25873				jtv, ok := value.(string)
25874				if !ok {
25875					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25876				}
25877				sv.LicenseModel = ptr.String(jtv)
25878			}
25879
25880		case "MasterUsername":
25881			if value != nil {
25882				jtv, ok := value.(string)
25883				if !ok {
25884					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25885				}
25886				sv.MasterUsername = ptr.String(jtv)
25887			}
25888
25889		case "OptionGroupName":
25890			if value != nil {
25891				jtv, ok := value.(string)
25892				if !ok {
25893					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25894				}
25895				sv.OptionGroupName = ptr.String(jtv)
25896			}
25897
25898		case "PercentProgress":
25899			if value != nil {
25900				jtv, ok := value.(json.Number)
25901				if !ok {
25902					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25903				}
25904				i64, err := jtv.Int64()
25905				if err != nil {
25906					return err
25907				}
25908				sv.PercentProgress = int32(i64)
25909			}
25910
25911		case "Port":
25912			if value != nil {
25913				jtv, ok := value.(json.Number)
25914				if !ok {
25915					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
25916				}
25917				i64, err := jtv.Int64()
25918				if err != nil {
25919					return err
25920				}
25921				sv.Port = int32(i64)
25922			}
25923
25924		case "ProcessorFeatures":
25925			if err := awsRestjson1_deserializeDocumentAwsRdsDbProcessorFeatures(&sv.ProcessorFeatures, value); err != nil {
25926				return err
25927			}
25928
25929		case "SnapshotCreateTime":
25930			if value != nil {
25931				jtv, ok := value.(string)
25932				if !ok {
25933					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25934				}
25935				sv.SnapshotCreateTime = ptr.String(jtv)
25936			}
25937
25938		case "SnapshotType":
25939			if value != nil {
25940				jtv, ok := value.(string)
25941				if !ok {
25942					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25943				}
25944				sv.SnapshotType = ptr.String(jtv)
25945			}
25946
25947		case "SourceDbSnapshotIdentifier":
25948			if value != nil {
25949				jtv, ok := value.(string)
25950				if !ok {
25951					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25952				}
25953				sv.SourceDbSnapshotIdentifier = ptr.String(jtv)
25954			}
25955
25956		case "SourceRegion":
25957			if value != nil {
25958				jtv, ok := value.(string)
25959				if !ok {
25960					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25961				}
25962				sv.SourceRegion = ptr.String(jtv)
25963			}
25964
25965		case "Status":
25966			if value != nil {
25967				jtv, ok := value.(string)
25968				if !ok {
25969					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25970				}
25971				sv.Status = ptr.String(jtv)
25972			}
25973
25974		case "StorageType":
25975			if value != nil {
25976				jtv, ok := value.(string)
25977				if !ok {
25978					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25979				}
25980				sv.StorageType = ptr.String(jtv)
25981			}
25982
25983		case "TdeCredentialArn":
25984			if value != nil {
25985				jtv, ok := value.(string)
25986				if !ok {
25987					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25988				}
25989				sv.TdeCredentialArn = ptr.String(jtv)
25990			}
25991
25992		case "Timezone":
25993			if value != nil {
25994				jtv, ok := value.(string)
25995				if !ok {
25996					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
25997				}
25998				sv.Timezone = ptr.String(jtv)
25999			}
26000
26001		case "VpcId":
26002			if value != nil {
26003				jtv, ok := value.(string)
26004				if !ok {
26005					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26006				}
26007				sv.VpcId = ptr.String(jtv)
26008			}
26009
26010		default:
26011			_, _ = key, value
26012
26013		}
26014	}
26015	*v = sv
26016	return nil
26017}
26018
26019func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(v **types.AwsRdsDbStatusInfo, value interface{}) error {
26020	if v == nil {
26021		return fmt.Errorf("unexpected nil of type %T", v)
26022	}
26023	if value == nil {
26024		return nil
26025	}
26026
26027	shape, ok := value.(map[string]interface{})
26028	if !ok {
26029		return fmt.Errorf("unexpected JSON type %v", value)
26030	}
26031
26032	var sv *types.AwsRdsDbStatusInfo
26033	if *v == nil {
26034		sv = &types.AwsRdsDbStatusInfo{}
26035	} else {
26036		sv = *v
26037	}
26038
26039	for key, value := range shape {
26040		switch key {
26041		case "Message":
26042			if value != nil {
26043				jtv, ok := value.(string)
26044				if !ok {
26045					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26046				}
26047				sv.Message = ptr.String(jtv)
26048			}
26049
26050		case "Normal":
26051			if value != nil {
26052				jtv, ok := value.(bool)
26053				if !ok {
26054					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
26055				}
26056				sv.Normal = jtv
26057			}
26058
26059		case "Status":
26060			if value != nil {
26061				jtv, ok := value.(string)
26062				if !ok {
26063					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26064				}
26065				sv.Status = ptr.String(jtv)
26066			}
26067
26068		case "StatusType":
26069			if value != nil {
26070				jtv, ok := value.(string)
26071				if !ok {
26072					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26073				}
26074				sv.StatusType = ptr.String(jtv)
26075			}
26076
26077		default:
26078			_, _ = key, value
26079
26080		}
26081	}
26082	*v = sv
26083	return nil
26084}
26085
26086func awsRestjson1_deserializeDocumentAwsRdsDbStatusInfos(v *[]types.AwsRdsDbStatusInfo, value interface{}) error {
26087	if v == nil {
26088		return fmt.Errorf("unexpected nil of type %T", v)
26089	}
26090	if value == nil {
26091		return nil
26092	}
26093
26094	shape, ok := value.([]interface{})
26095	if !ok {
26096		return fmt.Errorf("unexpected JSON type %v", value)
26097	}
26098
26099	var cv []types.AwsRdsDbStatusInfo
26100	if *v == nil {
26101		cv = []types.AwsRdsDbStatusInfo{}
26102	} else {
26103		cv = *v
26104	}
26105
26106	for _, value := range shape {
26107		var col types.AwsRdsDbStatusInfo
26108		destAddr := &col
26109		if err := awsRestjson1_deserializeDocumentAwsRdsDbStatusInfo(&destAddr, value); err != nil {
26110			return err
26111		}
26112		col = *destAddr
26113		cv = append(cv, col)
26114
26115	}
26116	*v = cv
26117	return nil
26118}
26119
26120func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroup(v **types.AwsRdsDbSubnetGroup, value interface{}) error {
26121	if v == nil {
26122		return fmt.Errorf("unexpected nil of type %T", v)
26123	}
26124	if value == nil {
26125		return nil
26126	}
26127
26128	shape, ok := value.(map[string]interface{})
26129	if !ok {
26130		return fmt.Errorf("unexpected JSON type %v", value)
26131	}
26132
26133	var sv *types.AwsRdsDbSubnetGroup
26134	if *v == nil {
26135		sv = &types.AwsRdsDbSubnetGroup{}
26136	} else {
26137		sv = *v
26138	}
26139
26140	for key, value := range shape {
26141		switch key {
26142		case "DbSubnetGroupArn":
26143			if value != nil {
26144				jtv, ok := value.(string)
26145				if !ok {
26146					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26147				}
26148				sv.DbSubnetGroupArn = ptr.String(jtv)
26149			}
26150
26151		case "DbSubnetGroupDescription":
26152			if value != nil {
26153				jtv, ok := value.(string)
26154				if !ok {
26155					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26156				}
26157				sv.DbSubnetGroupDescription = ptr.String(jtv)
26158			}
26159
26160		case "DbSubnetGroupName":
26161			if value != nil {
26162				jtv, ok := value.(string)
26163				if !ok {
26164					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26165				}
26166				sv.DbSubnetGroupName = ptr.String(jtv)
26167			}
26168
26169		case "SubnetGroupStatus":
26170			if value != nil {
26171				jtv, ok := value.(string)
26172				if !ok {
26173					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26174				}
26175				sv.SubnetGroupStatus = ptr.String(jtv)
26176			}
26177
26178		case "Subnets":
26179			if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(&sv.Subnets, value); err != nil {
26180				return err
26181			}
26182
26183		case "VpcId":
26184			if value != nil {
26185				jtv, ok := value.(string)
26186				if !ok {
26187					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26188				}
26189				sv.VpcId = ptr.String(jtv)
26190			}
26191
26192		default:
26193			_, _ = key, value
26194
26195		}
26196	}
26197	*v = sv
26198	return nil
26199}
26200
26201func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(v **types.AwsRdsDbSubnetGroupSubnet, value interface{}) error {
26202	if v == nil {
26203		return fmt.Errorf("unexpected nil of type %T", v)
26204	}
26205	if value == nil {
26206		return nil
26207	}
26208
26209	shape, ok := value.(map[string]interface{})
26210	if !ok {
26211		return fmt.Errorf("unexpected JSON type %v", value)
26212	}
26213
26214	var sv *types.AwsRdsDbSubnetGroupSubnet
26215	if *v == nil {
26216		sv = &types.AwsRdsDbSubnetGroupSubnet{}
26217	} else {
26218		sv = *v
26219	}
26220
26221	for key, value := range shape {
26222		switch key {
26223		case "SubnetAvailabilityZone":
26224			if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(&sv.SubnetAvailabilityZone, value); err != nil {
26225				return err
26226			}
26227
26228		case "SubnetIdentifier":
26229			if value != nil {
26230				jtv, ok := value.(string)
26231				if !ok {
26232					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26233				}
26234				sv.SubnetIdentifier = ptr.String(jtv)
26235			}
26236
26237		case "SubnetStatus":
26238			if value != nil {
26239				jtv, ok := value.(string)
26240				if !ok {
26241					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26242				}
26243				sv.SubnetStatus = ptr.String(jtv)
26244			}
26245
26246		default:
26247			_, _ = key, value
26248
26249		}
26250	}
26251	*v = sv
26252	return nil
26253}
26254
26255func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v **types.AwsRdsDbSubnetGroupSubnetAvailabilityZone, value interface{}) error {
26256	if v == nil {
26257		return fmt.Errorf("unexpected nil of type %T", v)
26258	}
26259	if value == nil {
26260		return nil
26261	}
26262
26263	shape, ok := value.(map[string]interface{})
26264	if !ok {
26265		return fmt.Errorf("unexpected JSON type %v", value)
26266	}
26267
26268	var sv *types.AwsRdsDbSubnetGroupSubnetAvailabilityZone
26269	if *v == nil {
26270		sv = &types.AwsRdsDbSubnetGroupSubnetAvailabilityZone{}
26271	} else {
26272		sv = *v
26273	}
26274
26275	for key, value := range shape {
26276		switch key {
26277		case "Name":
26278			if value != nil {
26279				jtv, ok := value.(string)
26280				if !ok {
26281					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26282				}
26283				sv.Name = ptr.String(jtv)
26284			}
26285
26286		default:
26287			_, _ = key, value
26288
26289		}
26290	}
26291	*v = sv
26292	return nil
26293}
26294
26295func awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnets(v *[]types.AwsRdsDbSubnetGroupSubnet, value interface{}) error {
26296	if v == nil {
26297		return fmt.Errorf("unexpected nil of type %T", v)
26298	}
26299	if value == nil {
26300		return nil
26301	}
26302
26303	shape, ok := value.([]interface{})
26304	if !ok {
26305		return fmt.Errorf("unexpected JSON type %v", value)
26306	}
26307
26308	var cv []types.AwsRdsDbSubnetGroupSubnet
26309	if *v == nil {
26310		cv = []types.AwsRdsDbSubnetGroupSubnet{}
26311	} else {
26312		cv = *v
26313	}
26314
26315	for _, value := range shape {
26316		var col types.AwsRdsDbSubnetGroupSubnet
26317		destAddr := &col
26318		if err := awsRestjson1_deserializeDocumentAwsRdsDbSubnetGroupSubnet(&destAddr, value); err != nil {
26319			return err
26320		}
26321		col = *destAddr
26322		cv = append(cv, col)
26323
26324	}
26325	*v = cv
26326	return nil
26327}
26328
26329func awsRestjson1_deserializeDocumentAwsRdsEventSubscriptionDetails(v **types.AwsRdsEventSubscriptionDetails, value interface{}) error {
26330	if v == nil {
26331		return fmt.Errorf("unexpected nil of type %T", v)
26332	}
26333	if value == nil {
26334		return nil
26335	}
26336
26337	shape, ok := value.(map[string]interface{})
26338	if !ok {
26339		return fmt.Errorf("unexpected JSON type %v", value)
26340	}
26341
26342	var sv *types.AwsRdsEventSubscriptionDetails
26343	if *v == nil {
26344		sv = &types.AwsRdsEventSubscriptionDetails{}
26345	} else {
26346		sv = *v
26347	}
26348
26349	for key, value := range shape {
26350		switch key {
26351		case "CustomerAwsId":
26352			if value != nil {
26353				jtv, ok := value.(string)
26354				if !ok {
26355					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26356				}
26357				sv.CustomerAwsId = ptr.String(jtv)
26358			}
26359
26360		case "CustSubscriptionId":
26361			if value != nil {
26362				jtv, ok := value.(string)
26363				if !ok {
26364					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26365				}
26366				sv.CustSubscriptionId = ptr.String(jtv)
26367			}
26368
26369		case "Enabled":
26370			if value != nil {
26371				jtv, ok := value.(bool)
26372				if !ok {
26373					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
26374				}
26375				sv.Enabled = jtv
26376			}
26377
26378		case "EventCategoriesList":
26379			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.EventCategoriesList, value); err != nil {
26380				return err
26381			}
26382
26383		case "EventSubscriptionArn":
26384			if value != nil {
26385				jtv, ok := value.(string)
26386				if !ok {
26387					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26388				}
26389				sv.EventSubscriptionArn = ptr.String(jtv)
26390			}
26391
26392		case "SnsTopicArn":
26393			if value != nil {
26394				jtv, ok := value.(string)
26395				if !ok {
26396					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26397				}
26398				sv.SnsTopicArn = ptr.String(jtv)
26399			}
26400
26401		case "SourceIdsList":
26402			if err := awsRestjson1_deserializeDocumentNonEmptyStringList(&sv.SourceIdsList, value); err != nil {
26403				return err
26404			}
26405
26406		case "SourceType":
26407			if value != nil {
26408				jtv, ok := value.(string)
26409				if !ok {
26410					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26411				}
26412				sv.SourceType = ptr.String(jtv)
26413			}
26414
26415		case "Status":
26416			if value != nil {
26417				jtv, ok := value.(string)
26418				if !ok {
26419					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26420				}
26421				sv.Status = ptr.String(jtv)
26422			}
26423
26424		case "SubscriptionCreationTime":
26425			if value != nil {
26426				jtv, ok := value.(string)
26427				if !ok {
26428					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26429				}
26430				sv.SubscriptionCreationTime = ptr.String(jtv)
26431			}
26432
26433		default:
26434			_, _ = key, value
26435
26436		}
26437	}
26438	*v = sv
26439	return nil
26440}
26441
26442func awsRestjson1_deserializeDocumentAwsRdsPendingCloudWatchLogsExports(v **types.AwsRdsPendingCloudWatchLogsExports, value interface{}) error {
26443	if v == nil {
26444		return fmt.Errorf("unexpected nil of type %T", v)
26445	}
26446	if value == nil {
26447		return nil
26448	}
26449
26450	shape, ok := value.(map[string]interface{})
26451	if !ok {
26452		return fmt.Errorf("unexpected JSON type %v", value)
26453	}
26454
26455	var sv *types.AwsRdsPendingCloudWatchLogsExports
26456	if *v == nil {
26457		sv = &types.AwsRdsPendingCloudWatchLogsExports{}
26458	} else {
26459		sv = *v
26460	}
26461
26462	for key, value := range shape {
26463		switch key {
26464		case "LogTypesToDisable":
26465			if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToDisable, value); err != nil {
26466				return err
26467			}
26468
26469		case "LogTypesToEnable":
26470			if err := awsRestjson1_deserializeDocumentStringList(&sv.LogTypesToEnable, value); err != nil {
26471				return err
26472			}
26473
26474		default:
26475			_, _ = key, value
26476
26477		}
26478	}
26479	*v = sv
26480	return nil
26481}
26482
26483func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(v **types.AwsRedshiftClusterClusterNode, value interface{}) error {
26484	if v == nil {
26485		return fmt.Errorf("unexpected nil of type %T", v)
26486	}
26487	if value == nil {
26488		return nil
26489	}
26490
26491	shape, ok := value.(map[string]interface{})
26492	if !ok {
26493		return fmt.Errorf("unexpected JSON type %v", value)
26494	}
26495
26496	var sv *types.AwsRedshiftClusterClusterNode
26497	if *v == nil {
26498		sv = &types.AwsRedshiftClusterClusterNode{}
26499	} else {
26500		sv = *v
26501	}
26502
26503	for key, value := range shape {
26504		switch key {
26505		case "NodeRole":
26506			if value != nil {
26507				jtv, ok := value.(string)
26508				if !ok {
26509					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26510				}
26511				sv.NodeRole = ptr.String(jtv)
26512			}
26513
26514		case "PrivateIpAddress":
26515			if value != nil {
26516				jtv, ok := value.(string)
26517				if !ok {
26518					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26519				}
26520				sv.PrivateIpAddress = ptr.String(jtv)
26521			}
26522
26523		case "PublicIpAddress":
26524			if value != nil {
26525				jtv, ok := value.(string)
26526				if !ok {
26527					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26528				}
26529				sv.PublicIpAddress = ptr.String(jtv)
26530			}
26531
26532		default:
26533			_, _ = key, value
26534
26535		}
26536	}
26537	*v = sv
26538	return nil
26539}
26540
26541func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(v *[]types.AwsRedshiftClusterClusterNode, value interface{}) error {
26542	if v == nil {
26543		return fmt.Errorf("unexpected nil of type %T", v)
26544	}
26545	if value == nil {
26546		return nil
26547	}
26548
26549	shape, ok := value.([]interface{})
26550	if !ok {
26551		return fmt.Errorf("unexpected JSON type %v", value)
26552	}
26553
26554	var cv []types.AwsRedshiftClusterClusterNode
26555	if *v == nil {
26556		cv = []types.AwsRedshiftClusterClusterNode{}
26557	} else {
26558		cv = *v
26559	}
26560
26561	for _, value := range shape {
26562		var col types.AwsRedshiftClusterClusterNode
26563		destAddr := &col
26564		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNode(&destAddr, value); err != nil {
26565			return err
26566		}
26567		col = *destAddr
26568		cv = append(cv, col)
26569
26570	}
26571	*v = cv
26572	return nil
26573}
26574
26575func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(v **types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error {
26576	if v == nil {
26577		return fmt.Errorf("unexpected nil of type %T", v)
26578	}
26579	if value == nil {
26580		return nil
26581	}
26582
26583	shape, ok := value.(map[string]interface{})
26584	if !ok {
26585		return fmt.Errorf("unexpected JSON type %v", value)
26586	}
26587
26588	var sv *types.AwsRedshiftClusterClusterParameterGroup
26589	if *v == nil {
26590		sv = &types.AwsRedshiftClusterClusterParameterGroup{}
26591	} else {
26592		sv = *v
26593	}
26594
26595	for key, value := range shape {
26596		switch key {
26597		case "ClusterParameterStatusList":
26598			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(&sv.ClusterParameterStatusList, value); err != nil {
26599				return err
26600			}
26601
26602		case "ParameterApplyStatus":
26603			if value != nil {
26604				jtv, ok := value.(string)
26605				if !ok {
26606					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26607				}
26608				sv.ParameterApplyStatus = ptr.String(jtv)
26609			}
26610
26611		case "ParameterGroupName":
26612			if value != nil {
26613				jtv, ok := value.(string)
26614				if !ok {
26615					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26616				}
26617				sv.ParameterGroupName = ptr.String(jtv)
26618			}
26619
26620		default:
26621			_, _ = key, value
26622
26623		}
26624	}
26625	*v = sv
26626	return nil
26627}
26628
26629func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(v *[]types.AwsRedshiftClusterClusterParameterGroup, value interface{}) error {
26630	if v == nil {
26631		return fmt.Errorf("unexpected nil of type %T", v)
26632	}
26633	if value == nil {
26634		return nil
26635	}
26636
26637	shape, ok := value.([]interface{})
26638	if !ok {
26639		return fmt.Errorf("unexpected JSON type %v", value)
26640	}
26641
26642	var cv []types.AwsRedshiftClusterClusterParameterGroup
26643	if *v == nil {
26644		cv = []types.AwsRedshiftClusterClusterParameterGroup{}
26645	} else {
26646		cv = *v
26647	}
26648
26649	for _, value := range shape {
26650		var col types.AwsRedshiftClusterClusterParameterGroup
26651		destAddr := &col
26652		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroup(&destAddr, value); err != nil {
26653			return err
26654		}
26655		col = *destAddr
26656		cv = append(cv, col)
26657
26658	}
26659	*v = cv
26660	return nil
26661}
26662
26663func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(v **types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error {
26664	if v == nil {
26665		return fmt.Errorf("unexpected nil of type %T", v)
26666	}
26667	if value == nil {
26668		return nil
26669	}
26670
26671	shape, ok := value.(map[string]interface{})
26672	if !ok {
26673		return fmt.Errorf("unexpected JSON type %v", value)
26674	}
26675
26676	var sv *types.AwsRedshiftClusterClusterParameterStatus
26677	if *v == nil {
26678		sv = &types.AwsRedshiftClusterClusterParameterStatus{}
26679	} else {
26680		sv = *v
26681	}
26682
26683	for key, value := range shape {
26684		switch key {
26685		case "ParameterApplyErrorDescription":
26686			if value != nil {
26687				jtv, ok := value.(string)
26688				if !ok {
26689					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26690				}
26691				sv.ParameterApplyErrorDescription = ptr.String(jtv)
26692			}
26693
26694		case "ParameterApplyStatus":
26695			if value != nil {
26696				jtv, ok := value.(string)
26697				if !ok {
26698					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26699				}
26700				sv.ParameterApplyStatus = ptr.String(jtv)
26701			}
26702
26703		case "ParameterName":
26704			if value != nil {
26705				jtv, ok := value.(string)
26706				if !ok {
26707					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26708				}
26709				sv.ParameterName = ptr.String(jtv)
26710			}
26711
26712		default:
26713			_, _ = key, value
26714
26715		}
26716	}
26717	*v = sv
26718	return nil
26719}
26720
26721func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatusList(v *[]types.AwsRedshiftClusterClusterParameterStatus, value interface{}) error {
26722	if v == nil {
26723		return fmt.Errorf("unexpected nil of type %T", v)
26724	}
26725	if value == nil {
26726		return nil
26727	}
26728
26729	shape, ok := value.([]interface{})
26730	if !ok {
26731		return fmt.Errorf("unexpected JSON type %v", value)
26732	}
26733
26734	var cv []types.AwsRedshiftClusterClusterParameterStatus
26735	if *v == nil {
26736		cv = []types.AwsRedshiftClusterClusterParameterStatus{}
26737	} else {
26738		cv = *v
26739	}
26740
26741	for _, value := range shape {
26742		var col types.AwsRedshiftClusterClusterParameterStatus
26743		destAddr := &col
26744		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterStatus(&destAddr, value); err != nil {
26745			return err
26746		}
26747		col = *destAddr
26748		cv = append(cv, col)
26749
26750	}
26751	*v = cv
26752	return nil
26753}
26754
26755func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(v **types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error {
26756	if v == nil {
26757		return fmt.Errorf("unexpected nil of type %T", v)
26758	}
26759	if value == nil {
26760		return nil
26761	}
26762
26763	shape, ok := value.(map[string]interface{})
26764	if !ok {
26765		return fmt.Errorf("unexpected JSON type %v", value)
26766	}
26767
26768	var sv *types.AwsRedshiftClusterClusterSecurityGroup
26769	if *v == nil {
26770		sv = &types.AwsRedshiftClusterClusterSecurityGroup{}
26771	} else {
26772		sv = *v
26773	}
26774
26775	for key, value := range shape {
26776		switch key {
26777		case "ClusterSecurityGroupName":
26778			if value != nil {
26779				jtv, ok := value.(string)
26780				if !ok {
26781					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26782				}
26783				sv.ClusterSecurityGroupName = ptr.String(jtv)
26784			}
26785
26786		case "Status":
26787			if value != nil {
26788				jtv, ok := value.(string)
26789				if !ok {
26790					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26791				}
26792				sv.Status = ptr.String(jtv)
26793			}
26794
26795		default:
26796			_, _ = key, value
26797
26798		}
26799	}
26800	*v = sv
26801	return nil
26802}
26803
26804func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(v *[]types.AwsRedshiftClusterClusterSecurityGroup, value interface{}) error {
26805	if v == nil {
26806		return fmt.Errorf("unexpected nil of type %T", v)
26807	}
26808	if value == nil {
26809		return nil
26810	}
26811
26812	shape, ok := value.([]interface{})
26813	if !ok {
26814		return fmt.Errorf("unexpected JSON type %v", value)
26815	}
26816
26817	var cv []types.AwsRedshiftClusterClusterSecurityGroup
26818	if *v == nil {
26819		cv = []types.AwsRedshiftClusterClusterSecurityGroup{}
26820	} else {
26821		cv = *v
26822	}
26823
26824	for _, value := range shape {
26825		var col types.AwsRedshiftClusterClusterSecurityGroup
26826		destAddr := &col
26827		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroup(&destAddr, value); err != nil {
26828			return err
26829		}
26830		col = *destAddr
26831		cv = append(cv, col)
26832
26833	}
26834	*v = cv
26835	return nil
26836}
26837
26838func awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v **types.AwsRedshiftClusterClusterSnapshotCopyStatus, value interface{}) error {
26839	if v == nil {
26840		return fmt.Errorf("unexpected nil of type %T", v)
26841	}
26842	if value == nil {
26843		return nil
26844	}
26845
26846	shape, ok := value.(map[string]interface{})
26847	if !ok {
26848		return fmt.Errorf("unexpected JSON type %v", value)
26849	}
26850
26851	var sv *types.AwsRedshiftClusterClusterSnapshotCopyStatus
26852	if *v == nil {
26853		sv = &types.AwsRedshiftClusterClusterSnapshotCopyStatus{}
26854	} else {
26855		sv = *v
26856	}
26857
26858	for key, value := range shape {
26859		switch key {
26860		case "DestinationRegion":
26861			if value != nil {
26862				jtv, ok := value.(string)
26863				if !ok {
26864					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26865				}
26866				sv.DestinationRegion = ptr.String(jtv)
26867			}
26868
26869		case "ManualSnapshotRetentionPeriod":
26870			if value != nil {
26871				jtv, ok := value.(json.Number)
26872				if !ok {
26873					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
26874				}
26875				i64, err := jtv.Int64()
26876				if err != nil {
26877					return err
26878				}
26879				sv.ManualSnapshotRetentionPeriod = int32(i64)
26880			}
26881
26882		case "RetentionPeriod":
26883			if value != nil {
26884				jtv, ok := value.(json.Number)
26885				if !ok {
26886					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
26887				}
26888				i64, err := jtv.Int64()
26889				if err != nil {
26890					return err
26891				}
26892				sv.RetentionPeriod = int32(i64)
26893			}
26894
26895		case "SnapshotCopyGrantName":
26896			if value != nil {
26897				jtv, ok := value.(string)
26898				if !ok {
26899					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26900				}
26901				sv.SnapshotCopyGrantName = ptr.String(jtv)
26902			}
26903
26904		default:
26905			_, _ = key, value
26906
26907		}
26908	}
26909	*v = sv
26910	return nil
26911}
26912
26913func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(v **types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error {
26914	if v == nil {
26915		return fmt.Errorf("unexpected nil of type %T", v)
26916	}
26917	if value == nil {
26918		return nil
26919	}
26920
26921	shape, ok := value.(map[string]interface{})
26922	if !ok {
26923		return fmt.Errorf("unexpected JSON type %v", value)
26924	}
26925
26926	var sv *types.AwsRedshiftClusterDeferredMaintenanceWindow
26927	if *v == nil {
26928		sv = &types.AwsRedshiftClusterDeferredMaintenanceWindow{}
26929	} else {
26930		sv = *v
26931	}
26932
26933	for key, value := range shape {
26934		switch key {
26935		case "DeferMaintenanceEndTime":
26936			if value != nil {
26937				jtv, ok := value.(string)
26938				if !ok {
26939					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26940				}
26941				sv.DeferMaintenanceEndTime = ptr.String(jtv)
26942			}
26943
26944		case "DeferMaintenanceIdentifier":
26945			if value != nil {
26946				jtv, ok := value.(string)
26947				if !ok {
26948					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26949				}
26950				sv.DeferMaintenanceIdentifier = ptr.String(jtv)
26951			}
26952
26953		case "DeferMaintenanceStartTime":
26954			if value != nil {
26955				jtv, ok := value.(string)
26956				if !ok {
26957					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
26958				}
26959				sv.DeferMaintenanceStartTime = ptr.String(jtv)
26960			}
26961
26962		default:
26963			_, _ = key, value
26964
26965		}
26966	}
26967	*v = sv
26968	return nil
26969}
26970
26971func awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v *[]types.AwsRedshiftClusterDeferredMaintenanceWindow, value interface{}) error {
26972	if v == nil {
26973		return fmt.Errorf("unexpected nil of type %T", v)
26974	}
26975	if value == nil {
26976		return nil
26977	}
26978
26979	shape, ok := value.([]interface{})
26980	if !ok {
26981		return fmt.Errorf("unexpected JSON type %v", value)
26982	}
26983
26984	var cv []types.AwsRedshiftClusterDeferredMaintenanceWindow
26985	if *v == nil {
26986		cv = []types.AwsRedshiftClusterDeferredMaintenanceWindow{}
26987	} else {
26988		cv = *v
26989	}
26990
26991	for _, value := range shape {
26992		var col types.AwsRedshiftClusterDeferredMaintenanceWindow
26993		destAddr := &col
26994		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(&destAddr, value); err != nil {
26995			return err
26996		}
26997		col = *destAddr
26998		cv = append(cv, col)
26999
27000	}
27001	*v = cv
27002	return nil
27003}
27004
27005func awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(v **types.AwsRedshiftClusterDetails, value interface{}) error {
27006	if v == nil {
27007		return fmt.Errorf("unexpected nil of type %T", v)
27008	}
27009	if value == nil {
27010		return nil
27011	}
27012
27013	shape, ok := value.(map[string]interface{})
27014	if !ok {
27015		return fmt.Errorf("unexpected JSON type %v", value)
27016	}
27017
27018	var sv *types.AwsRedshiftClusterDetails
27019	if *v == nil {
27020		sv = &types.AwsRedshiftClusterDetails{}
27021	} else {
27022		sv = *v
27023	}
27024
27025	for key, value := range shape {
27026		switch key {
27027		case "AllowVersionUpgrade":
27028			if value != nil {
27029				jtv, ok := value.(bool)
27030				if !ok {
27031					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27032				}
27033				sv.AllowVersionUpgrade = jtv
27034			}
27035
27036		case "AutomatedSnapshotRetentionPeriod":
27037			if value != nil {
27038				jtv, ok := value.(json.Number)
27039				if !ok {
27040					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27041				}
27042				i64, err := jtv.Int64()
27043				if err != nil {
27044					return err
27045				}
27046				sv.AutomatedSnapshotRetentionPeriod = int32(i64)
27047			}
27048
27049		case "AvailabilityZone":
27050			if value != nil {
27051				jtv, ok := value.(string)
27052				if !ok {
27053					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27054				}
27055				sv.AvailabilityZone = ptr.String(jtv)
27056			}
27057
27058		case "ClusterAvailabilityStatus":
27059			if value != nil {
27060				jtv, ok := value.(string)
27061				if !ok {
27062					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27063				}
27064				sv.ClusterAvailabilityStatus = ptr.String(jtv)
27065			}
27066
27067		case "ClusterCreateTime":
27068			if value != nil {
27069				jtv, ok := value.(string)
27070				if !ok {
27071					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27072				}
27073				sv.ClusterCreateTime = ptr.String(jtv)
27074			}
27075
27076		case "ClusterIdentifier":
27077			if value != nil {
27078				jtv, ok := value.(string)
27079				if !ok {
27080					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27081				}
27082				sv.ClusterIdentifier = ptr.String(jtv)
27083			}
27084
27085		case "ClusterNodes":
27086			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterNodes(&sv.ClusterNodes, value); err != nil {
27087				return err
27088			}
27089
27090		case "ClusterParameterGroups":
27091			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterParameterGroups(&sv.ClusterParameterGroups, value); err != nil {
27092				return err
27093			}
27094
27095		case "ClusterPublicKey":
27096			if value != nil {
27097				jtv, ok := value.(string)
27098				if !ok {
27099					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27100				}
27101				sv.ClusterPublicKey = ptr.String(jtv)
27102			}
27103
27104		case "ClusterRevisionNumber":
27105			if value != nil {
27106				jtv, ok := value.(string)
27107				if !ok {
27108					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27109				}
27110				sv.ClusterRevisionNumber = ptr.String(jtv)
27111			}
27112
27113		case "ClusterSecurityGroups":
27114			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSecurityGroups(&sv.ClusterSecurityGroups, value); err != nil {
27115				return err
27116			}
27117
27118		case "ClusterSnapshotCopyStatus":
27119			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(&sv.ClusterSnapshotCopyStatus, value); err != nil {
27120				return err
27121			}
27122
27123		case "ClusterStatus":
27124			if value != nil {
27125				jtv, ok := value.(string)
27126				if !ok {
27127					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27128				}
27129				sv.ClusterStatus = ptr.String(jtv)
27130			}
27131
27132		case "ClusterSubnetGroupName":
27133			if value != nil {
27134				jtv, ok := value.(string)
27135				if !ok {
27136					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27137				}
27138				sv.ClusterSubnetGroupName = ptr.String(jtv)
27139			}
27140
27141		case "ClusterVersion":
27142			if value != nil {
27143				jtv, ok := value.(string)
27144				if !ok {
27145					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27146				}
27147				sv.ClusterVersion = ptr.String(jtv)
27148			}
27149
27150		case "DBName":
27151			if value != nil {
27152				jtv, ok := value.(string)
27153				if !ok {
27154					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27155				}
27156				sv.DBName = ptr.String(jtv)
27157			}
27158
27159		case "DeferredMaintenanceWindows":
27160			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(&sv.DeferredMaintenanceWindows, value); err != nil {
27161				return err
27162			}
27163
27164		case "ElasticIpStatus":
27165			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(&sv.ElasticIpStatus, value); err != nil {
27166				return err
27167			}
27168
27169		case "ElasticResizeNumberOfNodeOptions":
27170			if value != nil {
27171				jtv, ok := value.(string)
27172				if !ok {
27173					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27174				}
27175				sv.ElasticResizeNumberOfNodeOptions = ptr.String(jtv)
27176			}
27177
27178		case "Encrypted":
27179			if value != nil {
27180				jtv, ok := value.(bool)
27181				if !ok {
27182					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27183				}
27184				sv.Encrypted = jtv
27185			}
27186
27187		case "Endpoint":
27188			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(&sv.Endpoint, value); err != nil {
27189				return err
27190			}
27191
27192		case "EnhancedVpcRouting":
27193			if value != nil {
27194				jtv, ok := value.(bool)
27195				if !ok {
27196					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27197				}
27198				sv.EnhancedVpcRouting = jtv
27199			}
27200
27201		case "ExpectedNextSnapshotScheduleTime":
27202			if value != nil {
27203				jtv, ok := value.(string)
27204				if !ok {
27205					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27206				}
27207				sv.ExpectedNextSnapshotScheduleTime = ptr.String(jtv)
27208			}
27209
27210		case "ExpectedNextSnapshotScheduleTimeStatus":
27211			if value != nil {
27212				jtv, ok := value.(string)
27213				if !ok {
27214					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27215				}
27216				sv.ExpectedNextSnapshotScheduleTimeStatus = ptr.String(jtv)
27217			}
27218
27219		case "HsmStatus":
27220			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(&sv.HsmStatus, value); err != nil {
27221				return err
27222			}
27223
27224		case "IamRoles":
27225			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(&sv.IamRoles, value); err != nil {
27226				return err
27227			}
27228
27229		case "KmsKeyId":
27230			if value != nil {
27231				jtv, ok := value.(string)
27232				if !ok {
27233					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27234				}
27235				sv.KmsKeyId = ptr.String(jtv)
27236			}
27237
27238		case "MaintenanceTrackName":
27239			if value != nil {
27240				jtv, ok := value.(string)
27241				if !ok {
27242					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27243				}
27244				sv.MaintenanceTrackName = ptr.String(jtv)
27245			}
27246
27247		case "ManualSnapshotRetentionPeriod":
27248			if value != nil {
27249				jtv, ok := value.(json.Number)
27250				if !ok {
27251					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27252				}
27253				i64, err := jtv.Int64()
27254				if err != nil {
27255					return err
27256				}
27257				sv.ManualSnapshotRetentionPeriod = int32(i64)
27258			}
27259
27260		case "MasterUsername":
27261			if value != nil {
27262				jtv, ok := value.(string)
27263				if !ok {
27264					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27265				}
27266				sv.MasterUsername = ptr.String(jtv)
27267			}
27268
27269		case "NextMaintenanceWindowStartTime":
27270			if value != nil {
27271				jtv, ok := value.(string)
27272				if !ok {
27273					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27274				}
27275				sv.NextMaintenanceWindowStartTime = ptr.String(jtv)
27276			}
27277
27278		case "NodeType":
27279			if value != nil {
27280				jtv, ok := value.(string)
27281				if !ok {
27282					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27283				}
27284				sv.NodeType = ptr.String(jtv)
27285			}
27286
27287		case "NumberOfNodes":
27288			if value != nil {
27289				jtv, ok := value.(json.Number)
27290				if !ok {
27291					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27292				}
27293				i64, err := jtv.Int64()
27294				if err != nil {
27295					return err
27296				}
27297				sv.NumberOfNodes = int32(i64)
27298			}
27299
27300		case "PendingActions":
27301			if err := awsRestjson1_deserializeDocumentStringList(&sv.PendingActions, value); err != nil {
27302				return err
27303			}
27304
27305		case "PendingModifiedValues":
27306			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(&sv.PendingModifiedValues, value); err != nil {
27307				return err
27308			}
27309
27310		case "PreferredMaintenanceWindow":
27311			if value != nil {
27312				jtv, ok := value.(string)
27313				if !ok {
27314					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27315				}
27316				sv.PreferredMaintenanceWindow = ptr.String(jtv)
27317			}
27318
27319		case "PubliclyAccessible":
27320			if value != nil {
27321				jtv, ok := value.(bool)
27322				if !ok {
27323					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27324				}
27325				sv.PubliclyAccessible = jtv
27326			}
27327
27328		case "ResizeInfo":
27329			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(&sv.ResizeInfo, value); err != nil {
27330				return err
27331			}
27332
27333		case "RestoreStatus":
27334			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(&sv.RestoreStatus, value); err != nil {
27335				return err
27336			}
27337
27338		case "SnapshotScheduleIdentifier":
27339			if value != nil {
27340				jtv, ok := value.(string)
27341				if !ok {
27342					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27343				}
27344				sv.SnapshotScheduleIdentifier = ptr.String(jtv)
27345			}
27346
27347		case "SnapshotScheduleState":
27348			if value != nil {
27349				jtv, ok := value.(string)
27350				if !ok {
27351					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27352				}
27353				sv.SnapshotScheduleState = ptr.String(jtv)
27354			}
27355
27356		case "VpcId":
27357			if value != nil {
27358				jtv, ok := value.(string)
27359				if !ok {
27360					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27361				}
27362				sv.VpcId = ptr.String(jtv)
27363			}
27364
27365		case "VpcSecurityGroups":
27366			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(&sv.VpcSecurityGroups, value); err != nil {
27367				return err
27368			}
27369
27370		default:
27371			_, _ = key, value
27372
27373		}
27374	}
27375	*v = sv
27376	return nil
27377}
27378
27379func awsRestjson1_deserializeDocumentAwsRedshiftClusterElasticIpStatus(v **types.AwsRedshiftClusterElasticIpStatus, value interface{}) error {
27380	if v == nil {
27381		return fmt.Errorf("unexpected nil of type %T", v)
27382	}
27383	if value == nil {
27384		return nil
27385	}
27386
27387	shape, ok := value.(map[string]interface{})
27388	if !ok {
27389		return fmt.Errorf("unexpected JSON type %v", value)
27390	}
27391
27392	var sv *types.AwsRedshiftClusterElasticIpStatus
27393	if *v == nil {
27394		sv = &types.AwsRedshiftClusterElasticIpStatus{}
27395	} else {
27396		sv = *v
27397	}
27398
27399	for key, value := range shape {
27400		switch key {
27401		case "ElasticIp":
27402			if value != nil {
27403				jtv, ok := value.(string)
27404				if !ok {
27405					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27406				}
27407				sv.ElasticIp = ptr.String(jtv)
27408			}
27409
27410		case "Status":
27411			if value != nil {
27412				jtv, ok := value.(string)
27413				if !ok {
27414					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27415				}
27416				sv.Status = ptr.String(jtv)
27417			}
27418
27419		default:
27420			_, _ = key, value
27421
27422		}
27423	}
27424	*v = sv
27425	return nil
27426}
27427
27428func awsRestjson1_deserializeDocumentAwsRedshiftClusterEndpoint(v **types.AwsRedshiftClusterEndpoint, value interface{}) error {
27429	if v == nil {
27430		return fmt.Errorf("unexpected nil of type %T", v)
27431	}
27432	if value == nil {
27433		return nil
27434	}
27435
27436	shape, ok := value.(map[string]interface{})
27437	if !ok {
27438		return fmt.Errorf("unexpected JSON type %v", value)
27439	}
27440
27441	var sv *types.AwsRedshiftClusterEndpoint
27442	if *v == nil {
27443		sv = &types.AwsRedshiftClusterEndpoint{}
27444	} else {
27445		sv = *v
27446	}
27447
27448	for key, value := range shape {
27449		switch key {
27450		case "Address":
27451			if value != nil {
27452				jtv, ok := value.(string)
27453				if !ok {
27454					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27455				}
27456				sv.Address = ptr.String(jtv)
27457			}
27458
27459		case "Port":
27460			if value != nil {
27461				jtv, ok := value.(json.Number)
27462				if !ok {
27463					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27464				}
27465				i64, err := jtv.Int64()
27466				if err != nil {
27467					return err
27468				}
27469				sv.Port = int32(i64)
27470			}
27471
27472		default:
27473			_, _ = key, value
27474
27475		}
27476	}
27477	*v = sv
27478	return nil
27479}
27480
27481func awsRestjson1_deserializeDocumentAwsRedshiftClusterHsmStatus(v **types.AwsRedshiftClusterHsmStatus, value interface{}) error {
27482	if v == nil {
27483		return fmt.Errorf("unexpected nil of type %T", v)
27484	}
27485	if value == nil {
27486		return nil
27487	}
27488
27489	shape, ok := value.(map[string]interface{})
27490	if !ok {
27491		return fmt.Errorf("unexpected JSON type %v", value)
27492	}
27493
27494	var sv *types.AwsRedshiftClusterHsmStatus
27495	if *v == nil {
27496		sv = &types.AwsRedshiftClusterHsmStatus{}
27497	} else {
27498		sv = *v
27499	}
27500
27501	for key, value := range shape {
27502		switch key {
27503		case "HsmClientCertificateIdentifier":
27504			if value != nil {
27505				jtv, ok := value.(string)
27506				if !ok {
27507					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27508				}
27509				sv.HsmClientCertificateIdentifier = ptr.String(jtv)
27510			}
27511
27512		case "HsmConfigurationIdentifier":
27513			if value != nil {
27514				jtv, ok := value.(string)
27515				if !ok {
27516					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27517				}
27518				sv.HsmConfigurationIdentifier = ptr.String(jtv)
27519			}
27520
27521		case "Status":
27522			if value != nil {
27523				jtv, ok := value.(string)
27524				if !ok {
27525					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27526				}
27527				sv.Status = ptr.String(jtv)
27528			}
27529
27530		default:
27531			_, _ = key, value
27532
27533		}
27534	}
27535	*v = sv
27536	return nil
27537}
27538
27539func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(v **types.AwsRedshiftClusterIamRole, value interface{}) error {
27540	if v == nil {
27541		return fmt.Errorf("unexpected nil of type %T", v)
27542	}
27543	if value == nil {
27544		return nil
27545	}
27546
27547	shape, ok := value.(map[string]interface{})
27548	if !ok {
27549		return fmt.Errorf("unexpected JSON type %v", value)
27550	}
27551
27552	var sv *types.AwsRedshiftClusterIamRole
27553	if *v == nil {
27554		sv = &types.AwsRedshiftClusterIamRole{}
27555	} else {
27556		sv = *v
27557	}
27558
27559	for key, value := range shape {
27560		switch key {
27561		case "ApplyStatus":
27562			if value != nil {
27563				jtv, ok := value.(string)
27564				if !ok {
27565					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27566				}
27567				sv.ApplyStatus = ptr.String(jtv)
27568			}
27569
27570		case "IamRoleArn":
27571			if value != nil {
27572				jtv, ok := value.(string)
27573				if !ok {
27574					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27575				}
27576				sv.IamRoleArn = ptr.String(jtv)
27577			}
27578
27579		default:
27580			_, _ = key, value
27581
27582		}
27583	}
27584	*v = sv
27585	return nil
27586}
27587
27588func awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRoles(v *[]types.AwsRedshiftClusterIamRole, value interface{}) error {
27589	if v == nil {
27590		return fmt.Errorf("unexpected nil of type %T", v)
27591	}
27592	if value == nil {
27593		return nil
27594	}
27595
27596	shape, ok := value.([]interface{})
27597	if !ok {
27598		return fmt.Errorf("unexpected JSON type %v", value)
27599	}
27600
27601	var cv []types.AwsRedshiftClusterIamRole
27602	if *v == nil {
27603		cv = []types.AwsRedshiftClusterIamRole{}
27604	} else {
27605		cv = *v
27606	}
27607
27608	for _, value := range shape {
27609		var col types.AwsRedshiftClusterIamRole
27610		destAddr := &col
27611		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterIamRole(&destAddr, value); err != nil {
27612			return err
27613		}
27614		col = *destAddr
27615		cv = append(cv, col)
27616
27617	}
27618	*v = cv
27619	return nil
27620}
27621
27622func awsRestjson1_deserializeDocumentAwsRedshiftClusterPendingModifiedValues(v **types.AwsRedshiftClusterPendingModifiedValues, value interface{}) error {
27623	if v == nil {
27624		return fmt.Errorf("unexpected nil of type %T", v)
27625	}
27626	if value == nil {
27627		return nil
27628	}
27629
27630	shape, ok := value.(map[string]interface{})
27631	if !ok {
27632		return fmt.Errorf("unexpected JSON type %v", value)
27633	}
27634
27635	var sv *types.AwsRedshiftClusterPendingModifiedValues
27636	if *v == nil {
27637		sv = &types.AwsRedshiftClusterPendingModifiedValues{}
27638	} else {
27639		sv = *v
27640	}
27641
27642	for key, value := range shape {
27643		switch key {
27644		case "AutomatedSnapshotRetentionPeriod":
27645			if value != nil {
27646				jtv, ok := value.(json.Number)
27647				if !ok {
27648					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27649				}
27650				i64, err := jtv.Int64()
27651				if err != nil {
27652					return err
27653				}
27654				sv.AutomatedSnapshotRetentionPeriod = int32(i64)
27655			}
27656
27657		case "ClusterIdentifier":
27658			if value != nil {
27659				jtv, ok := value.(string)
27660				if !ok {
27661					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27662				}
27663				sv.ClusterIdentifier = ptr.String(jtv)
27664			}
27665
27666		case "ClusterType":
27667			if value != nil {
27668				jtv, ok := value.(string)
27669				if !ok {
27670					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27671				}
27672				sv.ClusterType = ptr.String(jtv)
27673			}
27674
27675		case "ClusterVersion":
27676			if value != nil {
27677				jtv, ok := value.(string)
27678				if !ok {
27679					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27680				}
27681				sv.ClusterVersion = ptr.String(jtv)
27682			}
27683
27684		case "EncryptionType":
27685			if value != nil {
27686				jtv, ok := value.(string)
27687				if !ok {
27688					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27689				}
27690				sv.EncryptionType = ptr.String(jtv)
27691			}
27692
27693		case "EnhancedVpcRouting":
27694			if value != nil {
27695				jtv, ok := value.(bool)
27696				if !ok {
27697					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27698				}
27699				sv.EnhancedVpcRouting = jtv
27700			}
27701
27702		case "MaintenanceTrackName":
27703			if value != nil {
27704				jtv, ok := value.(string)
27705				if !ok {
27706					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27707				}
27708				sv.MaintenanceTrackName = ptr.String(jtv)
27709			}
27710
27711		case "MasterUserPassword":
27712			if value != nil {
27713				jtv, ok := value.(string)
27714				if !ok {
27715					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27716				}
27717				sv.MasterUserPassword = ptr.String(jtv)
27718			}
27719
27720		case "NodeType":
27721			if value != nil {
27722				jtv, ok := value.(string)
27723				if !ok {
27724					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27725				}
27726				sv.NodeType = ptr.String(jtv)
27727			}
27728
27729		case "NumberOfNodes":
27730			if value != nil {
27731				jtv, ok := value.(json.Number)
27732				if !ok {
27733					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
27734				}
27735				i64, err := jtv.Int64()
27736				if err != nil {
27737					return err
27738				}
27739				sv.NumberOfNodes = int32(i64)
27740			}
27741
27742		case "PubliclyAccessible":
27743			if value != nil {
27744				jtv, ok := value.(bool)
27745				if !ok {
27746					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27747				}
27748				sv.PubliclyAccessible = jtv
27749			}
27750
27751		default:
27752			_, _ = key, value
27753
27754		}
27755	}
27756	*v = sv
27757	return nil
27758}
27759
27760func awsRestjson1_deserializeDocumentAwsRedshiftClusterResizeInfo(v **types.AwsRedshiftClusterResizeInfo, value interface{}) error {
27761	if v == nil {
27762		return fmt.Errorf("unexpected nil of type %T", v)
27763	}
27764	if value == nil {
27765		return nil
27766	}
27767
27768	shape, ok := value.(map[string]interface{})
27769	if !ok {
27770		return fmt.Errorf("unexpected JSON type %v", value)
27771	}
27772
27773	var sv *types.AwsRedshiftClusterResizeInfo
27774	if *v == nil {
27775		sv = &types.AwsRedshiftClusterResizeInfo{}
27776	} else {
27777		sv = *v
27778	}
27779
27780	for key, value := range shape {
27781		switch key {
27782		case "AllowCancelResize":
27783			if value != nil {
27784				jtv, ok := value.(bool)
27785				if !ok {
27786					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
27787				}
27788				sv.AllowCancelResize = jtv
27789			}
27790
27791		case "ResizeType":
27792			if value != nil {
27793				jtv, ok := value.(string)
27794				if !ok {
27795					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27796				}
27797				sv.ResizeType = ptr.String(jtv)
27798			}
27799
27800		default:
27801			_, _ = key, value
27802
27803		}
27804	}
27805	*v = sv
27806	return nil
27807}
27808
27809func awsRestjson1_deserializeDocumentAwsRedshiftClusterRestoreStatus(v **types.AwsRedshiftClusterRestoreStatus, value interface{}) error {
27810	if v == nil {
27811		return fmt.Errorf("unexpected nil of type %T", v)
27812	}
27813	if value == nil {
27814		return nil
27815	}
27816
27817	shape, ok := value.(map[string]interface{})
27818	if !ok {
27819		return fmt.Errorf("unexpected JSON type %v", value)
27820	}
27821
27822	var sv *types.AwsRedshiftClusterRestoreStatus
27823	if *v == nil {
27824		sv = &types.AwsRedshiftClusterRestoreStatus{}
27825	} else {
27826		sv = *v
27827	}
27828
27829	for key, value := range shape {
27830		switch key {
27831		case "CurrentRestoreRateInMegaBytesPerSecond":
27832			if value != nil {
27833				switch jtv := value.(type) {
27834				case json.Number:
27835					f64, err := jtv.Float64()
27836					if err != nil {
27837						return err
27838					}
27839					sv.CurrentRestoreRateInMegaBytesPerSecond = f64
27840
27841				case string:
27842					var f64 float64
27843					switch {
27844					case strings.EqualFold(jtv, "NaN"):
27845						f64 = math.NaN()
27846
27847					case strings.EqualFold(jtv, "Infinity"):
27848						f64 = math.Inf(1)
27849
27850					case strings.EqualFold(jtv, "-Infinity"):
27851						f64 = math.Inf(-1)
27852
27853					default:
27854						return fmt.Errorf("unknown JSON number value: %s", jtv)
27855
27856					}
27857					sv.CurrentRestoreRateInMegaBytesPerSecond = f64
27858
27859				default:
27860					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
27861
27862				}
27863			}
27864
27865		case "ElapsedTimeInSeconds":
27866			if value != nil {
27867				jtv, ok := value.(json.Number)
27868				if !ok {
27869					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
27870				}
27871				i64, err := jtv.Int64()
27872				if err != nil {
27873					return err
27874				}
27875				sv.ElapsedTimeInSeconds = i64
27876			}
27877
27878		case "EstimatedTimeToCompletionInSeconds":
27879			if value != nil {
27880				jtv, ok := value.(json.Number)
27881				if !ok {
27882					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
27883				}
27884				i64, err := jtv.Int64()
27885				if err != nil {
27886					return err
27887				}
27888				sv.EstimatedTimeToCompletionInSeconds = i64
27889			}
27890
27891		case "ProgressInMegaBytes":
27892			if value != nil {
27893				jtv, ok := value.(json.Number)
27894				if !ok {
27895					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
27896				}
27897				i64, err := jtv.Int64()
27898				if err != nil {
27899					return err
27900				}
27901				sv.ProgressInMegaBytes = i64
27902			}
27903
27904		case "SnapshotSizeInMegaBytes":
27905			if value != nil {
27906				jtv, ok := value.(json.Number)
27907				if !ok {
27908					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
27909				}
27910				i64, err := jtv.Int64()
27911				if err != nil {
27912					return err
27913				}
27914				sv.SnapshotSizeInMegaBytes = i64
27915			}
27916
27917		case "Status":
27918			if value != nil {
27919				jtv, ok := value.(string)
27920				if !ok {
27921					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27922				}
27923				sv.Status = ptr.String(jtv)
27924			}
27925
27926		default:
27927			_, _ = key, value
27928
27929		}
27930	}
27931	*v = sv
27932	return nil
27933}
27934
27935func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(v **types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error {
27936	if v == nil {
27937		return fmt.Errorf("unexpected nil of type %T", v)
27938	}
27939	if value == nil {
27940		return nil
27941	}
27942
27943	shape, ok := value.(map[string]interface{})
27944	if !ok {
27945		return fmt.Errorf("unexpected JSON type %v", value)
27946	}
27947
27948	var sv *types.AwsRedshiftClusterVpcSecurityGroup
27949	if *v == nil {
27950		sv = &types.AwsRedshiftClusterVpcSecurityGroup{}
27951	} else {
27952		sv = *v
27953	}
27954
27955	for key, value := range shape {
27956		switch key {
27957		case "Status":
27958			if value != nil {
27959				jtv, ok := value.(string)
27960				if !ok {
27961					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27962				}
27963				sv.Status = ptr.String(jtv)
27964			}
27965
27966		case "VpcSecurityGroupId":
27967			if value != nil {
27968				jtv, ok := value.(string)
27969				if !ok {
27970					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
27971				}
27972				sv.VpcSecurityGroupId = ptr.String(jtv)
27973			}
27974
27975		default:
27976			_, _ = key, value
27977
27978		}
27979	}
27980	*v = sv
27981	return nil
27982}
27983
27984func awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroups(v *[]types.AwsRedshiftClusterVpcSecurityGroup, value interface{}) error {
27985	if v == nil {
27986		return fmt.Errorf("unexpected nil of type %T", v)
27987	}
27988	if value == nil {
27989		return nil
27990	}
27991
27992	shape, ok := value.([]interface{})
27993	if !ok {
27994		return fmt.Errorf("unexpected JSON type %v", value)
27995	}
27996
27997	var cv []types.AwsRedshiftClusterVpcSecurityGroup
27998	if *v == nil {
27999		cv = []types.AwsRedshiftClusterVpcSecurityGroup{}
28000	} else {
28001		cv = *v
28002	}
28003
28004	for _, value := range shape {
28005		var col types.AwsRedshiftClusterVpcSecurityGroup
28006		destAddr := &col
28007		if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterVpcSecurityGroup(&destAddr, value); err != nil {
28008			return err
28009		}
28010		col = *destAddr
28011		cv = append(cv, col)
28012
28013	}
28014	*v = cv
28015	return nil
28016}
28017
28018func awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(v **types.AwsS3AccountPublicAccessBlockDetails, value interface{}) error {
28019	if v == nil {
28020		return fmt.Errorf("unexpected nil of type %T", v)
28021	}
28022	if value == nil {
28023		return nil
28024	}
28025
28026	shape, ok := value.(map[string]interface{})
28027	if !ok {
28028		return fmt.Errorf("unexpected JSON type %v", value)
28029	}
28030
28031	var sv *types.AwsS3AccountPublicAccessBlockDetails
28032	if *v == nil {
28033		sv = &types.AwsS3AccountPublicAccessBlockDetails{}
28034	} else {
28035		sv = *v
28036	}
28037
28038	for key, value := range shape {
28039		switch key {
28040		case "BlockPublicAcls":
28041			if value != nil {
28042				jtv, ok := value.(bool)
28043				if !ok {
28044					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28045				}
28046				sv.BlockPublicAcls = jtv
28047			}
28048
28049		case "BlockPublicPolicy":
28050			if value != nil {
28051				jtv, ok := value.(bool)
28052				if !ok {
28053					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28054				}
28055				sv.BlockPublicPolicy = jtv
28056			}
28057
28058		case "IgnorePublicAcls":
28059			if value != nil {
28060				jtv, ok := value.(bool)
28061				if !ok {
28062					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28063				}
28064				sv.IgnorePublicAcls = jtv
28065			}
28066
28067		case "RestrictPublicBuckets":
28068			if value != nil {
28069				jtv, ok := value.(bool)
28070				if !ok {
28071					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28072				}
28073				sv.RestrictPublicBuckets = jtv
28074			}
28075
28076		default:
28077			_, _ = key, value
28078
28079		}
28080	}
28081	*v = sv
28082	return nil
28083}
28084
28085func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v **types.AwsS3BucketBucketLifecycleConfigurationDetails, value interface{}) error {
28086	if v == nil {
28087		return fmt.Errorf("unexpected nil of type %T", v)
28088	}
28089	if value == nil {
28090		return nil
28091	}
28092
28093	shape, ok := value.(map[string]interface{})
28094	if !ok {
28095		return fmt.Errorf("unexpected JSON type %v", value)
28096	}
28097
28098	var sv *types.AwsS3BucketBucketLifecycleConfigurationDetails
28099	if *v == nil {
28100		sv = &types.AwsS3BucketBucketLifecycleConfigurationDetails{}
28101	} else {
28102		sv = *v
28103	}
28104
28105	for key, value := range shape {
28106		switch key {
28107		case "Rules":
28108			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(&sv.Rules, value); err != nil {
28109				return err
28110			}
28111
28112		default:
28113			_, _ = key, value
28114
28115		}
28116	}
28117	*v = sv
28118	return nil
28119}
28120
28121func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails, value interface{}) error {
28122	if v == nil {
28123		return fmt.Errorf("unexpected nil of type %T", v)
28124	}
28125	if value == nil {
28126		return nil
28127	}
28128
28129	shape, ok := value.(map[string]interface{})
28130	if !ok {
28131		return fmt.Errorf("unexpected JSON type %v", value)
28132	}
28133
28134	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails
28135	if *v == nil {
28136		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails{}
28137	} else {
28138		sv = *v
28139	}
28140
28141	for key, value := range shape {
28142		switch key {
28143		case "DaysAfterInitiation":
28144			if value != nil {
28145				jtv, ok := value.(json.Number)
28146				if !ok {
28147					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
28148				}
28149				i64, err := jtv.Int64()
28150				if err != nil {
28151					return err
28152				}
28153				sv.DaysAfterInitiation = int32(i64)
28154			}
28155
28156		default:
28157			_, _ = key, value
28158
28159		}
28160	}
28161	*v = sv
28162	return nil
28163}
28164
28165func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error {
28166	if v == nil {
28167		return fmt.Errorf("unexpected nil of type %T", v)
28168	}
28169	if value == nil {
28170		return nil
28171	}
28172
28173	shape, ok := value.(map[string]interface{})
28174	if !ok {
28175		return fmt.Errorf("unexpected JSON type %v", value)
28176	}
28177
28178	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesDetails
28179	if *v == nil {
28180		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{}
28181	} else {
28182		sv = *v
28183	}
28184
28185	for key, value := range shape {
28186		switch key {
28187		case "AbortIncompleteMultipartUpload":
28188			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(&sv.AbortIncompleteMultipartUpload, value); err != nil {
28189				return err
28190			}
28191
28192		case "ExpirationDate":
28193			if value != nil {
28194				jtv, ok := value.(string)
28195				if !ok {
28196					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28197				}
28198				sv.ExpirationDate = ptr.String(jtv)
28199			}
28200
28201		case "ExpirationInDays":
28202			if value != nil {
28203				jtv, ok := value.(json.Number)
28204				if !ok {
28205					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
28206				}
28207				i64, err := jtv.Int64()
28208				if err != nil {
28209					return err
28210				}
28211				sv.ExpirationInDays = int32(i64)
28212			}
28213
28214		case "ExpiredObjectDeleteMarker":
28215			if value != nil {
28216				jtv, ok := value.(bool)
28217				if !ok {
28218					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28219				}
28220				sv.ExpiredObjectDeleteMarker = jtv
28221			}
28222
28223		case "Filter":
28224			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(&sv.Filter, value); err != nil {
28225				return err
28226			}
28227
28228		case "ID":
28229			if value != nil {
28230				jtv, ok := value.(string)
28231				if !ok {
28232					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28233				}
28234				sv.ID = ptr.String(jtv)
28235			}
28236
28237		case "NoncurrentVersionExpirationInDays":
28238			if value != nil {
28239				jtv, ok := value.(json.Number)
28240				if !ok {
28241					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
28242				}
28243				i64, err := jtv.Int64()
28244				if err != nil {
28245					return err
28246				}
28247				sv.NoncurrentVersionExpirationInDays = int32(i64)
28248			}
28249
28250		case "NoncurrentVersionTransitions":
28251			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(&sv.NoncurrentVersionTransitions, value); err != nil {
28252				return err
28253			}
28254
28255		case "Prefix":
28256			if value != nil {
28257				jtv, ok := value.(string)
28258				if !ok {
28259					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28260				}
28261				sv.Prefix = ptr.String(jtv)
28262			}
28263
28264		case "Status":
28265			if value != nil {
28266				jtv, ok := value.(string)
28267				if !ok {
28268					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28269				}
28270				sv.Status = ptr.String(jtv)
28271			}
28272
28273		case "Transitions":
28274			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(&sv.Transitions, value); err != nil {
28275				return err
28276			}
28277
28278		default:
28279			_, _ = key, value
28280
28281		}
28282	}
28283	*v = sv
28284	return nil
28285}
28286
28287func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails, value interface{}) error {
28288	if v == nil {
28289		return fmt.Errorf("unexpected nil of type %T", v)
28290	}
28291	if value == nil {
28292		return nil
28293	}
28294
28295	shape, ok := value.(map[string]interface{})
28296	if !ok {
28297		return fmt.Errorf("unexpected JSON type %v", value)
28298	}
28299
28300	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails
28301	if *v == nil {
28302		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails{}
28303	} else {
28304		sv = *v
28305	}
28306
28307	for key, value := range shape {
28308		switch key {
28309		case "Predicate":
28310			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(&sv.Predicate, value); err != nil {
28311				return err
28312			}
28313
28314		default:
28315			_, _ = key, value
28316
28317		}
28318	}
28319	*v = sv
28320	return nil
28321}
28322
28323func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails, 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.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails
28337	if *v == nil {
28338		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails{}
28339	} else {
28340		sv = *v
28341	}
28342
28343	for key, value := range shape {
28344		switch key {
28345		case "Operands":
28346			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(&sv.Operands, value); err != nil {
28347				return err
28348			}
28349
28350		case "Prefix":
28351			if value != nil {
28352				jtv, ok := value.(string)
28353				if !ok {
28354					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28355				}
28356				sv.Prefix = ptr.String(jtv)
28357			}
28358
28359		case "Tag":
28360			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(&sv.Tag, value); err != nil {
28361				return err
28362			}
28363
28364		case "Type":
28365			if value != nil {
28366				jtv, ok := value.(string)
28367				if !ok {
28368					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28369				}
28370				sv.Type = ptr.String(jtv)
28371			}
28372
28373		default:
28374			_, _ = key, value
28375
28376		}
28377	}
28378	*v = sv
28379	return nil
28380}
28381
28382func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error {
28383	if v == nil {
28384		return fmt.Errorf("unexpected nil of type %T", v)
28385	}
28386	if value == nil {
28387		return nil
28388	}
28389
28390	shape, ok := value.(map[string]interface{})
28391	if !ok {
28392		return fmt.Errorf("unexpected JSON type %v", value)
28393	}
28394
28395	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails
28396	if *v == nil {
28397		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{}
28398	} else {
28399		sv = *v
28400	}
28401
28402	for key, value := range shape {
28403		switch key {
28404		case "Prefix":
28405			if value != nil {
28406				jtv, ok := value.(string)
28407				if !ok {
28408					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28409				}
28410				sv.Prefix = ptr.String(jtv)
28411			}
28412
28413		case "Tag":
28414			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(&sv.Tag, value); err != nil {
28415				return err
28416			}
28417
28418		case "Type":
28419			if value != nil {
28420				jtv, ok := value.(string)
28421				if !ok {
28422					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28423				}
28424				sv.Type = ptr.String(jtv)
28425			}
28426
28427		default:
28428			_, _ = key, value
28429
28430		}
28431	}
28432	*v = sv
28433	return nil
28434}
28435
28436func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value interface{}) error {
28437	if v == nil {
28438		return fmt.Errorf("unexpected nil of type %T", v)
28439	}
28440	if value == nil {
28441		return nil
28442	}
28443
28444	shape, ok := value.([]interface{})
28445	if !ok {
28446		return fmt.Errorf("unexpected JSON type %v", value)
28447	}
28448
28449	var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails
28450	if *v == nil {
28451		cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails{}
28452	} else {
28453		cv = *v
28454	}
28455
28456	for _, value := range shape {
28457		var col types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails
28458		destAddr := &col
28459		if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(&destAddr, value); err != nil {
28460			return err
28461		}
28462		col = *destAddr
28463		cv = append(cv, col)
28464
28465	}
28466	*v = cv
28467	return nil
28468}
28469
28470func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails, value interface{}) error {
28471	if v == nil {
28472		return fmt.Errorf("unexpected nil of type %T", v)
28473	}
28474	if value == nil {
28475		return nil
28476	}
28477
28478	shape, ok := value.(map[string]interface{})
28479	if !ok {
28480		return fmt.Errorf("unexpected JSON type %v", value)
28481	}
28482
28483	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails
28484	if *v == nil {
28485		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails{}
28486	} else {
28487		sv = *v
28488	}
28489
28490	for key, value := range shape {
28491		switch key {
28492		case "Key":
28493			if value != nil {
28494				jtv, ok := value.(string)
28495				if !ok {
28496					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28497				}
28498				sv.Key = ptr.String(jtv)
28499			}
28500
28501		case "Value":
28502			if value != nil {
28503				jtv, ok := value.(string)
28504				if !ok {
28505					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28506				}
28507				sv.Value = ptr.String(jtv)
28508			}
28509
28510		default:
28511			_, _ = key, value
28512
28513		}
28514	}
28515	*v = sv
28516	return nil
28517}
28518
28519func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails, value interface{}) error {
28520	if v == nil {
28521		return fmt.Errorf("unexpected nil of type %T", v)
28522	}
28523	if value == nil {
28524		return nil
28525	}
28526
28527	shape, ok := value.(map[string]interface{})
28528	if !ok {
28529		return fmt.Errorf("unexpected JSON type %v", value)
28530	}
28531
28532	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails
28533	if *v == nil {
28534		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails{}
28535	} else {
28536		sv = *v
28537	}
28538
28539	for key, value := range shape {
28540		switch key {
28541		case "Key":
28542			if value != nil {
28543				jtv, ok := value.(string)
28544				if !ok {
28545					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28546				}
28547				sv.Key = ptr.String(jtv)
28548			}
28549
28550		case "Value":
28551			if value != nil {
28552				jtv, ok := value.(string)
28553				if !ok {
28554					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28555				}
28556				sv.Value = ptr.String(jtv)
28557			}
28558
28559		default:
28560			_, _ = key, value
28561
28562		}
28563	}
28564	*v = sv
28565	return nil
28566}
28567
28568func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value interface{}) error {
28569	if v == nil {
28570		return fmt.Errorf("unexpected nil of type %T", v)
28571	}
28572	if value == nil {
28573		return nil
28574	}
28575
28576	shape, ok := value.([]interface{})
28577	if !ok {
28578		return fmt.Errorf("unexpected JSON type %v", value)
28579	}
28580
28581	var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails
28582	if *v == nil {
28583		cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails{}
28584	} else {
28585		cv = *v
28586	}
28587
28588	for _, value := range shape {
28589		var col types.AwsS3BucketBucketLifecycleConfigurationRulesDetails
28590		destAddr := &col
28591		if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(&destAddr, value); err != nil {
28592			return err
28593		}
28594		col = *destAddr
28595		cv = append(cv, col)
28596
28597	}
28598	*v = cv
28599	return nil
28600}
28601
28602func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error {
28603	if v == nil {
28604		return fmt.Errorf("unexpected nil of type %T", v)
28605	}
28606	if value == nil {
28607		return nil
28608	}
28609
28610	shape, ok := value.(map[string]interface{})
28611	if !ok {
28612		return fmt.Errorf("unexpected JSON type %v", value)
28613	}
28614
28615	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails
28616	if *v == nil {
28617		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{}
28618	} else {
28619		sv = *v
28620	}
28621
28622	for key, value := range shape {
28623		switch key {
28624		case "Days":
28625			if value != nil {
28626				jtv, ok := value.(json.Number)
28627				if !ok {
28628					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
28629				}
28630				i64, err := jtv.Int64()
28631				if err != nil {
28632					return err
28633				}
28634				sv.Days = int32(i64)
28635			}
28636
28637		case "StorageClass":
28638			if value != nil {
28639				jtv, ok := value.(string)
28640				if !ok {
28641					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28642				}
28643				sv.StorageClass = ptr.String(jtv)
28644			}
28645
28646		default:
28647			_, _ = key, value
28648
28649		}
28650	}
28651	*v = sv
28652	return nil
28653}
28654
28655func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value interface{}) error {
28656	if v == nil {
28657		return fmt.Errorf("unexpected nil of type %T", v)
28658	}
28659	if value == nil {
28660		return nil
28661	}
28662
28663	shape, ok := value.([]interface{})
28664	if !ok {
28665		return fmt.Errorf("unexpected JSON type %v", value)
28666	}
28667
28668	var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails
28669	if *v == nil {
28670		cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails{}
28671	} else {
28672		cv = *v
28673	}
28674
28675	for _, value := range shape {
28676		var col types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails
28677		destAddr := &col
28678		if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(&destAddr, value); err != nil {
28679			return err
28680		}
28681		col = *destAddr
28682		cv = append(cv, col)
28683
28684	}
28685	*v = cv
28686	return nil
28687}
28688
28689func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(v **types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error {
28690	if v == nil {
28691		return fmt.Errorf("unexpected nil of type %T", v)
28692	}
28693	if value == nil {
28694		return nil
28695	}
28696
28697	shape, ok := value.(map[string]interface{})
28698	if !ok {
28699		return fmt.Errorf("unexpected JSON type %v", value)
28700	}
28701
28702	var sv *types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails
28703	if *v == nil {
28704		sv = &types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{}
28705	} else {
28706		sv = *v
28707	}
28708
28709	for key, value := range shape {
28710		switch key {
28711		case "Date":
28712			if value != nil {
28713				jtv, ok := value.(string)
28714				if !ok {
28715					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28716				}
28717				sv.Date = ptr.String(jtv)
28718			}
28719
28720		case "Days":
28721			if value != nil {
28722				jtv, ok := value.(json.Number)
28723				if !ok {
28724					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
28725				}
28726				i64, err := jtv.Int64()
28727				if err != nil {
28728					return err
28729				}
28730				sv.Days = int32(i64)
28731			}
28732
28733		case "StorageClass":
28734			if value != nil {
28735				jtv, ok := value.(string)
28736				if !ok {
28737					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28738				}
28739				sv.StorageClass = ptr.String(jtv)
28740			}
28741
28742		default:
28743			_, _ = key, value
28744
28745		}
28746	}
28747	*v = sv
28748	return nil
28749}
28750
28751func awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(v *[]types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value interface{}) error {
28752	if v == nil {
28753		return fmt.Errorf("unexpected nil of type %T", v)
28754	}
28755	if value == nil {
28756		return nil
28757	}
28758
28759	shape, ok := value.([]interface{})
28760	if !ok {
28761		return fmt.Errorf("unexpected JSON type %v", value)
28762	}
28763
28764	var cv []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails
28765	if *v == nil {
28766		cv = []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails{}
28767	} else {
28768		cv = *v
28769	}
28770
28771	for _, value := range shape {
28772		var col types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails
28773		destAddr := &col
28774		if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(&destAddr, value); err != nil {
28775			return err
28776		}
28777		col = *destAddr
28778		cv = append(cv, col)
28779
28780	}
28781	*v = cv
28782	return nil
28783}
28784
28785func awsRestjson1_deserializeDocumentAwsS3BucketDetails(v **types.AwsS3BucketDetails, value interface{}) error {
28786	if v == nil {
28787		return fmt.Errorf("unexpected nil of type %T", v)
28788	}
28789	if value == nil {
28790		return nil
28791	}
28792
28793	shape, ok := value.(map[string]interface{})
28794	if !ok {
28795		return fmt.Errorf("unexpected JSON type %v", value)
28796	}
28797
28798	var sv *types.AwsS3BucketDetails
28799	if *v == nil {
28800		sv = &types.AwsS3BucketDetails{}
28801	} else {
28802		sv = *v
28803	}
28804
28805	for key, value := range shape {
28806		switch key {
28807		case "AccessControlList":
28808			if value != nil {
28809				jtv, ok := value.(string)
28810				if !ok {
28811					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28812				}
28813				sv.AccessControlList = ptr.String(jtv)
28814			}
28815
28816		case "BucketLifecycleConfiguration":
28817			if err := awsRestjson1_deserializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(&sv.BucketLifecycleConfiguration, value); err != nil {
28818				return err
28819			}
28820
28821		case "BucketLoggingConfiguration":
28822			if err := awsRestjson1_deserializeDocumentAwsS3BucketLoggingConfiguration(&sv.BucketLoggingConfiguration, value); err != nil {
28823				return err
28824			}
28825
28826		case "BucketNotificationConfiguration":
28827			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfiguration(&sv.BucketNotificationConfiguration, value); err != nil {
28828				return err
28829			}
28830
28831		case "BucketWebsiteConfiguration":
28832			if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfiguration(&sv.BucketWebsiteConfiguration, value); err != nil {
28833				return err
28834			}
28835
28836		case "CreatedAt":
28837			if value != nil {
28838				jtv, ok := value.(string)
28839				if !ok {
28840					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28841				}
28842				sv.CreatedAt = ptr.String(jtv)
28843			}
28844
28845		case "OwnerId":
28846			if value != nil {
28847				jtv, ok := value.(string)
28848				if !ok {
28849					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28850				}
28851				sv.OwnerId = ptr.String(jtv)
28852			}
28853
28854		case "OwnerName":
28855			if value != nil {
28856				jtv, ok := value.(string)
28857				if !ok {
28858					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28859				}
28860				sv.OwnerName = ptr.String(jtv)
28861			}
28862
28863		case "PublicAccessBlockConfiguration":
28864			if err := awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(&sv.PublicAccessBlockConfiguration, value); err != nil {
28865				return err
28866			}
28867
28868		case "ServerSideEncryptionConfiguration":
28869			if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(&sv.ServerSideEncryptionConfiguration, value); err != nil {
28870				return err
28871			}
28872
28873		default:
28874			_, _ = key, value
28875
28876		}
28877	}
28878	*v = sv
28879	return nil
28880}
28881
28882func awsRestjson1_deserializeDocumentAwsS3BucketLoggingConfiguration(v **types.AwsS3BucketLoggingConfiguration, value interface{}) error {
28883	if v == nil {
28884		return fmt.Errorf("unexpected nil of type %T", v)
28885	}
28886	if value == nil {
28887		return nil
28888	}
28889
28890	shape, ok := value.(map[string]interface{})
28891	if !ok {
28892		return fmt.Errorf("unexpected JSON type %v", value)
28893	}
28894
28895	var sv *types.AwsS3BucketLoggingConfiguration
28896	if *v == nil {
28897		sv = &types.AwsS3BucketLoggingConfiguration{}
28898	} else {
28899		sv = *v
28900	}
28901
28902	for key, value := range shape {
28903		switch key {
28904		case "DestinationBucketName":
28905			if value != nil {
28906				jtv, ok := value.(string)
28907				if !ok {
28908					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28909				}
28910				sv.DestinationBucketName = ptr.String(jtv)
28911			}
28912
28913		case "LogFilePrefix":
28914			if value != nil {
28915				jtv, ok := value.(string)
28916				if !ok {
28917					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28918				}
28919				sv.LogFilePrefix = ptr.String(jtv)
28920			}
28921
28922		default:
28923			_, _ = key, value
28924
28925		}
28926	}
28927	*v = sv
28928	return nil
28929}
28930
28931func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfiguration(v **types.AwsS3BucketNotificationConfiguration, value interface{}) error {
28932	if v == nil {
28933		return fmt.Errorf("unexpected nil of type %T", v)
28934	}
28935	if value == nil {
28936		return nil
28937	}
28938
28939	shape, ok := value.(map[string]interface{})
28940	if !ok {
28941		return fmt.Errorf("unexpected JSON type %v", value)
28942	}
28943
28944	var sv *types.AwsS3BucketNotificationConfiguration
28945	if *v == nil {
28946		sv = &types.AwsS3BucketNotificationConfiguration{}
28947	} else {
28948		sv = *v
28949	}
28950
28951	for key, value := range shape {
28952		switch key {
28953		case "Configurations":
28954			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetails(&sv.Configurations, value); err != nil {
28955				return err
28956			}
28957
28958		default:
28959			_, _ = key, value
28960
28961		}
28962	}
28963	*v = sv
28964	return nil
28965}
28966
28967func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetail(v **types.AwsS3BucketNotificationConfigurationDetail, value interface{}) error {
28968	if v == nil {
28969		return fmt.Errorf("unexpected nil of type %T", v)
28970	}
28971	if value == nil {
28972		return nil
28973	}
28974
28975	shape, ok := value.(map[string]interface{})
28976	if !ok {
28977		return fmt.Errorf("unexpected JSON type %v", value)
28978	}
28979
28980	var sv *types.AwsS3BucketNotificationConfigurationDetail
28981	if *v == nil {
28982		sv = &types.AwsS3BucketNotificationConfigurationDetail{}
28983	} else {
28984		sv = *v
28985	}
28986
28987	for key, value := range shape {
28988		switch key {
28989		case "Destination":
28990			if value != nil {
28991				jtv, ok := value.(string)
28992				if !ok {
28993					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
28994				}
28995				sv.Destination = ptr.String(jtv)
28996			}
28997
28998		case "Events":
28999			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationEvents(&sv.Events, value); err != nil {
29000				return err
29001			}
29002
29003		case "Filter":
29004			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationFilter(&sv.Filter, value); err != nil {
29005				return err
29006			}
29007
29008		case "Type":
29009			if value != nil {
29010				jtv, ok := value.(string)
29011				if !ok {
29012					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29013				}
29014				sv.Type = ptr.String(jtv)
29015			}
29016
29017		default:
29018			_, _ = key, value
29019
29020		}
29021	}
29022	*v = sv
29023	return nil
29024}
29025
29026func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetails(v *[]types.AwsS3BucketNotificationConfigurationDetail, value interface{}) error {
29027	if v == nil {
29028		return fmt.Errorf("unexpected nil of type %T", v)
29029	}
29030	if value == nil {
29031		return nil
29032	}
29033
29034	shape, ok := value.([]interface{})
29035	if !ok {
29036		return fmt.Errorf("unexpected JSON type %v", value)
29037	}
29038
29039	var cv []types.AwsS3BucketNotificationConfigurationDetail
29040	if *v == nil {
29041		cv = []types.AwsS3BucketNotificationConfigurationDetail{}
29042	} else {
29043		cv = *v
29044	}
29045
29046	for _, value := range shape {
29047		var col types.AwsS3BucketNotificationConfigurationDetail
29048		destAddr := &col
29049		if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationDetail(&destAddr, value); err != nil {
29050			return err
29051		}
29052		col = *destAddr
29053		cv = append(cv, col)
29054
29055	}
29056	*v = cv
29057	return nil
29058}
29059
29060func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationEvents(v *[]string, value interface{}) error {
29061	if v == nil {
29062		return fmt.Errorf("unexpected nil of type %T", v)
29063	}
29064	if value == nil {
29065		return nil
29066	}
29067
29068	shape, ok := value.([]interface{})
29069	if !ok {
29070		return fmt.Errorf("unexpected JSON type %v", value)
29071	}
29072
29073	var cv []string
29074	if *v == nil {
29075		cv = []string{}
29076	} else {
29077		cv = *v
29078	}
29079
29080	for _, value := range shape {
29081		var col string
29082		if value != nil {
29083			jtv, ok := value.(string)
29084			if !ok {
29085				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29086			}
29087			col = jtv
29088		}
29089		cv = append(cv, col)
29090
29091	}
29092	*v = cv
29093	return nil
29094}
29095
29096func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationFilter(v **types.AwsS3BucketNotificationConfigurationFilter, value interface{}) error {
29097	if v == nil {
29098		return fmt.Errorf("unexpected nil of type %T", v)
29099	}
29100	if value == nil {
29101		return nil
29102	}
29103
29104	shape, ok := value.(map[string]interface{})
29105	if !ok {
29106		return fmt.Errorf("unexpected JSON type %v", value)
29107	}
29108
29109	var sv *types.AwsS3BucketNotificationConfigurationFilter
29110	if *v == nil {
29111		sv = &types.AwsS3BucketNotificationConfigurationFilter{}
29112	} else {
29113		sv = *v
29114	}
29115
29116	for key, value := range shape {
29117		switch key {
29118		case "S3KeyFilter":
29119			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(&sv.S3KeyFilter, value); err != nil {
29120				return err
29121			}
29122
29123		default:
29124			_, _ = key, value
29125
29126		}
29127	}
29128	*v = sv
29129	return nil
29130}
29131
29132func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v **types.AwsS3BucketNotificationConfigurationS3KeyFilter, value interface{}) error {
29133	if v == nil {
29134		return fmt.Errorf("unexpected nil of type %T", v)
29135	}
29136	if value == nil {
29137		return nil
29138	}
29139
29140	shape, ok := value.(map[string]interface{})
29141	if !ok {
29142		return fmt.Errorf("unexpected JSON type %v", value)
29143	}
29144
29145	var sv *types.AwsS3BucketNotificationConfigurationS3KeyFilter
29146	if *v == nil {
29147		sv = &types.AwsS3BucketNotificationConfigurationS3KeyFilter{}
29148	} else {
29149		sv = *v
29150	}
29151
29152	for key, value := range shape {
29153		switch key {
29154		case "FilterRules":
29155			if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(&sv.FilterRules, value); err != nil {
29156				return err
29157			}
29158
29159		default:
29160			_, _ = key, value
29161
29162		}
29163	}
29164	*v = sv
29165	return nil
29166}
29167
29168func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(v **types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value interface{}) error {
29169	if v == nil {
29170		return fmt.Errorf("unexpected nil of type %T", v)
29171	}
29172	if value == nil {
29173		return nil
29174	}
29175
29176	shape, ok := value.(map[string]interface{})
29177	if !ok {
29178		return fmt.Errorf("unexpected JSON type %v", value)
29179	}
29180
29181	var sv *types.AwsS3BucketNotificationConfigurationS3KeyFilterRule
29182	if *v == nil {
29183		sv = &types.AwsS3BucketNotificationConfigurationS3KeyFilterRule{}
29184	} else {
29185		sv = *v
29186	}
29187
29188	for key, value := range shape {
29189		switch key {
29190		case "Name":
29191			if value != nil {
29192				jtv, ok := value.(string)
29193				if !ok {
29194					return fmt.Errorf("expected AwsS3BucketNotificationConfigurationS3KeyFilterRuleName to be of type string, got %T instead", value)
29195				}
29196				sv.Name = types.AwsS3BucketNotificationConfigurationS3KeyFilterRuleName(jtv)
29197			}
29198
29199		case "Value":
29200			if value != nil {
29201				jtv, ok := value.(string)
29202				if !ok {
29203					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29204				}
29205				sv.Value = ptr.String(jtv)
29206			}
29207
29208		default:
29209			_, _ = key, value
29210
29211		}
29212	}
29213	*v = sv
29214	return nil
29215}
29216
29217func awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v *[]types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value interface{}) error {
29218	if v == nil {
29219		return fmt.Errorf("unexpected nil of type %T", v)
29220	}
29221	if value == nil {
29222		return nil
29223	}
29224
29225	shape, ok := value.([]interface{})
29226	if !ok {
29227		return fmt.Errorf("unexpected JSON type %v", value)
29228	}
29229
29230	var cv []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule
29231	if *v == nil {
29232		cv = []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule{}
29233	} else {
29234		cv = *v
29235	}
29236
29237	for _, value := range shape {
29238		var col types.AwsS3BucketNotificationConfigurationS3KeyFilterRule
29239		destAddr := &col
29240		if err := awsRestjson1_deserializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(&destAddr, value); err != nil {
29241			return err
29242		}
29243		col = *destAddr
29244		cv = append(cv, col)
29245
29246	}
29247	*v = cv
29248	return nil
29249}
29250
29251func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(v **types.AwsS3BucketServerSideEncryptionByDefault, value interface{}) error {
29252	if v == nil {
29253		return fmt.Errorf("unexpected nil of type %T", v)
29254	}
29255	if value == nil {
29256		return nil
29257	}
29258
29259	shape, ok := value.(map[string]interface{})
29260	if !ok {
29261		return fmt.Errorf("unexpected JSON type %v", value)
29262	}
29263
29264	var sv *types.AwsS3BucketServerSideEncryptionByDefault
29265	if *v == nil {
29266		sv = &types.AwsS3BucketServerSideEncryptionByDefault{}
29267	} else {
29268		sv = *v
29269	}
29270
29271	for key, value := range shape {
29272		switch key {
29273		case "KMSMasterKeyID":
29274			if value != nil {
29275				jtv, ok := value.(string)
29276				if !ok {
29277					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29278				}
29279				sv.KMSMasterKeyID = ptr.String(jtv)
29280			}
29281
29282		case "SSEAlgorithm":
29283			if value != nil {
29284				jtv, ok := value.(string)
29285				if !ok {
29286					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29287				}
29288				sv.SSEAlgorithm = ptr.String(jtv)
29289			}
29290
29291		default:
29292			_, _ = key, value
29293
29294		}
29295	}
29296	*v = sv
29297	return nil
29298}
29299
29300func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v **types.AwsS3BucketServerSideEncryptionConfiguration, value interface{}) error {
29301	if v == nil {
29302		return fmt.Errorf("unexpected nil of type %T", v)
29303	}
29304	if value == nil {
29305		return nil
29306	}
29307
29308	shape, ok := value.(map[string]interface{})
29309	if !ok {
29310		return fmt.Errorf("unexpected JSON type %v", value)
29311	}
29312
29313	var sv *types.AwsS3BucketServerSideEncryptionConfiguration
29314	if *v == nil {
29315		sv = &types.AwsS3BucketServerSideEncryptionConfiguration{}
29316	} else {
29317		sv = *v
29318	}
29319
29320	for key, value := range shape {
29321		switch key {
29322		case "Rules":
29323			if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(&sv.Rules, value); err != nil {
29324				return err
29325			}
29326
29327		default:
29328			_, _ = key, value
29329
29330		}
29331	}
29332	*v = sv
29333	return nil
29334}
29335
29336func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(v **types.AwsS3BucketServerSideEncryptionRule, value interface{}) error {
29337	if v == nil {
29338		return fmt.Errorf("unexpected nil of type %T", v)
29339	}
29340	if value == nil {
29341		return nil
29342	}
29343
29344	shape, ok := value.(map[string]interface{})
29345	if !ok {
29346		return fmt.Errorf("unexpected JSON type %v", value)
29347	}
29348
29349	var sv *types.AwsS3BucketServerSideEncryptionRule
29350	if *v == nil {
29351		sv = &types.AwsS3BucketServerSideEncryptionRule{}
29352	} else {
29353		sv = *v
29354	}
29355
29356	for key, value := range shape {
29357		switch key {
29358		case "ApplyServerSideEncryptionByDefault":
29359			if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionByDefault(&sv.ApplyServerSideEncryptionByDefault, value); err != nil {
29360				return err
29361			}
29362
29363		default:
29364			_, _ = key, value
29365
29366		}
29367	}
29368	*v = sv
29369	return nil
29370}
29371
29372func awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRules(v *[]types.AwsS3BucketServerSideEncryptionRule, value interface{}) error {
29373	if v == nil {
29374		return fmt.Errorf("unexpected nil of type %T", v)
29375	}
29376	if value == nil {
29377		return nil
29378	}
29379
29380	shape, ok := value.([]interface{})
29381	if !ok {
29382		return fmt.Errorf("unexpected JSON type %v", value)
29383	}
29384
29385	var cv []types.AwsS3BucketServerSideEncryptionRule
29386	if *v == nil {
29387		cv = []types.AwsS3BucketServerSideEncryptionRule{}
29388	} else {
29389		cv = *v
29390	}
29391
29392	for _, value := range shape {
29393		var col types.AwsS3BucketServerSideEncryptionRule
29394		destAddr := &col
29395		if err := awsRestjson1_deserializeDocumentAwsS3BucketServerSideEncryptionRule(&destAddr, value); err != nil {
29396			return err
29397		}
29398		col = *destAddr
29399		cv = append(cv, col)
29400
29401	}
29402	*v = cv
29403	return nil
29404}
29405
29406func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfiguration(v **types.AwsS3BucketWebsiteConfiguration, value interface{}) error {
29407	if v == nil {
29408		return fmt.Errorf("unexpected nil of type %T", v)
29409	}
29410	if value == nil {
29411		return nil
29412	}
29413
29414	shape, ok := value.(map[string]interface{})
29415	if !ok {
29416		return fmt.Errorf("unexpected JSON type %v", value)
29417	}
29418
29419	var sv *types.AwsS3BucketWebsiteConfiguration
29420	if *v == nil {
29421		sv = &types.AwsS3BucketWebsiteConfiguration{}
29422	} else {
29423		sv = *v
29424	}
29425
29426	for key, value := range shape {
29427		switch key {
29428		case "ErrorDocument":
29429			if value != nil {
29430				jtv, ok := value.(string)
29431				if !ok {
29432					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29433				}
29434				sv.ErrorDocument = ptr.String(jtv)
29435			}
29436
29437		case "IndexDocumentSuffix":
29438			if value != nil {
29439				jtv, ok := value.(string)
29440				if !ok {
29441					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29442				}
29443				sv.IndexDocumentSuffix = ptr.String(jtv)
29444			}
29445
29446		case "RedirectAllRequestsTo":
29447			if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(&sv.RedirectAllRequestsTo, value); err != nil {
29448				return err
29449			}
29450
29451		case "RoutingRules":
29452			if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(&sv.RoutingRules, value); err != nil {
29453				return err
29454			}
29455
29456		default:
29457			_, _ = key, value
29458
29459		}
29460	}
29461	*v = sv
29462	return nil
29463}
29464
29465func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v **types.AwsS3BucketWebsiteConfigurationRedirectTo, 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.AwsS3BucketWebsiteConfigurationRedirectTo
29479	if *v == nil {
29480		sv = &types.AwsS3BucketWebsiteConfigurationRedirectTo{}
29481	} else {
29482		sv = *v
29483	}
29484
29485	for key, value := range shape {
29486		switch key {
29487		case "Hostname":
29488			if value != nil {
29489				jtv, ok := value.(string)
29490				if !ok {
29491					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29492				}
29493				sv.Hostname = ptr.String(jtv)
29494			}
29495
29496		case "Protocol":
29497			if value != nil {
29498				jtv, ok := value.(string)
29499				if !ok {
29500					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29501				}
29502				sv.Protocol = ptr.String(jtv)
29503			}
29504
29505		default:
29506			_, _ = key, value
29507
29508		}
29509	}
29510	*v = sv
29511	return nil
29512}
29513
29514func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(v **types.AwsS3BucketWebsiteConfigurationRoutingRule, value interface{}) error {
29515	if v == nil {
29516		return fmt.Errorf("unexpected nil of type %T", v)
29517	}
29518	if value == nil {
29519		return nil
29520	}
29521
29522	shape, ok := value.(map[string]interface{})
29523	if !ok {
29524		return fmt.Errorf("unexpected JSON type %v", value)
29525	}
29526
29527	var sv *types.AwsS3BucketWebsiteConfigurationRoutingRule
29528	if *v == nil {
29529		sv = &types.AwsS3BucketWebsiteConfigurationRoutingRule{}
29530	} else {
29531		sv = *v
29532	}
29533
29534	for key, value := range shape {
29535		switch key {
29536		case "Condition":
29537			if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(&sv.Condition, value); err != nil {
29538				return err
29539			}
29540
29541		case "Redirect":
29542			if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(&sv.Redirect, value); err != nil {
29543				return err
29544			}
29545
29546		default:
29547			_, _ = key, value
29548
29549		}
29550	}
29551	*v = sv
29552	return nil
29553}
29554
29555func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v **types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition, value interface{}) error {
29556	if v == nil {
29557		return fmt.Errorf("unexpected nil of type %T", v)
29558	}
29559	if value == nil {
29560		return nil
29561	}
29562
29563	shape, ok := value.(map[string]interface{})
29564	if !ok {
29565		return fmt.Errorf("unexpected JSON type %v", value)
29566	}
29567
29568	var sv *types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition
29569	if *v == nil {
29570		sv = &types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition{}
29571	} else {
29572		sv = *v
29573	}
29574
29575	for key, value := range shape {
29576		switch key {
29577		case "HttpErrorCodeReturnedEquals":
29578			if value != nil {
29579				jtv, ok := value.(string)
29580				if !ok {
29581					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29582				}
29583				sv.HttpErrorCodeReturnedEquals = ptr.String(jtv)
29584			}
29585
29586		case "KeyPrefixEquals":
29587			if value != nil {
29588				jtv, ok := value.(string)
29589				if !ok {
29590					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29591				}
29592				sv.KeyPrefixEquals = ptr.String(jtv)
29593			}
29594
29595		default:
29596			_, _ = key, value
29597
29598		}
29599	}
29600	*v = sv
29601	return nil
29602}
29603
29604func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v **types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect, value interface{}) error {
29605	if v == nil {
29606		return fmt.Errorf("unexpected nil of type %T", v)
29607	}
29608	if value == nil {
29609		return nil
29610	}
29611
29612	shape, ok := value.(map[string]interface{})
29613	if !ok {
29614		return fmt.Errorf("unexpected JSON type %v", value)
29615	}
29616
29617	var sv *types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect
29618	if *v == nil {
29619		sv = &types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect{}
29620	} else {
29621		sv = *v
29622	}
29623
29624	for key, value := range shape {
29625		switch key {
29626		case "Hostname":
29627			if value != nil {
29628				jtv, ok := value.(string)
29629				if !ok {
29630					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29631				}
29632				sv.Hostname = ptr.String(jtv)
29633			}
29634
29635		case "HttpRedirectCode":
29636			if value != nil {
29637				jtv, ok := value.(string)
29638				if !ok {
29639					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29640				}
29641				sv.HttpRedirectCode = ptr.String(jtv)
29642			}
29643
29644		case "Protocol":
29645			if value != nil {
29646				jtv, ok := value.(string)
29647				if !ok {
29648					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29649				}
29650				sv.Protocol = ptr.String(jtv)
29651			}
29652
29653		case "ReplaceKeyPrefixWith":
29654			if value != nil {
29655				jtv, ok := value.(string)
29656				if !ok {
29657					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29658				}
29659				sv.ReplaceKeyPrefixWith = ptr.String(jtv)
29660			}
29661
29662		case "ReplaceKeyWith":
29663			if value != nil {
29664				jtv, ok := value.(string)
29665				if !ok {
29666					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29667				}
29668				sv.ReplaceKeyWith = ptr.String(jtv)
29669			}
29670
29671		default:
29672			_, _ = key, value
29673
29674		}
29675	}
29676	*v = sv
29677	return nil
29678}
29679
29680func awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v *[]types.AwsS3BucketWebsiteConfigurationRoutingRule, value interface{}) error {
29681	if v == nil {
29682		return fmt.Errorf("unexpected nil of type %T", v)
29683	}
29684	if value == nil {
29685		return nil
29686	}
29687
29688	shape, ok := value.([]interface{})
29689	if !ok {
29690		return fmt.Errorf("unexpected JSON type %v", value)
29691	}
29692
29693	var cv []types.AwsS3BucketWebsiteConfigurationRoutingRule
29694	if *v == nil {
29695		cv = []types.AwsS3BucketWebsiteConfigurationRoutingRule{}
29696	} else {
29697		cv = *v
29698	}
29699
29700	for _, value := range shape {
29701		var col types.AwsS3BucketWebsiteConfigurationRoutingRule
29702		destAddr := &col
29703		if err := awsRestjson1_deserializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(&destAddr, value); err != nil {
29704			return err
29705		}
29706		col = *destAddr
29707		cv = append(cv, col)
29708
29709	}
29710	*v = cv
29711	return nil
29712}
29713
29714func awsRestjson1_deserializeDocumentAwsS3ObjectDetails(v **types.AwsS3ObjectDetails, value interface{}) error {
29715	if v == nil {
29716		return fmt.Errorf("unexpected nil of type %T", v)
29717	}
29718	if value == nil {
29719		return nil
29720	}
29721
29722	shape, ok := value.(map[string]interface{})
29723	if !ok {
29724		return fmt.Errorf("unexpected JSON type %v", value)
29725	}
29726
29727	var sv *types.AwsS3ObjectDetails
29728	if *v == nil {
29729		sv = &types.AwsS3ObjectDetails{}
29730	} else {
29731		sv = *v
29732	}
29733
29734	for key, value := range shape {
29735		switch key {
29736		case "ContentType":
29737			if value != nil {
29738				jtv, ok := value.(string)
29739				if !ok {
29740					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29741				}
29742				sv.ContentType = ptr.String(jtv)
29743			}
29744
29745		case "ETag":
29746			if value != nil {
29747				jtv, ok := value.(string)
29748				if !ok {
29749					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29750				}
29751				sv.ETag = ptr.String(jtv)
29752			}
29753
29754		case "LastModified":
29755			if value != nil {
29756				jtv, ok := value.(string)
29757				if !ok {
29758					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29759				}
29760				sv.LastModified = ptr.String(jtv)
29761			}
29762
29763		case "ServerSideEncryption":
29764			if value != nil {
29765				jtv, ok := value.(string)
29766				if !ok {
29767					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29768				}
29769				sv.ServerSideEncryption = ptr.String(jtv)
29770			}
29771
29772		case "SSEKMSKeyId":
29773			if value != nil {
29774				jtv, ok := value.(string)
29775				if !ok {
29776					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29777				}
29778				sv.SSEKMSKeyId = ptr.String(jtv)
29779			}
29780
29781		case "VersionId":
29782			if value != nil {
29783				jtv, ok := value.(string)
29784				if !ok {
29785					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29786				}
29787				sv.VersionId = ptr.String(jtv)
29788			}
29789
29790		default:
29791			_, _ = key, value
29792
29793		}
29794	}
29795	*v = sv
29796	return nil
29797}
29798
29799func awsRestjson1_deserializeDocumentAwsSecretsManagerSecretDetails(v **types.AwsSecretsManagerSecretDetails, value interface{}) error {
29800	if v == nil {
29801		return fmt.Errorf("unexpected nil of type %T", v)
29802	}
29803	if value == nil {
29804		return nil
29805	}
29806
29807	shape, ok := value.(map[string]interface{})
29808	if !ok {
29809		return fmt.Errorf("unexpected JSON type %v", value)
29810	}
29811
29812	var sv *types.AwsSecretsManagerSecretDetails
29813	if *v == nil {
29814		sv = &types.AwsSecretsManagerSecretDetails{}
29815	} else {
29816		sv = *v
29817	}
29818
29819	for key, value := range shape {
29820		switch key {
29821		case "Deleted":
29822			if value != nil {
29823				jtv, ok := value.(bool)
29824				if !ok {
29825					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29826				}
29827				sv.Deleted = jtv
29828			}
29829
29830		case "Description":
29831			if value != nil {
29832				jtv, ok := value.(string)
29833				if !ok {
29834					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29835				}
29836				sv.Description = ptr.String(jtv)
29837			}
29838
29839		case "KmsKeyId":
29840			if value != nil {
29841				jtv, ok := value.(string)
29842				if !ok {
29843					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29844				}
29845				sv.KmsKeyId = ptr.String(jtv)
29846			}
29847
29848		case "Name":
29849			if value != nil {
29850				jtv, ok := value.(string)
29851				if !ok {
29852					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29853				}
29854				sv.Name = ptr.String(jtv)
29855			}
29856
29857		case "RotationEnabled":
29858			if value != nil {
29859				jtv, ok := value.(bool)
29860				if !ok {
29861					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29862				}
29863				sv.RotationEnabled = jtv
29864			}
29865
29866		case "RotationLambdaArn":
29867			if value != nil {
29868				jtv, ok := value.(string)
29869				if !ok {
29870					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29871				}
29872				sv.RotationLambdaArn = ptr.String(jtv)
29873			}
29874
29875		case "RotationOccurredWithinFrequency":
29876			if value != nil {
29877				jtv, ok := value.(bool)
29878				if !ok {
29879					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29880				}
29881				sv.RotationOccurredWithinFrequency = jtv
29882			}
29883
29884		case "RotationRules":
29885			if err := awsRestjson1_deserializeDocumentAwsSecretsManagerSecretRotationRules(&sv.RotationRules, value); err != nil {
29886				return err
29887			}
29888
29889		default:
29890			_, _ = key, value
29891
29892		}
29893	}
29894	*v = sv
29895	return nil
29896}
29897
29898func awsRestjson1_deserializeDocumentAwsSecretsManagerSecretRotationRules(v **types.AwsSecretsManagerSecretRotationRules, value interface{}) error {
29899	if v == nil {
29900		return fmt.Errorf("unexpected nil of type %T", v)
29901	}
29902	if value == nil {
29903		return nil
29904	}
29905
29906	shape, ok := value.(map[string]interface{})
29907	if !ok {
29908		return fmt.Errorf("unexpected JSON type %v", value)
29909	}
29910
29911	var sv *types.AwsSecretsManagerSecretRotationRules
29912	if *v == nil {
29913		sv = &types.AwsSecretsManagerSecretRotationRules{}
29914	} else {
29915		sv = *v
29916	}
29917
29918	for key, value := range shape {
29919		switch key {
29920		case "AutomaticallyAfterDays":
29921			if value != nil {
29922				jtv, ok := value.(json.Number)
29923				if !ok {
29924					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
29925				}
29926				i64, err := jtv.Int64()
29927				if err != nil {
29928					return err
29929				}
29930				sv.AutomaticallyAfterDays = int32(i64)
29931			}
29932
29933		default:
29934			_, _ = key, value
29935
29936		}
29937	}
29938	*v = sv
29939	return nil
29940}
29941
29942func awsRestjson1_deserializeDocumentAwsSecurityFinding(v **types.AwsSecurityFinding, value interface{}) error {
29943	if v == nil {
29944		return fmt.Errorf("unexpected nil of type %T", v)
29945	}
29946	if value == nil {
29947		return nil
29948	}
29949
29950	shape, ok := value.(map[string]interface{})
29951	if !ok {
29952		return fmt.Errorf("unexpected JSON type %v", value)
29953	}
29954
29955	var sv *types.AwsSecurityFinding
29956	if *v == nil {
29957		sv = &types.AwsSecurityFinding{}
29958	} else {
29959		sv = *v
29960	}
29961
29962	for key, value := range shape {
29963		switch key {
29964		case "Action":
29965			if err := awsRestjson1_deserializeDocumentAction(&sv.Action, value); err != nil {
29966				return err
29967			}
29968
29969		case "AwsAccountId":
29970			if value != nil {
29971				jtv, ok := value.(string)
29972				if !ok {
29973					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29974				}
29975				sv.AwsAccountId = ptr.String(jtv)
29976			}
29977
29978		case "CompanyName":
29979			if value != nil {
29980				jtv, ok := value.(string)
29981				if !ok {
29982					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
29983				}
29984				sv.CompanyName = ptr.String(jtv)
29985			}
29986
29987		case "Compliance":
29988			if err := awsRestjson1_deserializeDocumentCompliance(&sv.Compliance, value); err != nil {
29989				return err
29990			}
29991
29992		case "Confidence":
29993			if value != nil {
29994				jtv, ok := value.(json.Number)
29995				if !ok {
29996					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
29997				}
29998				i64, err := jtv.Int64()
29999				if err != nil {
30000					return err
30001				}
30002				sv.Confidence = int32(i64)
30003			}
30004
30005		case "CreatedAt":
30006			if value != nil {
30007				jtv, ok := value.(string)
30008				if !ok {
30009					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30010				}
30011				sv.CreatedAt = ptr.String(jtv)
30012			}
30013
30014		case "Criticality":
30015			if value != nil {
30016				jtv, ok := value.(json.Number)
30017				if !ok {
30018					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
30019				}
30020				i64, err := jtv.Int64()
30021				if err != nil {
30022					return err
30023				}
30024				sv.Criticality = int32(i64)
30025			}
30026
30027		case "Description":
30028			if value != nil {
30029				jtv, ok := value.(string)
30030				if !ok {
30031					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30032				}
30033				sv.Description = ptr.String(jtv)
30034			}
30035
30036		case "FindingProviderFields":
30037			if err := awsRestjson1_deserializeDocumentFindingProviderFields(&sv.FindingProviderFields, value); err != nil {
30038				return err
30039			}
30040
30041		case "FirstObservedAt":
30042			if value != nil {
30043				jtv, ok := value.(string)
30044				if !ok {
30045					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30046				}
30047				sv.FirstObservedAt = ptr.String(jtv)
30048			}
30049
30050		case "GeneratorId":
30051			if value != nil {
30052				jtv, ok := value.(string)
30053				if !ok {
30054					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30055				}
30056				sv.GeneratorId = ptr.String(jtv)
30057			}
30058
30059		case "Id":
30060			if value != nil {
30061				jtv, ok := value.(string)
30062				if !ok {
30063					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30064				}
30065				sv.Id = ptr.String(jtv)
30066			}
30067
30068		case "LastObservedAt":
30069			if value != nil {
30070				jtv, ok := value.(string)
30071				if !ok {
30072					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30073				}
30074				sv.LastObservedAt = ptr.String(jtv)
30075			}
30076
30077		case "Malware":
30078			if err := awsRestjson1_deserializeDocumentMalwareList(&sv.Malware, value); err != nil {
30079				return err
30080			}
30081
30082		case "Network":
30083			if err := awsRestjson1_deserializeDocumentNetwork(&sv.Network, value); err != nil {
30084				return err
30085			}
30086
30087		case "NetworkPath":
30088			if err := awsRestjson1_deserializeDocumentNetworkPathList(&sv.NetworkPath, value); err != nil {
30089				return err
30090			}
30091
30092		case "Note":
30093			if err := awsRestjson1_deserializeDocumentNote(&sv.Note, value); err != nil {
30094				return err
30095			}
30096
30097		case "PatchSummary":
30098			if err := awsRestjson1_deserializeDocumentPatchSummary(&sv.PatchSummary, value); err != nil {
30099				return err
30100			}
30101
30102		case "Process":
30103			if err := awsRestjson1_deserializeDocumentProcessDetails(&sv.Process, value); err != nil {
30104				return err
30105			}
30106
30107		case "ProductArn":
30108			if value != nil {
30109				jtv, ok := value.(string)
30110				if !ok {
30111					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30112				}
30113				sv.ProductArn = ptr.String(jtv)
30114			}
30115
30116		case "ProductFields":
30117			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.ProductFields, value); err != nil {
30118				return err
30119			}
30120
30121		case "ProductName":
30122			if value != nil {
30123				jtv, ok := value.(string)
30124				if !ok {
30125					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30126				}
30127				sv.ProductName = ptr.String(jtv)
30128			}
30129
30130		case "RecordState":
30131			if value != nil {
30132				jtv, ok := value.(string)
30133				if !ok {
30134					return fmt.Errorf("expected RecordState to be of type string, got %T instead", value)
30135				}
30136				sv.RecordState = types.RecordState(jtv)
30137			}
30138
30139		case "Region":
30140			if value != nil {
30141				jtv, ok := value.(string)
30142				if !ok {
30143					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30144				}
30145				sv.Region = ptr.String(jtv)
30146			}
30147
30148		case "RelatedFindings":
30149			if err := awsRestjson1_deserializeDocumentRelatedFindingList(&sv.RelatedFindings, value); err != nil {
30150				return err
30151			}
30152
30153		case "Remediation":
30154			if err := awsRestjson1_deserializeDocumentRemediation(&sv.Remediation, value); err != nil {
30155				return err
30156			}
30157
30158		case "Resources":
30159			if err := awsRestjson1_deserializeDocumentResourceList(&sv.Resources, value); err != nil {
30160				return err
30161			}
30162
30163		case "SchemaVersion":
30164			if value != nil {
30165				jtv, ok := value.(string)
30166				if !ok {
30167					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30168				}
30169				sv.SchemaVersion = ptr.String(jtv)
30170			}
30171
30172		case "Severity":
30173			if err := awsRestjson1_deserializeDocumentSeverity(&sv.Severity, value); err != nil {
30174				return err
30175			}
30176
30177		case "SourceUrl":
30178			if value != nil {
30179				jtv, ok := value.(string)
30180				if !ok {
30181					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30182				}
30183				sv.SourceUrl = ptr.String(jtv)
30184			}
30185
30186		case "ThreatIntelIndicators":
30187			if err := awsRestjson1_deserializeDocumentThreatIntelIndicatorList(&sv.ThreatIntelIndicators, value); err != nil {
30188				return err
30189			}
30190
30191		case "Title":
30192			if value != nil {
30193				jtv, ok := value.(string)
30194				if !ok {
30195					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30196				}
30197				sv.Title = ptr.String(jtv)
30198			}
30199
30200		case "Types":
30201			if err := awsRestjson1_deserializeDocumentTypeList(&sv.Types, value); err != nil {
30202				return err
30203			}
30204
30205		case "UpdatedAt":
30206			if value != nil {
30207				jtv, ok := value.(string)
30208				if !ok {
30209					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30210				}
30211				sv.UpdatedAt = ptr.String(jtv)
30212			}
30213
30214		case "UserDefinedFields":
30215			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.UserDefinedFields, value); err != nil {
30216				return err
30217			}
30218
30219		case "VerificationState":
30220			if value != nil {
30221				jtv, ok := value.(string)
30222				if !ok {
30223					return fmt.Errorf("expected VerificationState to be of type string, got %T instead", value)
30224				}
30225				sv.VerificationState = types.VerificationState(jtv)
30226			}
30227
30228		case "Vulnerabilities":
30229			if err := awsRestjson1_deserializeDocumentVulnerabilityList(&sv.Vulnerabilities, value); err != nil {
30230				return err
30231			}
30232
30233		case "Workflow":
30234			if err := awsRestjson1_deserializeDocumentWorkflow(&sv.Workflow, value); err != nil {
30235				return err
30236			}
30237
30238		case "WorkflowState":
30239			if value != nil {
30240				jtv, ok := value.(string)
30241				if !ok {
30242					return fmt.Errorf("expected WorkflowState to be of type string, got %T instead", value)
30243				}
30244				sv.WorkflowState = types.WorkflowState(jtv)
30245			}
30246
30247		default:
30248			_, _ = key, value
30249
30250		}
30251	}
30252	*v = sv
30253	return nil
30254}
30255
30256func awsRestjson1_deserializeDocumentAwsSecurityFindingFilters(v **types.AwsSecurityFindingFilters, value interface{}) error {
30257	if v == nil {
30258		return fmt.Errorf("unexpected nil of type %T", v)
30259	}
30260	if value == nil {
30261		return nil
30262	}
30263
30264	shape, ok := value.(map[string]interface{})
30265	if !ok {
30266		return fmt.Errorf("unexpected JSON type %v", value)
30267	}
30268
30269	var sv *types.AwsSecurityFindingFilters
30270	if *v == nil {
30271		sv = &types.AwsSecurityFindingFilters{}
30272	} else {
30273		sv = *v
30274	}
30275
30276	for key, value := range shape {
30277		switch key {
30278		case "AwsAccountId":
30279			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.AwsAccountId, value); err != nil {
30280				return err
30281			}
30282
30283		case "CompanyName":
30284			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.CompanyName, value); err != nil {
30285				return err
30286			}
30287
30288		case "ComplianceStatus":
30289			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ComplianceStatus, value); err != nil {
30290				return err
30291			}
30292
30293		case "Confidence":
30294			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.Confidence, value); err != nil {
30295				return err
30296			}
30297
30298		case "CreatedAt":
30299			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.CreatedAt, value); err != nil {
30300				return err
30301			}
30302
30303		case "Criticality":
30304			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.Criticality, value); err != nil {
30305				return err
30306			}
30307
30308		case "Description":
30309			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.Description, value); err != nil {
30310				return err
30311			}
30312
30313		case "FindingProviderFieldsConfidence":
30314			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.FindingProviderFieldsConfidence, value); err != nil {
30315				return err
30316			}
30317
30318		case "FindingProviderFieldsCriticality":
30319			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.FindingProviderFieldsCriticality, value); err != nil {
30320				return err
30321			}
30322
30323		case "FindingProviderFieldsRelatedFindingsId":
30324			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.FindingProviderFieldsRelatedFindingsId, value); err != nil {
30325				return err
30326			}
30327
30328		case "FindingProviderFieldsRelatedFindingsProductArn":
30329			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.FindingProviderFieldsRelatedFindingsProductArn, value); err != nil {
30330				return err
30331			}
30332
30333		case "FindingProviderFieldsSeverityLabel":
30334			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.FindingProviderFieldsSeverityLabel, value); err != nil {
30335				return err
30336			}
30337
30338		case "FindingProviderFieldsSeverityOriginal":
30339			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.FindingProviderFieldsSeverityOriginal, value); err != nil {
30340				return err
30341			}
30342
30343		case "FindingProviderFieldsTypes":
30344			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.FindingProviderFieldsTypes, value); err != nil {
30345				return err
30346			}
30347
30348		case "FirstObservedAt":
30349			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.FirstObservedAt, value); err != nil {
30350				return err
30351			}
30352
30353		case "GeneratorId":
30354			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.GeneratorId, value); err != nil {
30355				return err
30356			}
30357
30358		case "Id":
30359			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.Id, value); err != nil {
30360				return err
30361			}
30362
30363		case "Keyword":
30364			if err := awsRestjson1_deserializeDocumentKeywordFilterList(&sv.Keyword, value); err != nil {
30365				return err
30366			}
30367
30368		case "LastObservedAt":
30369			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.LastObservedAt, value); err != nil {
30370				return err
30371			}
30372
30373		case "MalwareName":
30374			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.MalwareName, value); err != nil {
30375				return err
30376			}
30377
30378		case "MalwarePath":
30379			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.MalwarePath, value); err != nil {
30380				return err
30381			}
30382
30383		case "MalwareState":
30384			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.MalwareState, value); err != nil {
30385				return err
30386			}
30387
30388		case "MalwareType":
30389			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.MalwareType, value); err != nil {
30390				return err
30391			}
30392
30393		case "NetworkDestinationDomain":
30394			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NetworkDestinationDomain, value); err != nil {
30395				return err
30396			}
30397
30398		case "NetworkDestinationIpV4":
30399			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.NetworkDestinationIpV4, value); err != nil {
30400				return err
30401			}
30402
30403		case "NetworkDestinationIpV6":
30404			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.NetworkDestinationIpV6, value); err != nil {
30405				return err
30406			}
30407
30408		case "NetworkDestinationPort":
30409			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.NetworkDestinationPort, value); err != nil {
30410				return err
30411			}
30412
30413		case "NetworkDirection":
30414			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NetworkDirection, value); err != nil {
30415				return err
30416			}
30417
30418		case "NetworkProtocol":
30419			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NetworkProtocol, value); err != nil {
30420				return err
30421			}
30422
30423		case "NetworkSourceDomain":
30424			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NetworkSourceDomain, value); err != nil {
30425				return err
30426			}
30427
30428		case "NetworkSourceIpV4":
30429			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.NetworkSourceIpV4, value); err != nil {
30430				return err
30431			}
30432
30433		case "NetworkSourceIpV6":
30434			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.NetworkSourceIpV6, value); err != nil {
30435				return err
30436			}
30437
30438		case "NetworkSourceMac":
30439			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NetworkSourceMac, value); err != nil {
30440				return err
30441			}
30442
30443		case "NetworkSourcePort":
30444			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.NetworkSourcePort, value); err != nil {
30445				return err
30446			}
30447
30448		case "NoteText":
30449			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NoteText, value); err != nil {
30450				return err
30451			}
30452
30453		case "NoteUpdatedAt":
30454			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.NoteUpdatedAt, value); err != nil {
30455				return err
30456			}
30457
30458		case "NoteUpdatedBy":
30459			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.NoteUpdatedBy, value); err != nil {
30460				return err
30461			}
30462
30463		case "ProcessLaunchedAt":
30464			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ProcessLaunchedAt, value); err != nil {
30465				return err
30466			}
30467
30468		case "ProcessName":
30469			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ProcessName, value); err != nil {
30470				return err
30471			}
30472
30473		case "ProcessParentPid":
30474			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.ProcessParentPid, value); err != nil {
30475				return err
30476			}
30477
30478		case "ProcessPath":
30479			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ProcessPath, value); err != nil {
30480				return err
30481			}
30482
30483		case "ProcessPid":
30484			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.ProcessPid, value); err != nil {
30485				return err
30486			}
30487
30488		case "ProcessTerminatedAt":
30489			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ProcessTerminatedAt, value); err != nil {
30490				return err
30491			}
30492
30493		case "ProductArn":
30494			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ProductArn, value); err != nil {
30495				return err
30496			}
30497
30498		case "ProductFields":
30499			if err := awsRestjson1_deserializeDocumentMapFilterList(&sv.ProductFields, value); err != nil {
30500				return err
30501			}
30502
30503		case "ProductName":
30504			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ProductName, value); err != nil {
30505				return err
30506			}
30507
30508		case "RecommendationText":
30509			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.RecommendationText, value); err != nil {
30510				return err
30511			}
30512
30513		case "RecordState":
30514			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.RecordState, value); err != nil {
30515				return err
30516			}
30517
30518		case "Region":
30519			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.Region, value); err != nil {
30520				return err
30521			}
30522
30523		case "RelatedFindingsId":
30524			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.RelatedFindingsId, value); err != nil {
30525				return err
30526			}
30527
30528		case "RelatedFindingsProductArn":
30529			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.RelatedFindingsProductArn, value); err != nil {
30530				return err
30531			}
30532
30533		case "ResourceAwsEc2InstanceIamInstanceProfileArn":
30534			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceIamInstanceProfileArn, value); err != nil {
30535				return err
30536			}
30537
30538		case "ResourceAwsEc2InstanceImageId":
30539			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceImageId, value); err != nil {
30540				return err
30541			}
30542
30543		case "ResourceAwsEc2InstanceIpV4Addresses":
30544			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.ResourceAwsEc2InstanceIpV4Addresses, value); err != nil {
30545				return err
30546			}
30547
30548		case "ResourceAwsEc2InstanceIpV6Addresses":
30549			if err := awsRestjson1_deserializeDocumentIpFilterList(&sv.ResourceAwsEc2InstanceIpV6Addresses, value); err != nil {
30550				return err
30551			}
30552
30553		case "ResourceAwsEc2InstanceKeyName":
30554			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceKeyName, value); err != nil {
30555				return err
30556			}
30557
30558		case "ResourceAwsEc2InstanceLaunchedAt":
30559			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ResourceAwsEc2InstanceLaunchedAt, value); err != nil {
30560				return err
30561			}
30562
30563		case "ResourceAwsEc2InstanceSubnetId":
30564			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceSubnetId, value); err != nil {
30565				return err
30566			}
30567
30568		case "ResourceAwsEc2InstanceType":
30569			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceType, value); err != nil {
30570				return err
30571			}
30572
30573		case "ResourceAwsEc2InstanceVpcId":
30574			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsEc2InstanceVpcId, value); err != nil {
30575				return err
30576			}
30577
30578		case "ResourceAwsIamAccessKeyCreatedAt":
30579			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ResourceAwsIamAccessKeyCreatedAt, value); err != nil {
30580				return err
30581			}
30582
30583		case "ResourceAwsIamAccessKeyPrincipalName":
30584			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsIamAccessKeyPrincipalName, value); err != nil {
30585				return err
30586			}
30587
30588		case "ResourceAwsIamAccessKeyStatus":
30589			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsIamAccessKeyStatus, value); err != nil {
30590				return err
30591			}
30592
30593		case "ResourceAwsIamAccessKeyUserName":
30594			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsIamAccessKeyUserName, value); err != nil {
30595				return err
30596			}
30597
30598		case "ResourceAwsIamUserUserName":
30599			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsIamUserUserName, value); err != nil {
30600				return err
30601			}
30602
30603		case "ResourceAwsS3BucketOwnerId":
30604			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsS3BucketOwnerId, value); err != nil {
30605				return err
30606			}
30607
30608		case "ResourceAwsS3BucketOwnerName":
30609			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceAwsS3BucketOwnerName, value); err != nil {
30610				return err
30611			}
30612
30613		case "ResourceContainerImageId":
30614			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceContainerImageId, value); err != nil {
30615				return err
30616			}
30617
30618		case "ResourceContainerImageName":
30619			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceContainerImageName, value); err != nil {
30620				return err
30621			}
30622
30623		case "ResourceContainerLaunchedAt":
30624			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ResourceContainerLaunchedAt, value); err != nil {
30625				return err
30626			}
30627
30628		case "ResourceContainerName":
30629			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceContainerName, value); err != nil {
30630				return err
30631			}
30632
30633		case "ResourceDetailsOther":
30634			if err := awsRestjson1_deserializeDocumentMapFilterList(&sv.ResourceDetailsOther, value); err != nil {
30635				return err
30636			}
30637
30638		case "ResourceId":
30639			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceId, value); err != nil {
30640				return err
30641			}
30642
30643		case "ResourcePartition":
30644			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourcePartition, value); err != nil {
30645				return err
30646			}
30647
30648		case "ResourceRegion":
30649			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceRegion, value); err != nil {
30650				return err
30651			}
30652
30653		case "ResourceTags":
30654			if err := awsRestjson1_deserializeDocumentMapFilterList(&sv.ResourceTags, value); err != nil {
30655				return err
30656			}
30657
30658		case "ResourceType":
30659			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ResourceType, value); err != nil {
30660				return err
30661			}
30662
30663		case "SeverityLabel":
30664			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.SeverityLabel, value); err != nil {
30665				return err
30666			}
30667
30668		case "SeverityNormalized":
30669			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.SeverityNormalized, value); err != nil {
30670				return err
30671			}
30672
30673		case "SeverityProduct":
30674			if err := awsRestjson1_deserializeDocumentNumberFilterList(&sv.SeverityProduct, value); err != nil {
30675				return err
30676			}
30677
30678		case "SourceUrl":
30679			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.SourceUrl, value); err != nil {
30680				return err
30681			}
30682
30683		case "ThreatIntelIndicatorCategory":
30684			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ThreatIntelIndicatorCategory, value); err != nil {
30685				return err
30686			}
30687
30688		case "ThreatIntelIndicatorLastObservedAt":
30689			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.ThreatIntelIndicatorLastObservedAt, value); err != nil {
30690				return err
30691			}
30692
30693		case "ThreatIntelIndicatorSource":
30694			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ThreatIntelIndicatorSource, value); err != nil {
30695				return err
30696			}
30697
30698		case "ThreatIntelIndicatorSourceUrl":
30699			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ThreatIntelIndicatorSourceUrl, value); err != nil {
30700				return err
30701			}
30702
30703		case "ThreatIntelIndicatorType":
30704			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ThreatIntelIndicatorType, value); err != nil {
30705				return err
30706			}
30707
30708		case "ThreatIntelIndicatorValue":
30709			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.ThreatIntelIndicatorValue, value); err != nil {
30710				return err
30711			}
30712
30713		case "Title":
30714			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.Title, value); err != nil {
30715				return err
30716			}
30717
30718		case "Type":
30719			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.Type, value); err != nil {
30720				return err
30721			}
30722
30723		case "UpdatedAt":
30724			if err := awsRestjson1_deserializeDocumentDateFilterList(&sv.UpdatedAt, value); err != nil {
30725				return err
30726			}
30727
30728		case "UserDefinedFields":
30729			if err := awsRestjson1_deserializeDocumentMapFilterList(&sv.UserDefinedFields, value); err != nil {
30730				return err
30731			}
30732
30733		case "VerificationState":
30734			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.VerificationState, value); err != nil {
30735				return err
30736			}
30737
30738		case "WorkflowState":
30739			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.WorkflowState, value); err != nil {
30740				return err
30741			}
30742
30743		case "WorkflowStatus":
30744			if err := awsRestjson1_deserializeDocumentStringFilterList(&sv.WorkflowStatus, value); err != nil {
30745				return err
30746			}
30747
30748		default:
30749			_, _ = key, value
30750
30751		}
30752	}
30753	*v = sv
30754	return nil
30755}
30756
30757func awsRestjson1_deserializeDocumentAwsSecurityFindingIdentifier(v **types.AwsSecurityFindingIdentifier, value interface{}) error {
30758	if v == nil {
30759		return fmt.Errorf("unexpected nil of type %T", v)
30760	}
30761	if value == nil {
30762		return nil
30763	}
30764
30765	shape, ok := value.(map[string]interface{})
30766	if !ok {
30767		return fmt.Errorf("unexpected JSON type %v", value)
30768	}
30769
30770	var sv *types.AwsSecurityFindingIdentifier
30771	if *v == nil {
30772		sv = &types.AwsSecurityFindingIdentifier{}
30773	} else {
30774		sv = *v
30775	}
30776
30777	for key, value := range shape {
30778		switch key {
30779		case "Id":
30780			if value != nil {
30781				jtv, ok := value.(string)
30782				if !ok {
30783					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30784				}
30785				sv.Id = ptr.String(jtv)
30786			}
30787
30788		case "ProductArn":
30789			if value != nil {
30790				jtv, ok := value.(string)
30791				if !ok {
30792					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30793				}
30794				sv.ProductArn = ptr.String(jtv)
30795			}
30796
30797		default:
30798			_, _ = key, value
30799
30800		}
30801	}
30802	*v = sv
30803	return nil
30804}
30805
30806func awsRestjson1_deserializeDocumentAwsSecurityFindingIdentifierList(v *[]types.AwsSecurityFindingIdentifier, value interface{}) error {
30807	if v == nil {
30808		return fmt.Errorf("unexpected nil of type %T", v)
30809	}
30810	if value == nil {
30811		return nil
30812	}
30813
30814	shape, ok := value.([]interface{})
30815	if !ok {
30816		return fmt.Errorf("unexpected JSON type %v", value)
30817	}
30818
30819	var cv []types.AwsSecurityFindingIdentifier
30820	if *v == nil {
30821		cv = []types.AwsSecurityFindingIdentifier{}
30822	} else {
30823		cv = *v
30824	}
30825
30826	for _, value := range shape {
30827		var col types.AwsSecurityFindingIdentifier
30828		destAddr := &col
30829		if err := awsRestjson1_deserializeDocumentAwsSecurityFindingIdentifier(&destAddr, value); err != nil {
30830			return err
30831		}
30832		col = *destAddr
30833		cv = append(cv, col)
30834
30835	}
30836	*v = cv
30837	return nil
30838}
30839
30840func awsRestjson1_deserializeDocumentAwsSecurityFindingList(v *[]types.AwsSecurityFinding, value interface{}) error {
30841	if v == nil {
30842		return fmt.Errorf("unexpected nil of type %T", v)
30843	}
30844	if value == nil {
30845		return nil
30846	}
30847
30848	shape, ok := value.([]interface{})
30849	if !ok {
30850		return fmt.Errorf("unexpected JSON type %v", value)
30851	}
30852
30853	var cv []types.AwsSecurityFinding
30854	if *v == nil {
30855		cv = []types.AwsSecurityFinding{}
30856	} else {
30857		cv = *v
30858	}
30859
30860	for _, value := range shape {
30861		var col types.AwsSecurityFinding
30862		destAddr := &col
30863		if err := awsRestjson1_deserializeDocumentAwsSecurityFinding(&destAddr, value); err != nil {
30864			return err
30865		}
30866		col = *destAddr
30867		cv = append(cv, col)
30868
30869	}
30870	*v = cv
30871	return nil
30872}
30873
30874func awsRestjson1_deserializeDocumentAwsSnsTopicDetails(v **types.AwsSnsTopicDetails, value interface{}) error {
30875	if v == nil {
30876		return fmt.Errorf("unexpected nil of type %T", v)
30877	}
30878	if value == nil {
30879		return nil
30880	}
30881
30882	shape, ok := value.(map[string]interface{})
30883	if !ok {
30884		return fmt.Errorf("unexpected JSON type %v", value)
30885	}
30886
30887	var sv *types.AwsSnsTopicDetails
30888	if *v == nil {
30889		sv = &types.AwsSnsTopicDetails{}
30890	} else {
30891		sv = *v
30892	}
30893
30894	for key, value := range shape {
30895		switch key {
30896		case "KmsMasterKeyId":
30897			if value != nil {
30898				jtv, ok := value.(string)
30899				if !ok {
30900					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30901				}
30902				sv.KmsMasterKeyId = ptr.String(jtv)
30903			}
30904
30905		case "Owner":
30906			if value != nil {
30907				jtv, ok := value.(string)
30908				if !ok {
30909					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30910				}
30911				sv.Owner = ptr.String(jtv)
30912			}
30913
30914		case "Subscription":
30915			if err := awsRestjson1_deserializeDocumentAwsSnsTopicSubscriptionList(&sv.Subscription, value); err != nil {
30916				return err
30917			}
30918
30919		case "TopicName":
30920			if value != nil {
30921				jtv, ok := value.(string)
30922				if !ok {
30923					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30924				}
30925				sv.TopicName = ptr.String(jtv)
30926			}
30927
30928		default:
30929			_, _ = key, value
30930
30931		}
30932	}
30933	*v = sv
30934	return nil
30935}
30936
30937func awsRestjson1_deserializeDocumentAwsSnsTopicSubscription(v **types.AwsSnsTopicSubscription, value interface{}) error {
30938	if v == nil {
30939		return fmt.Errorf("unexpected nil of type %T", v)
30940	}
30941	if value == nil {
30942		return nil
30943	}
30944
30945	shape, ok := value.(map[string]interface{})
30946	if !ok {
30947		return fmt.Errorf("unexpected JSON type %v", value)
30948	}
30949
30950	var sv *types.AwsSnsTopicSubscription
30951	if *v == nil {
30952		sv = &types.AwsSnsTopicSubscription{}
30953	} else {
30954		sv = *v
30955	}
30956
30957	for key, value := range shape {
30958		switch key {
30959		case "Endpoint":
30960			if value != nil {
30961				jtv, ok := value.(string)
30962				if !ok {
30963					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30964				}
30965				sv.Endpoint = ptr.String(jtv)
30966			}
30967
30968		case "Protocol":
30969			if value != nil {
30970				jtv, ok := value.(string)
30971				if !ok {
30972					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
30973				}
30974				sv.Protocol = ptr.String(jtv)
30975			}
30976
30977		default:
30978			_, _ = key, value
30979
30980		}
30981	}
30982	*v = sv
30983	return nil
30984}
30985
30986func awsRestjson1_deserializeDocumentAwsSnsTopicSubscriptionList(v *[]types.AwsSnsTopicSubscription, value interface{}) error {
30987	if v == nil {
30988		return fmt.Errorf("unexpected nil of type %T", v)
30989	}
30990	if value == nil {
30991		return nil
30992	}
30993
30994	shape, ok := value.([]interface{})
30995	if !ok {
30996		return fmt.Errorf("unexpected JSON type %v", value)
30997	}
30998
30999	var cv []types.AwsSnsTopicSubscription
31000	if *v == nil {
31001		cv = []types.AwsSnsTopicSubscription{}
31002	} else {
31003		cv = *v
31004	}
31005
31006	for _, value := range shape {
31007		var col types.AwsSnsTopicSubscription
31008		destAddr := &col
31009		if err := awsRestjson1_deserializeDocumentAwsSnsTopicSubscription(&destAddr, value); err != nil {
31010			return err
31011		}
31012		col = *destAddr
31013		cv = append(cv, col)
31014
31015	}
31016	*v = cv
31017	return nil
31018}
31019
31020func awsRestjson1_deserializeDocumentAwsSqsQueueDetails(v **types.AwsSqsQueueDetails, value interface{}) error {
31021	if v == nil {
31022		return fmt.Errorf("unexpected nil of type %T", v)
31023	}
31024	if value == nil {
31025		return nil
31026	}
31027
31028	shape, ok := value.(map[string]interface{})
31029	if !ok {
31030		return fmt.Errorf("unexpected JSON type %v", value)
31031	}
31032
31033	var sv *types.AwsSqsQueueDetails
31034	if *v == nil {
31035		sv = &types.AwsSqsQueueDetails{}
31036	} else {
31037		sv = *v
31038	}
31039
31040	for key, value := range shape {
31041		switch key {
31042		case "DeadLetterTargetArn":
31043			if value != nil {
31044				jtv, ok := value.(string)
31045				if !ok {
31046					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31047				}
31048				sv.DeadLetterTargetArn = ptr.String(jtv)
31049			}
31050
31051		case "KmsDataKeyReusePeriodSeconds":
31052			if value != nil {
31053				jtv, ok := value.(json.Number)
31054				if !ok {
31055					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31056				}
31057				i64, err := jtv.Int64()
31058				if err != nil {
31059					return err
31060				}
31061				sv.KmsDataKeyReusePeriodSeconds = int32(i64)
31062			}
31063
31064		case "KmsMasterKeyId":
31065			if value != nil {
31066				jtv, ok := value.(string)
31067				if !ok {
31068					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31069				}
31070				sv.KmsMasterKeyId = ptr.String(jtv)
31071			}
31072
31073		case "QueueName":
31074			if value != nil {
31075				jtv, ok := value.(string)
31076				if !ok {
31077					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31078				}
31079				sv.QueueName = ptr.String(jtv)
31080			}
31081
31082		default:
31083			_, _ = key, value
31084
31085		}
31086	}
31087	*v = sv
31088	return nil
31089}
31090
31091func awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(v **types.AwsSsmComplianceSummary, value interface{}) error {
31092	if v == nil {
31093		return fmt.Errorf("unexpected nil of type %T", v)
31094	}
31095	if value == nil {
31096		return nil
31097	}
31098
31099	shape, ok := value.(map[string]interface{})
31100	if !ok {
31101		return fmt.Errorf("unexpected JSON type %v", value)
31102	}
31103
31104	var sv *types.AwsSsmComplianceSummary
31105	if *v == nil {
31106		sv = &types.AwsSsmComplianceSummary{}
31107	} else {
31108		sv = *v
31109	}
31110
31111	for key, value := range shape {
31112		switch key {
31113		case "ComplianceType":
31114			if value != nil {
31115				jtv, ok := value.(string)
31116				if !ok {
31117					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31118				}
31119				sv.ComplianceType = ptr.String(jtv)
31120			}
31121
31122		case "CompliantCriticalCount":
31123			if value != nil {
31124				jtv, ok := value.(json.Number)
31125				if !ok {
31126					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31127				}
31128				i64, err := jtv.Int64()
31129				if err != nil {
31130					return err
31131				}
31132				sv.CompliantCriticalCount = int32(i64)
31133			}
31134
31135		case "CompliantHighCount":
31136			if value != nil {
31137				jtv, ok := value.(json.Number)
31138				if !ok {
31139					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31140				}
31141				i64, err := jtv.Int64()
31142				if err != nil {
31143					return err
31144				}
31145				sv.CompliantHighCount = int32(i64)
31146			}
31147
31148		case "CompliantInformationalCount":
31149			if value != nil {
31150				jtv, ok := value.(json.Number)
31151				if !ok {
31152					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31153				}
31154				i64, err := jtv.Int64()
31155				if err != nil {
31156					return err
31157				}
31158				sv.CompliantInformationalCount = int32(i64)
31159			}
31160
31161		case "CompliantLowCount":
31162			if value != nil {
31163				jtv, ok := value.(json.Number)
31164				if !ok {
31165					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31166				}
31167				i64, err := jtv.Int64()
31168				if err != nil {
31169					return err
31170				}
31171				sv.CompliantLowCount = int32(i64)
31172			}
31173
31174		case "CompliantMediumCount":
31175			if value != nil {
31176				jtv, ok := value.(json.Number)
31177				if !ok {
31178					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31179				}
31180				i64, err := jtv.Int64()
31181				if err != nil {
31182					return err
31183				}
31184				sv.CompliantMediumCount = int32(i64)
31185			}
31186
31187		case "CompliantUnspecifiedCount":
31188			if value != nil {
31189				jtv, ok := value.(json.Number)
31190				if !ok {
31191					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31192				}
31193				i64, err := jtv.Int64()
31194				if err != nil {
31195					return err
31196				}
31197				sv.CompliantUnspecifiedCount = int32(i64)
31198			}
31199
31200		case "ExecutionType":
31201			if value != nil {
31202				jtv, ok := value.(string)
31203				if !ok {
31204					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31205				}
31206				sv.ExecutionType = ptr.String(jtv)
31207			}
31208
31209		case "NonCompliantCriticalCount":
31210			if value != nil {
31211				jtv, ok := value.(json.Number)
31212				if !ok {
31213					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31214				}
31215				i64, err := jtv.Int64()
31216				if err != nil {
31217					return err
31218				}
31219				sv.NonCompliantCriticalCount = int32(i64)
31220			}
31221
31222		case "NonCompliantHighCount":
31223			if value != nil {
31224				jtv, ok := value.(json.Number)
31225				if !ok {
31226					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31227				}
31228				i64, err := jtv.Int64()
31229				if err != nil {
31230					return err
31231				}
31232				sv.NonCompliantHighCount = int32(i64)
31233			}
31234
31235		case "NonCompliantInformationalCount":
31236			if value != nil {
31237				jtv, ok := value.(json.Number)
31238				if !ok {
31239					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31240				}
31241				i64, err := jtv.Int64()
31242				if err != nil {
31243					return err
31244				}
31245				sv.NonCompliantInformationalCount = int32(i64)
31246			}
31247
31248		case "NonCompliantLowCount":
31249			if value != nil {
31250				jtv, ok := value.(json.Number)
31251				if !ok {
31252					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31253				}
31254				i64, err := jtv.Int64()
31255				if err != nil {
31256					return err
31257				}
31258				sv.NonCompliantLowCount = int32(i64)
31259			}
31260
31261		case "NonCompliantMediumCount":
31262			if value != nil {
31263				jtv, ok := value.(json.Number)
31264				if !ok {
31265					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31266				}
31267				i64, err := jtv.Int64()
31268				if err != nil {
31269					return err
31270				}
31271				sv.NonCompliantMediumCount = int32(i64)
31272			}
31273
31274		case "NonCompliantUnspecifiedCount":
31275			if value != nil {
31276				jtv, ok := value.(json.Number)
31277				if !ok {
31278					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31279				}
31280				i64, err := jtv.Int64()
31281				if err != nil {
31282					return err
31283				}
31284				sv.NonCompliantUnspecifiedCount = int32(i64)
31285			}
31286
31287		case "OverallSeverity":
31288			if value != nil {
31289				jtv, ok := value.(string)
31290				if !ok {
31291					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31292				}
31293				sv.OverallSeverity = ptr.String(jtv)
31294			}
31295
31296		case "PatchBaselineId":
31297			if value != nil {
31298				jtv, ok := value.(string)
31299				if !ok {
31300					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31301				}
31302				sv.PatchBaselineId = ptr.String(jtv)
31303			}
31304
31305		case "PatchGroup":
31306			if value != nil {
31307				jtv, ok := value.(string)
31308				if !ok {
31309					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31310				}
31311				sv.PatchGroup = ptr.String(jtv)
31312			}
31313
31314		case "Status":
31315			if value != nil {
31316				jtv, ok := value.(string)
31317				if !ok {
31318					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31319				}
31320				sv.Status = ptr.String(jtv)
31321			}
31322
31323		default:
31324			_, _ = key, value
31325
31326		}
31327	}
31328	*v = sv
31329	return nil
31330}
31331
31332func awsRestjson1_deserializeDocumentAwsSsmPatch(v **types.AwsSsmPatch, value interface{}) error {
31333	if v == nil {
31334		return fmt.Errorf("unexpected nil of type %T", v)
31335	}
31336	if value == nil {
31337		return nil
31338	}
31339
31340	shape, ok := value.(map[string]interface{})
31341	if !ok {
31342		return fmt.Errorf("unexpected JSON type %v", value)
31343	}
31344
31345	var sv *types.AwsSsmPatch
31346	if *v == nil {
31347		sv = &types.AwsSsmPatch{}
31348	} else {
31349		sv = *v
31350	}
31351
31352	for key, value := range shape {
31353		switch key {
31354		case "ComplianceSummary":
31355			if err := awsRestjson1_deserializeDocumentAwsSsmComplianceSummary(&sv.ComplianceSummary, value); err != nil {
31356				return err
31357			}
31358
31359		default:
31360			_, _ = key, value
31361
31362		}
31363	}
31364	*v = sv
31365	return nil
31366}
31367
31368func awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(v **types.AwsSsmPatchComplianceDetails, value interface{}) error {
31369	if v == nil {
31370		return fmt.Errorf("unexpected nil of type %T", v)
31371	}
31372	if value == nil {
31373		return nil
31374	}
31375
31376	shape, ok := value.(map[string]interface{})
31377	if !ok {
31378		return fmt.Errorf("unexpected JSON type %v", value)
31379	}
31380
31381	var sv *types.AwsSsmPatchComplianceDetails
31382	if *v == nil {
31383		sv = &types.AwsSsmPatchComplianceDetails{}
31384	} else {
31385		sv = *v
31386	}
31387
31388	for key, value := range shape {
31389		switch key {
31390		case "Patch":
31391			if err := awsRestjson1_deserializeDocumentAwsSsmPatch(&sv.Patch, value); err != nil {
31392				return err
31393			}
31394
31395		default:
31396			_, _ = key, value
31397
31398		}
31399	}
31400	*v = sv
31401	return nil
31402}
31403
31404func awsRestjson1_deserializeDocumentAwsWafWebAclDetails(v **types.AwsWafWebAclDetails, value interface{}) error {
31405	if v == nil {
31406		return fmt.Errorf("unexpected nil of type %T", v)
31407	}
31408	if value == nil {
31409		return nil
31410	}
31411
31412	shape, ok := value.(map[string]interface{})
31413	if !ok {
31414		return fmt.Errorf("unexpected JSON type %v", value)
31415	}
31416
31417	var sv *types.AwsWafWebAclDetails
31418	if *v == nil {
31419		sv = &types.AwsWafWebAclDetails{}
31420	} else {
31421		sv = *v
31422	}
31423
31424	for key, value := range shape {
31425		switch key {
31426		case "DefaultAction":
31427			if value != nil {
31428				jtv, ok := value.(string)
31429				if !ok {
31430					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31431				}
31432				sv.DefaultAction = ptr.String(jtv)
31433			}
31434
31435		case "Name":
31436			if value != nil {
31437				jtv, ok := value.(string)
31438				if !ok {
31439					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31440				}
31441				sv.Name = ptr.String(jtv)
31442			}
31443
31444		case "Rules":
31445			if err := awsRestjson1_deserializeDocumentAwsWafWebAclRuleList(&sv.Rules, value); err != nil {
31446				return err
31447			}
31448
31449		case "WebAclId":
31450			if value != nil {
31451				jtv, ok := value.(string)
31452				if !ok {
31453					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31454				}
31455				sv.WebAclId = ptr.String(jtv)
31456			}
31457
31458		default:
31459			_, _ = key, value
31460
31461		}
31462	}
31463	*v = sv
31464	return nil
31465}
31466
31467func awsRestjson1_deserializeDocumentAwsWafWebAclRule(v **types.AwsWafWebAclRule, value interface{}) error {
31468	if v == nil {
31469		return fmt.Errorf("unexpected nil of type %T", v)
31470	}
31471	if value == nil {
31472		return nil
31473	}
31474
31475	shape, ok := value.(map[string]interface{})
31476	if !ok {
31477		return fmt.Errorf("unexpected JSON type %v", value)
31478	}
31479
31480	var sv *types.AwsWafWebAclRule
31481	if *v == nil {
31482		sv = &types.AwsWafWebAclRule{}
31483	} else {
31484		sv = *v
31485	}
31486
31487	for key, value := range shape {
31488		switch key {
31489		case "Action":
31490			if err := awsRestjson1_deserializeDocumentWafAction(&sv.Action, value); err != nil {
31491				return err
31492			}
31493
31494		case "ExcludedRules":
31495			if err := awsRestjson1_deserializeDocumentWafExcludedRuleList(&sv.ExcludedRules, value); err != nil {
31496				return err
31497			}
31498
31499		case "OverrideAction":
31500			if err := awsRestjson1_deserializeDocumentWafOverrideAction(&sv.OverrideAction, value); err != nil {
31501				return err
31502			}
31503
31504		case "Priority":
31505			if value != nil {
31506				jtv, ok := value.(json.Number)
31507				if !ok {
31508					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
31509				}
31510				i64, err := jtv.Int64()
31511				if err != nil {
31512					return err
31513				}
31514				sv.Priority = int32(i64)
31515			}
31516
31517		case "RuleId":
31518			if value != nil {
31519				jtv, ok := value.(string)
31520				if !ok {
31521					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31522				}
31523				sv.RuleId = ptr.String(jtv)
31524			}
31525
31526		case "Type":
31527			if value != nil {
31528				jtv, ok := value.(string)
31529				if !ok {
31530					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31531				}
31532				sv.Type = ptr.String(jtv)
31533			}
31534
31535		default:
31536			_, _ = key, value
31537
31538		}
31539	}
31540	*v = sv
31541	return nil
31542}
31543
31544func awsRestjson1_deserializeDocumentAwsWafWebAclRuleList(v *[]types.AwsWafWebAclRule, value interface{}) error {
31545	if v == nil {
31546		return fmt.Errorf("unexpected nil of type %T", v)
31547	}
31548	if value == nil {
31549		return nil
31550	}
31551
31552	shape, ok := value.([]interface{})
31553	if !ok {
31554		return fmt.Errorf("unexpected JSON type %v", value)
31555	}
31556
31557	var cv []types.AwsWafWebAclRule
31558	if *v == nil {
31559		cv = []types.AwsWafWebAclRule{}
31560	} else {
31561		cv = *v
31562	}
31563
31564	for _, value := range shape {
31565		var col types.AwsWafWebAclRule
31566		destAddr := &col
31567		if err := awsRestjson1_deserializeDocumentAwsWafWebAclRule(&destAddr, value); err != nil {
31568			return err
31569		}
31570		col = *destAddr
31571		cv = append(cv, col)
31572
31573	}
31574	*v = cv
31575	return nil
31576}
31577
31578func awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFinding(v **types.BatchUpdateFindingsUnprocessedFinding, value interface{}) error {
31579	if v == nil {
31580		return fmt.Errorf("unexpected nil of type %T", v)
31581	}
31582	if value == nil {
31583		return nil
31584	}
31585
31586	shape, ok := value.(map[string]interface{})
31587	if !ok {
31588		return fmt.Errorf("unexpected JSON type %v", value)
31589	}
31590
31591	var sv *types.BatchUpdateFindingsUnprocessedFinding
31592	if *v == nil {
31593		sv = &types.BatchUpdateFindingsUnprocessedFinding{}
31594	} else {
31595		sv = *v
31596	}
31597
31598	for key, value := range shape {
31599		switch key {
31600		case "ErrorCode":
31601			if value != nil {
31602				jtv, ok := value.(string)
31603				if !ok {
31604					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31605				}
31606				sv.ErrorCode = ptr.String(jtv)
31607			}
31608
31609		case "ErrorMessage":
31610			if value != nil {
31611				jtv, ok := value.(string)
31612				if !ok {
31613					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31614				}
31615				sv.ErrorMessage = ptr.String(jtv)
31616			}
31617
31618		case "FindingIdentifier":
31619			if err := awsRestjson1_deserializeDocumentAwsSecurityFindingIdentifier(&sv.FindingIdentifier, value); err != nil {
31620				return err
31621			}
31622
31623		default:
31624			_, _ = key, value
31625
31626		}
31627	}
31628	*v = sv
31629	return nil
31630}
31631
31632func awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFindingsList(v *[]types.BatchUpdateFindingsUnprocessedFinding, 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.BatchUpdateFindingsUnprocessedFinding
31646	if *v == nil {
31647		cv = []types.BatchUpdateFindingsUnprocessedFinding{}
31648	} else {
31649		cv = *v
31650	}
31651
31652	for _, value := range shape {
31653		var col types.BatchUpdateFindingsUnprocessedFinding
31654		destAddr := &col
31655		if err := awsRestjson1_deserializeDocumentBatchUpdateFindingsUnprocessedFinding(&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_deserializeDocumentCategoryList(v *[]string, 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.([]interface{})
31675	if !ok {
31676		return fmt.Errorf("unexpected JSON type %v", value)
31677	}
31678
31679	var cv []string
31680	if *v == nil {
31681		cv = []string{}
31682	} else {
31683		cv = *v
31684	}
31685
31686	for _, value := range shape {
31687		var col string
31688		if value != nil {
31689			jtv, ok := value.(string)
31690			if !ok {
31691				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31692			}
31693			col = jtv
31694		}
31695		cv = append(cv, col)
31696
31697	}
31698	*v = cv
31699	return nil
31700}
31701
31702func awsRestjson1_deserializeDocumentCell(v **types.Cell, value interface{}) error {
31703	if v == nil {
31704		return fmt.Errorf("unexpected nil of type %T", v)
31705	}
31706	if value == nil {
31707		return nil
31708	}
31709
31710	shape, ok := value.(map[string]interface{})
31711	if !ok {
31712		return fmt.Errorf("unexpected JSON type %v", value)
31713	}
31714
31715	var sv *types.Cell
31716	if *v == nil {
31717		sv = &types.Cell{}
31718	} else {
31719		sv = *v
31720	}
31721
31722	for key, value := range shape {
31723		switch key {
31724		case "CellReference":
31725			if value != nil {
31726				jtv, ok := value.(string)
31727				if !ok {
31728					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31729				}
31730				sv.CellReference = ptr.String(jtv)
31731			}
31732
31733		case "Column":
31734			if value != nil {
31735				jtv, ok := value.(json.Number)
31736				if !ok {
31737					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
31738				}
31739				i64, err := jtv.Int64()
31740				if err != nil {
31741					return err
31742				}
31743				sv.Column = i64
31744			}
31745
31746		case "ColumnName":
31747			if value != nil {
31748				jtv, ok := value.(string)
31749				if !ok {
31750					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31751				}
31752				sv.ColumnName = ptr.String(jtv)
31753			}
31754
31755		case "Row":
31756			if value != nil {
31757				jtv, ok := value.(json.Number)
31758				if !ok {
31759					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
31760				}
31761				i64, err := jtv.Int64()
31762				if err != nil {
31763					return err
31764				}
31765				sv.Row = i64
31766			}
31767
31768		default:
31769			_, _ = key, value
31770
31771		}
31772	}
31773	*v = sv
31774	return nil
31775}
31776
31777func awsRestjson1_deserializeDocumentCells(v *[]types.Cell, value interface{}) error {
31778	if v == nil {
31779		return fmt.Errorf("unexpected nil of type %T", v)
31780	}
31781	if value == nil {
31782		return nil
31783	}
31784
31785	shape, ok := value.([]interface{})
31786	if !ok {
31787		return fmt.Errorf("unexpected JSON type %v", value)
31788	}
31789
31790	var cv []types.Cell
31791	if *v == nil {
31792		cv = []types.Cell{}
31793	} else {
31794		cv = *v
31795	}
31796
31797	for _, value := range shape {
31798		var col types.Cell
31799		destAddr := &col
31800		if err := awsRestjson1_deserializeDocumentCell(&destAddr, value); err != nil {
31801			return err
31802		}
31803		col = *destAddr
31804		cv = append(cv, col)
31805
31806	}
31807	*v = cv
31808	return nil
31809}
31810
31811func awsRestjson1_deserializeDocumentCidrBlockAssociation(v **types.CidrBlockAssociation, value interface{}) error {
31812	if v == nil {
31813		return fmt.Errorf("unexpected nil of type %T", v)
31814	}
31815	if value == nil {
31816		return nil
31817	}
31818
31819	shape, ok := value.(map[string]interface{})
31820	if !ok {
31821		return fmt.Errorf("unexpected JSON type %v", value)
31822	}
31823
31824	var sv *types.CidrBlockAssociation
31825	if *v == nil {
31826		sv = &types.CidrBlockAssociation{}
31827	} else {
31828		sv = *v
31829	}
31830
31831	for key, value := range shape {
31832		switch key {
31833		case "AssociationId":
31834			if value != nil {
31835				jtv, ok := value.(string)
31836				if !ok {
31837					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31838				}
31839				sv.AssociationId = ptr.String(jtv)
31840			}
31841
31842		case "CidrBlock":
31843			if value != nil {
31844				jtv, ok := value.(string)
31845				if !ok {
31846					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31847				}
31848				sv.CidrBlock = ptr.String(jtv)
31849			}
31850
31851		case "CidrBlockState":
31852			if value != nil {
31853				jtv, ok := value.(string)
31854				if !ok {
31855					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31856				}
31857				sv.CidrBlockState = ptr.String(jtv)
31858			}
31859
31860		default:
31861			_, _ = key, value
31862
31863		}
31864	}
31865	*v = sv
31866	return nil
31867}
31868
31869func awsRestjson1_deserializeDocumentCidrBlockAssociationList(v *[]types.CidrBlockAssociation, value interface{}) error {
31870	if v == nil {
31871		return fmt.Errorf("unexpected nil of type %T", v)
31872	}
31873	if value == nil {
31874		return nil
31875	}
31876
31877	shape, ok := value.([]interface{})
31878	if !ok {
31879		return fmt.Errorf("unexpected JSON type %v", value)
31880	}
31881
31882	var cv []types.CidrBlockAssociation
31883	if *v == nil {
31884		cv = []types.CidrBlockAssociation{}
31885	} else {
31886		cv = *v
31887	}
31888
31889	for _, value := range shape {
31890		var col types.CidrBlockAssociation
31891		destAddr := &col
31892		if err := awsRestjson1_deserializeDocumentCidrBlockAssociation(&destAddr, value); err != nil {
31893			return err
31894		}
31895		col = *destAddr
31896		cv = append(cv, col)
31897
31898	}
31899	*v = cv
31900	return nil
31901}
31902
31903func awsRestjson1_deserializeDocumentCity(v **types.City, value interface{}) error {
31904	if v == nil {
31905		return fmt.Errorf("unexpected nil of type %T", v)
31906	}
31907	if value == nil {
31908		return nil
31909	}
31910
31911	shape, ok := value.(map[string]interface{})
31912	if !ok {
31913		return fmt.Errorf("unexpected JSON type %v", value)
31914	}
31915
31916	var sv *types.City
31917	if *v == nil {
31918		sv = &types.City{}
31919	} else {
31920		sv = *v
31921	}
31922
31923	for key, value := range shape {
31924		switch key {
31925		case "CityName":
31926			if value != nil {
31927				jtv, ok := value.(string)
31928				if !ok {
31929					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31930				}
31931				sv.CityName = ptr.String(jtv)
31932			}
31933
31934		default:
31935			_, _ = key, value
31936
31937		}
31938	}
31939	*v = sv
31940	return nil
31941}
31942
31943func awsRestjson1_deserializeDocumentClassificationResult(v **types.ClassificationResult, value interface{}) error {
31944	if v == nil {
31945		return fmt.Errorf("unexpected nil of type %T", v)
31946	}
31947	if value == nil {
31948		return nil
31949	}
31950
31951	shape, ok := value.(map[string]interface{})
31952	if !ok {
31953		return fmt.Errorf("unexpected JSON type %v", value)
31954	}
31955
31956	var sv *types.ClassificationResult
31957	if *v == nil {
31958		sv = &types.ClassificationResult{}
31959	} else {
31960		sv = *v
31961	}
31962
31963	for key, value := range shape {
31964		switch key {
31965		case "AdditionalOccurrences":
31966			if value != nil {
31967				jtv, ok := value.(bool)
31968				if !ok {
31969					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
31970				}
31971				sv.AdditionalOccurrences = jtv
31972			}
31973
31974		case "CustomDataIdentifiers":
31975			if err := awsRestjson1_deserializeDocumentCustomDataIdentifiersResult(&sv.CustomDataIdentifiers, value); err != nil {
31976				return err
31977			}
31978
31979		case "MimeType":
31980			if value != nil {
31981				jtv, ok := value.(string)
31982				if !ok {
31983					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31984				}
31985				sv.MimeType = ptr.String(jtv)
31986			}
31987
31988		case "SensitiveData":
31989			if err := awsRestjson1_deserializeDocumentSensitiveDataResultList(&sv.SensitiveData, value); err != nil {
31990				return err
31991			}
31992
31993		case "SizeClassified":
31994			if value != nil {
31995				jtv, ok := value.(json.Number)
31996				if !ok {
31997					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
31998				}
31999				i64, err := jtv.Int64()
32000				if err != nil {
32001					return err
32002				}
32003				sv.SizeClassified = i64
32004			}
32005
32006		case "Status":
32007			if err := awsRestjson1_deserializeDocumentClassificationStatus(&sv.Status, value); err != nil {
32008				return err
32009			}
32010
32011		default:
32012			_, _ = key, value
32013
32014		}
32015	}
32016	*v = sv
32017	return nil
32018}
32019
32020func awsRestjson1_deserializeDocumentClassificationStatus(v **types.ClassificationStatus, value interface{}) error {
32021	if v == nil {
32022		return fmt.Errorf("unexpected nil of type %T", v)
32023	}
32024	if value == nil {
32025		return nil
32026	}
32027
32028	shape, ok := value.(map[string]interface{})
32029	if !ok {
32030		return fmt.Errorf("unexpected JSON type %v", value)
32031	}
32032
32033	var sv *types.ClassificationStatus
32034	if *v == nil {
32035		sv = &types.ClassificationStatus{}
32036	} else {
32037		sv = *v
32038	}
32039
32040	for key, value := range shape {
32041		switch key {
32042		case "Code":
32043			if value != nil {
32044				jtv, ok := value.(string)
32045				if !ok {
32046					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32047				}
32048				sv.Code = ptr.String(jtv)
32049			}
32050
32051		case "Reason":
32052			if value != nil {
32053				jtv, ok := value.(string)
32054				if !ok {
32055					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32056				}
32057				sv.Reason = ptr.String(jtv)
32058			}
32059
32060		default:
32061			_, _ = key, value
32062
32063		}
32064	}
32065	*v = sv
32066	return nil
32067}
32068
32069func awsRestjson1_deserializeDocumentCompliance(v **types.Compliance, value interface{}) error {
32070	if v == nil {
32071		return fmt.Errorf("unexpected nil of type %T", v)
32072	}
32073	if value == nil {
32074		return nil
32075	}
32076
32077	shape, ok := value.(map[string]interface{})
32078	if !ok {
32079		return fmt.Errorf("unexpected JSON type %v", value)
32080	}
32081
32082	var sv *types.Compliance
32083	if *v == nil {
32084		sv = &types.Compliance{}
32085	} else {
32086		sv = *v
32087	}
32088
32089	for key, value := range shape {
32090		switch key {
32091		case "RelatedRequirements":
32092			if err := awsRestjson1_deserializeDocumentRelatedRequirementsList(&sv.RelatedRequirements, value); err != nil {
32093				return err
32094			}
32095
32096		case "Status":
32097			if value != nil {
32098				jtv, ok := value.(string)
32099				if !ok {
32100					return fmt.Errorf("expected ComplianceStatus to be of type string, got %T instead", value)
32101				}
32102				sv.Status = types.ComplianceStatus(jtv)
32103			}
32104
32105		case "StatusReasons":
32106			if err := awsRestjson1_deserializeDocumentStatusReasonsList(&sv.StatusReasons, value); err != nil {
32107				return err
32108			}
32109
32110		default:
32111			_, _ = key, value
32112
32113		}
32114	}
32115	*v = sv
32116	return nil
32117}
32118
32119func awsRestjson1_deserializeDocumentContainerDetails(v **types.ContainerDetails, value interface{}) error {
32120	if v == nil {
32121		return fmt.Errorf("unexpected nil of type %T", v)
32122	}
32123	if value == nil {
32124		return nil
32125	}
32126
32127	shape, ok := value.(map[string]interface{})
32128	if !ok {
32129		return fmt.Errorf("unexpected JSON type %v", value)
32130	}
32131
32132	var sv *types.ContainerDetails
32133	if *v == nil {
32134		sv = &types.ContainerDetails{}
32135	} else {
32136		sv = *v
32137	}
32138
32139	for key, value := range shape {
32140		switch key {
32141		case "ImageId":
32142			if value != nil {
32143				jtv, ok := value.(string)
32144				if !ok {
32145					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32146				}
32147				sv.ImageId = ptr.String(jtv)
32148			}
32149
32150		case "ImageName":
32151			if value != nil {
32152				jtv, ok := value.(string)
32153				if !ok {
32154					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32155				}
32156				sv.ImageName = ptr.String(jtv)
32157			}
32158
32159		case "LaunchedAt":
32160			if value != nil {
32161				jtv, ok := value.(string)
32162				if !ok {
32163					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32164				}
32165				sv.LaunchedAt = ptr.String(jtv)
32166			}
32167
32168		case "Name":
32169			if value != nil {
32170				jtv, ok := value.(string)
32171				if !ok {
32172					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32173				}
32174				sv.Name = ptr.String(jtv)
32175			}
32176
32177		default:
32178			_, _ = key, value
32179
32180		}
32181	}
32182	*v = sv
32183	return nil
32184}
32185
32186func awsRestjson1_deserializeDocumentCountry(v **types.Country, value interface{}) error {
32187	if v == nil {
32188		return fmt.Errorf("unexpected nil of type %T", v)
32189	}
32190	if value == nil {
32191		return nil
32192	}
32193
32194	shape, ok := value.(map[string]interface{})
32195	if !ok {
32196		return fmt.Errorf("unexpected JSON type %v", value)
32197	}
32198
32199	var sv *types.Country
32200	if *v == nil {
32201		sv = &types.Country{}
32202	} else {
32203		sv = *v
32204	}
32205
32206	for key, value := range shape {
32207		switch key {
32208		case "CountryCode":
32209			if value != nil {
32210				jtv, ok := value.(string)
32211				if !ok {
32212					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32213				}
32214				sv.CountryCode = ptr.String(jtv)
32215			}
32216
32217		case "CountryName":
32218			if value != nil {
32219				jtv, ok := value.(string)
32220				if !ok {
32221					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32222				}
32223				sv.CountryName = ptr.String(jtv)
32224			}
32225
32226		default:
32227			_, _ = key, value
32228
32229		}
32230	}
32231	*v = sv
32232	return nil
32233}
32234
32235func awsRestjson1_deserializeDocumentCustomDataIdentifiersDetections(v **types.CustomDataIdentifiersDetections, value interface{}) error {
32236	if v == nil {
32237		return fmt.Errorf("unexpected nil of type %T", v)
32238	}
32239	if value == nil {
32240		return nil
32241	}
32242
32243	shape, ok := value.(map[string]interface{})
32244	if !ok {
32245		return fmt.Errorf("unexpected JSON type %v", value)
32246	}
32247
32248	var sv *types.CustomDataIdentifiersDetections
32249	if *v == nil {
32250		sv = &types.CustomDataIdentifiersDetections{}
32251	} else {
32252		sv = *v
32253	}
32254
32255	for key, value := range shape {
32256		switch key {
32257		case "Arn":
32258			if value != nil {
32259				jtv, ok := value.(string)
32260				if !ok {
32261					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32262				}
32263				sv.Arn = ptr.String(jtv)
32264			}
32265
32266		case "Count":
32267			if value != nil {
32268				jtv, ok := value.(json.Number)
32269				if !ok {
32270					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
32271				}
32272				i64, err := jtv.Int64()
32273				if err != nil {
32274					return err
32275				}
32276				sv.Count = i64
32277			}
32278
32279		case "Name":
32280			if value != nil {
32281				jtv, ok := value.(string)
32282				if !ok {
32283					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32284				}
32285				sv.Name = ptr.String(jtv)
32286			}
32287
32288		case "Occurrences":
32289			if err := awsRestjson1_deserializeDocumentOccurrences(&sv.Occurrences, value); err != nil {
32290				return err
32291			}
32292
32293		default:
32294			_, _ = key, value
32295
32296		}
32297	}
32298	*v = sv
32299	return nil
32300}
32301
32302func awsRestjson1_deserializeDocumentCustomDataIdentifiersDetectionsList(v *[]types.CustomDataIdentifiersDetections, value interface{}) error {
32303	if v == nil {
32304		return fmt.Errorf("unexpected nil of type %T", v)
32305	}
32306	if value == nil {
32307		return nil
32308	}
32309
32310	shape, ok := value.([]interface{})
32311	if !ok {
32312		return fmt.Errorf("unexpected JSON type %v", value)
32313	}
32314
32315	var cv []types.CustomDataIdentifiersDetections
32316	if *v == nil {
32317		cv = []types.CustomDataIdentifiersDetections{}
32318	} else {
32319		cv = *v
32320	}
32321
32322	for _, value := range shape {
32323		var col types.CustomDataIdentifiersDetections
32324		destAddr := &col
32325		if err := awsRestjson1_deserializeDocumentCustomDataIdentifiersDetections(&destAddr, value); err != nil {
32326			return err
32327		}
32328		col = *destAddr
32329		cv = append(cv, col)
32330
32331	}
32332	*v = cv
32333	return nil
32334}
32335
32336func awsRestjson1_deserializeDocumentCustomDataIdentifiersResult(v **types.CustomDataIdentifiersResult, value interface{}) error {
32337	if v == nil {
32338		return fmt.Errorf("unexpected nil of type %T", v)
32339	}
32340	if value == nil {
32341		return nil
32342	}
32343
32344	shape, ok := value.(map[string]interface{})
32345	if !ok {
32346		return fmt.Errorf("unexpected JSON type %v", value)
32347	}
32348
32349	var sv *types.CustomDataIdentifiersResult
32350	if *v == nil {
32351		sv = &types.CustomDataIdentifiersResult{}
32352	} else {
32353		sv = *v
32354	}
32355
32356	for key, value := range shape {
32357		switch key {
32358		case "Detections":
32359			if err := awsRestjson1_deserializeDocumentCustomDataIdentifiersDetectionsList(&sv.Detections, value); err != nil {
32360				return err
32361			}
32362
32363		case "TotalCount":
32364			if value != nil {
32365				jtv, ok := value.(json.Number)
32366				if !ok {
32367					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
32368				}
32369				i64, err := jtv.Int64()
32370				if err != nil {
32371					return err
32372				}
32373				sv.TotalCount = i64
32374			}
32375
32376		default:
32377			_, _ = key, value
32378
32379		}
32380	}
32381	*v = sv
32382	return nil
32383}
32384
32385func awsRestjson1_deserializeDocumentCvss(v **types.Cvss, value interface{}) error {
32386	if v == nil {
32387		return fmt.Errorf("unexpected nil of type %T", v)
32388	}
32389	if value == nil {
32390		return nil
32391	}
32392
32393	shape, ok := value.(map[string]interface{})
32394	if !ok {
32395		return fmt.Errorf("unexpected JSON type %v", value)
32396	}
32397
32398	var sv *types.Cvss
32399	if *v == nil {
32400		sv = &types.Cvss{}
32401	} else {
32402		sv = *v
32403	}
32404
32405	for key, value := range shape {
32406		switch key {
32407		case "Adjustments":
32408			if err := awsRestjson1_deserializeDocumentAdjustmentList(&sv.Adjustments, value); err != nil {
32409				return err
32410			}
32411
32412		case "BaseScore":
32413			if value != nil {
32414				switch jtv := value.(type) {
32415				case json.Number:
32416					f64, err := jtv.Float64()
32417					if err != nil {
32418						return err
32419					}
32420					sv.BaseScore = f64
32421
32422				case string:
32423					var f64 float64
32424					switch {
32425					case strings.EqualFold(jtv, "NaN"):
32426						f64 = math.NaN()
32427
32428					case strings.EqualFold(jtv, "Infinity"):
32429						f64 = math.Inf(1)
32430
32431					case strings.EqualFold(jtv, "-Infinity"):
32432						f64 = math.Inf(-1)
32433
32434					default:
32435						return fmt.Errorf("unknown JSON number value: %s", jtv)
32436
32437					}
32438					sv.BaseScore = f64
32439
32440				default:
32441					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
32442
32443				}
32444			}
32445
32446		case "BaseVector":
32447			if value != nil {
32448				jtv, ok := value.(string)
32449				if !ok {
32450					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32451				}
32452				sv.BaseVector = ptr.String(jtv)
32453			}
32454
32455		case "Source":
32456			if value != nil {
32457				jtv, ok := value.(string)
32458				if !ok {
32459					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32460				}
32461				sv.Source = ptr.String(jtv)
32462			}
32463
32464		case "Version":
32465			if value != nil {
32466				jtv, ok := value.(string)
32467				if !ok {
32468					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32469				}
32470				sv.Version = ptr.String(jtv)
32471			}
32472
32473		default:
32474			_, _ = key, value
32475
32476		}
32477	}
32478	*v = sv
32479	return nil
32480}
32481
32482func awsRestjson1_deserializeDocumentCvssList(v *[]types.Cvss, value interface{}) error {
32483	if v == nil {
32484		return fmt.Errorf("unexpected nil of type %T", v)
32485	}
32486	if value == nil {
32487		return nil
32488	}
32489
32490	shape, ok := value.([]interface{})
32491	if !ok {
32492		return fmt.Errorf("unexpected JSON type %v", value)
32493	}
32494
32495	var cv []types.Cvss
32496	if *v == nil {
32497		cv = []types.Cvss{}
32498	} else {
32499		cv = *v
32500	}
32501
32502	for _, value := range shape {
32503		var col types.Cvss
32504		destAddr := &col
32505		if err := awsRestjson1_deserializeDocumentCvss(&destAddr, value); err != nil {
32506			return err
32507		}
32508		col = *destAddr
32509		cv = append(cv, col)
32510
32511	}
32512	*v = cv
32513	return nil
32514}
32515
32516func awsRestjson1_deserializeDocumentDataClassificationDetails(v **types.DataClassificationDetails, value interface{}) error {
32517	if v == nil {
32518		return fmt.Errorf("unexpected nil of type %T", v)
32519	}
32520	if value == nil {
32521		return nil
32522	}
32523
32524	shape, ok := value.(map[string]interface{})
32525	if !ok {
32526		return fmt.Errorf("unexpected JSON type %v", value)
32527	}
32528
32529	var sv *types.DataClassificationDetails
32530	if *v == nil {
32531		sv = &types.DataClassificationDetails{}
32532	} else {
32533		sv = *v
32534	}
32535
32536	for key, value := range shape {
32537		switch key {
32538		case "DetailedResultsLocation":
32539			if value != nil {
32540				jtv, ok := value.(string)
32541				if !ok {
32542					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32543				}
32544				sv.DetailedResultsLocation = ptr.String(jtv)
32545			}
32546
32547		case "Result":
32548			if err := awsRestjson1_deserializeDocumentClassificationResult(&sv.Result, value); err != nil {
32549				return err
32550			}
32551
32552		default:
32553			_, _ = key, value
32554
32555		}
32556	}
32557	*v = sv
32558	return nil
32559}
32560
32561func awsRestjson1_deserializeDocumentDateFilter(v **types.DateFilter, value interface{}) error {
32562	if v == nil {
32563		return fmt.Errorf("unexpected nil of type %T", v)
32564	}
32565	if value == nil {
32566		return nil
32567	}
32568
32569	shape, ok := value.(map[string]interface{})
32570	if !ok {
32571		return fmt.Errorf("unexpected JSON type %v", value)
32572	}
32573
32574	var sv *types.DateFilter
32575	if *v == nil {
32576		sv = &types.DateFilter{}
32577	} else {
32578		sv = *v
32579	}
32580
32581	for key, value := range shape {
32582		switch key {
32583		case "DateRange":
32584			if err := awsRestjson1_deserializeDocumentDateRange(&sv.DateRange, value); err != nil {
32585				return err
32586			}
32587
32588		case "End":
32589			if value != nil {
32590				jtv, ok := value.(string)
32591				if !ok {
32592					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32593				}
32594				sv.End = ptr.String(jtv)
32595			}
32596
32597		case "Start":
32598			if value != nil {
32599				jtv, ok := value.(string)
32600				if !ok {
32601					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32602				}
32603				sv.Start = ptr.String(jtv)
32604			}
32605
32606		default:
32607			_, _ = key, value
32608
32609		}
32610	}
32611	*v = sv
32612	return nil
32613}
32614
32615func awsRestjson1_deserializeDocumentDateFilterList(v *[]types.DateFilter, value interface{}) error {
32616	if v == nil {
32617		return fmt.Errorf("unexpected nil of type %T", v)
32618	}
32619	if value == nil {
32620		return nil
32621	}
32622
32623	shape, ok := value.([]interface{})
32624	if !ok {
32625		return fmt.Errorf("unexpected JSON type %v", value)
32626	}
32627
32628	var cv []types.DateFilter
32629	if *v == nil {
32630		cv = []types.DateFilter{}
32631	} else {
32632		cv = *v
32633	}
32634
32635	for _, value := range shape {
32636		var col types.DateFilter
32637		destAddr := &col
32638		if err := awsRestjson1_deserializeDocumentDateFilter(&destAddr, value); err != nil {
32639			return err
32640		}
32641		col = *destAddr
32642		cv = append(cv, col)
32643
32644	}
32645	*v = cv
32646	return nil
32647}
32648
32649func awsRestjson1_deserializeDocumentDateRange(v **types.DateRange, value interface{}) error {
32650	if v == nil {
32651		return fmt.Errorf("unexpected nil of type %T", v)
32652	}
32653	if value == nil {
32654		return nil
32655	}
32656
32657	shape, ok := value.(map[string]interface{})
32658	if !ok {
32659		return fmt.Errorf("unexpected JSON type %v", value)
32660	}
32661
32662	var sv *types.DateRange
32663	if *v == nil {
32664		sv = &types.DateRange{}
32665	} else {
32666		sv = *v
32667	}
32668
32669	for key, value := range shape {
32670		switch key {
32671		case "Unit":
32672			if value != nil {
32673				jtv, ok := value.(string)
32674				if !ok {
32675					return fmt.Errorf("expected DateRangeUnit to be of type string, got %T instead", value)
32676				}
32677				sv.Unit = types.DateRangeUnit(jtv)
32678			}
32679
32680		case "Value":
32681			if value != nil {
32682				jtv, ok := value.(json.Number)
32683				if !ok {
32684					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
32685				}
32686				i64, err := jtv.Int64()
32687				if err != nil {
32688					return err
32689				}
32690				sv.Value = int32(i64)
32691			}
32692
32693		default:
32694			_, _ = key, value
32695
32696		}
32697	}
32698	*v = sv
32699	return nil
32700}
32701
32702func awsRestjson1_deserializeDocumentDnsRequestAction(v **types.DnsRequestAction, value interface{}) error {
32703	if v == nil {
32704		return fmt.Errorf("unexpected nil of type %T", v)
32705	}
32706	if value == nil {
32707		return nil
32708	}
32709
32710	shape, ok := value.(map[string]interface{})
32711	if !ok {
32712		return fmt.Errorf("unexpected JSON type %v", value)
32713	}
32714
32715	var sv *types.DnsRequestAction
32716	if *v == nil {
32717		sv = &types.DnsRequestAction{}
32718	} else {
32719		sv = *v
32720	}
32721
32722	for key, value := range shape {
32723		switch key {
32724		case "Blocked":
32725			if value != nil {
32726				jtv, ok := value.(bool)
32727				if !ok {
32728					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
32729				}
32730				sv.Blocked = jtv
32731			}
32732
32733		case "Domain":
32734			if value != nil {
32735				jtv, ok := value.(string)
32736				if !ok {
32737					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32738				}
32739				sv.Domain = ptr.String(jtv)
32740			}
32741
32742		case "Protocol":
32743			if value != nil {
32744				jtv, ok := value.(string)
32745				if !ok {
32746					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32747				}
32748				sv.Protocol = ptr.String(jtv)
32749			}
32750
32751		default:
32752			_, _ = key, value
32753
32754		}
32755	}
32756	*v = sv
32757	return nil
32758}
32759
32760func awsRestjson1_deserializeDocumentFieldMap(v *map[string]string, value interface{}) error {
32761	if v == nil {
32762		return fmt.Errorf("unexpected nil of type %T", v)
32763	}
32764	if value == nil {
32765		return nil
32766	}
32767
32768	shape, ok := value.(map[string]interface{})
32769	if !ok {
32770		return fmt.Errorf("unexpected JSON type %v", value)
32771	}
32772
32773	var mv map[string]string
32774	if *v == nil {
32775		mv = map[string]string{}
32776	} else {
32777		mv = *v
32778	}
32779
32780	for key, value := range shape {
32781		var parsedVal string
32782		if value != nil {
32783			jtv, ok := value.(string)
32784			if !ok {
32785				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32786			}
32787			parsedVal = jtv
32788		}
32789		mv[key] = parsedVal
32790
32791	}
32792	*v = mv
32793	return nil
32794}
32795
32796func awsRestjson1_deserializeDocumentFindingProviderFields(v **types.FindingProviderFields, value interface{}) error {
32797	if v == nil {
32798		return fmt.Errorf("unexpected nil of type %T", v)
32799	}
32800	if value == nil {
32801		return nil
32802	}
32803
32804	shape, ok := value.(map[string]interface{})
32805	if !ok {
32806		return fmt.Errorf("unexpected JSON type %v", value)
32807	}
32808
32809	var sv *types.FindingProviderFields
32810	if *v == nil {
32811		sv = &types.FindingProviderFields{}
32812	} else {
32813		sv = *v
32814	}
32815
32816	for key, value := range shape {
32817		switch key {
32818		case "Confidence":
32819			if value != nil {
32820				jtv, ok := value.(json.Number)
32821				if !ok {
32822					return fmt.Errorf("expected RatioScale to be json.Number, got %T instead", value)
32823				}
32824				i64, err := jtv.Int64()
32825				if err != nil {
32826					return err
32827				}
32828				sv.Confidence = int32(i64)
32829			}
32830
32831		case "Criticality":
32832			if value != nil {
32833				jtv, ok := value.(json.Number)
32834				if !ok {
32835					return fmt.Errorf("expected RatioScale to be json.Number, got %T instead", value)
32836				}
32837				i64, err := jtv.Int64()
32838				if err != nil {
32839					return err
32840				}
32841				sv.Criticality = int32(i64)
32842			}
32843
32844		case "RelatedFindings":
32845			if err := awsRestjson1_deserializeDocumentRelatedFindingList(&sv.RelatedFindings, value); err != nil {
32846				return err
32847			}
32848
32849		case "Severity":
32850			if err := awsRestjson1_deserializeDocumentFindingProviderSeverity(&sv.Severity, value); err != nil {
32851				return err
32852			}
32853
32854		case "Types":
32855			if err := awsRestjson1_deserializeDocumentTypeList(&sv.Types, value); err != nil {
32856				return err
32857			}
32858
32859		default:
32860			_, _ = key, value
32861
32862		}
32863	}
32864	*v = sv
32865	return nil
32866}
32867
32868func awsRestjson1_deserializeDocumentFindingProviderSeverity(v **types.FindingProviderSeverity, value interface{}) error {
32869	if v == nil {
32870		return fmt.Errorf("unexpected nil of type %T", v)
32871	}
32872	if value == nil {
32873		return nil
32874	}
32875
32876	shape, ok := value.(map[string]interface{})
32877	if !ok {
32878		return fmt.Errorf("unexpected JSON type %v", value)
32879	}
32880
32881	var sv *types.FindingProviderSeverity
32882	if *v == nil {
32883		sv = &types.FindingProviderSeverity{}
32884	} else {
32885		sv = *v
32886	}
32887
32888	for key, value := range shape {
32889		switch key {
32890		case "Label":
32891			if value != nil {
32892				jtv, ok := value.(string)
32893				if !ok {
32894					return fmt.Errorf("expected SeverityLabel to be of type string, got %T instead", value)
32895				}
32896				sv.Label = types.SeverityLabel(jtv)
32897			}
32898
32899		case "Original":
32900			if value != nil {
32901				jtv, ok := value.(string)
32902				if !ok {
32903					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32904				}
32905				sv.Original = ptr.String(jtv)
32906			}
32907
32908		default:
32909			_, _ = key, value
32910
32911		}
32912	}
32913	*v = sv
32914	return nil
32915}
32916
32917func awsRestjson1_deserializeDocumentGeoLocation(v **types.GeoLocation, value interface{}) error {
32918	if v == nil {
32919		return fmt.Errorf("unexpected nil of type %T", v)
32920	}
32921	if value == nil {
32922		return nil
32923	}
32924
32925	shape, ok := value.(map[string]interface{})
32926	if !ok {
32927		return fmt.Errorf("unexpected JSON type %v", value)
32928	}
32929
32930	var sv *types.GeoLocation
32931	if *v == nil {
32932		sv = &types.GeoLocation{}
32933	} else {
32934		sv = *v
32935	}
32936
32937	for key, value := range shape {
32938		switch key {
32939		case "Lat":
32940			if value != nil {
32941				switch jtv := value.(type) {
32942				case json.Number:
32943					f64, err := jtv.Float64()
32944					if err != nil {
32945						return err
32946					}
32947					sv.Lat = f64
32948
32949				case string:
32950					var f64 float64
32951					switch {
32952					case strings.EqualFold(jtv, "NaN"):
32953						f64 = math.NaN()
32954
32955					case strings.EqualFold(jtv, "Infinity"):
32956						f64 = math.Inf(1)
32957
32958					case strings.EqualFold(jtv, "-Infinity"):
32959						f64 = math.Inf(-1)
32960
32961					default:
32962						return fmt.Errorf("unknown JSON number value: %s", jtv)
32963
32964					}
32965					sv.Lat = f64
32966
32967				default:
32968					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
32969
32970				}
32971			}
32972
32973		case "Lon":
32974			if value != nil {
32975				switch jtv := value.(type) {
32976				case json.Number:
32977					f64, err := jtv.Float64()
32978					if err != nil {
32979						return err
32980					}
32981					sv.Lon = f64
32982
32983				case string:
32984					var f64 float64
32985					switch {
32986					case strings.EqualFold(jtv, "NaN"):
32987						f64 = math.NaN()
32988
32989					case strings.EqualFold(jtv, "Infinity"):
32990						f64 = math.Inf(1)
32991
32992					case strings.EqualFold(jtv, "-Infinity"):
32993						f64 = math.Inf(-1)
32994
32995					default:
32996						return fmt.Errorf("unknown JSON number value: %s", jtv)
32997
32998					}
32999					sv.Lon = f64
33000
33001				default:
33002					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
33003
33004				}
33005			}
33006
33007		default:
33008			_, _ = key, value
33009
33010		}
33011	}
33012	*v = sv
33013	return nil
33014}
33015
33016func awsRestjson1_deserializeDocumentIcmpTypeCode(v **types.IcmpTypeCode, value interface{}) error {
33017	if v == nil {
33018		return fmt.Errorf("unexpected nil of type %T", v)
33019	}
33020	if value == nil {
33021		return nil
33022	}
33023
33024	shape, ok := value.(map[string]interface{})
33025	if !ok {
33026		return fmt.Errorf("unexpected JSON type %v", value)
33027	}
33028
33029	var sv *types.IcmpTypeCode
33030	if *v == nil {
33031		sv = &types.IcmpTypeCode{}
33032	} else {
33033		sv = *v
33034	}
33035
33036	for key, value := range shape {
33037		switch key {
33038		case "Code":
33039			if value != nil {
33040				jtv, ok := value.(json.Number)
33041				if !ok {
33042					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
33043				}
33044				i64, err := jtv.Int64()
33045				if err != nil {
33046					return err
33047				}
33048				sv.Code = int32(i64)
33049			}
33050
33051		case "Type":
33052			if value != nil {
33053				jtv, ok := value.(json.Number)
33054				if !ok {
33055					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
33056				}
33057				i64, err := jtv.Int64()
33058				if err != nil {
33059					return err
33060				}
33061				sv.Type = int32(i64)
33062			}
33063
33064		default:
33065			_, _ = key, value
33066
33067		}
33068	}
33069	*v = sv
33070	return nil
33071}
33072
33073func awsRestjson1_deserializeDocumentImportFindingsError(v **types.ImportFindingsError, value interface{}) error {
33074	if v == nil {
33075		return fmt.Errorf("unexpected nil of type %T", v)
33076	}
33077	if value == nil {
33078		return nil
33079	}
33080
33081	shape, ok := value.(map[string]interface{})
33082	if !ok {
33083		return fmt.Errorf("unexpected JSON type %v", value)
33084	}
33085
33086	var sv *types.ImportFindingsError
33087	if *v == nil {
33088		sv = &types.ImportFindingsError{}
33089	} else {
33090		sv = *v
33091	}
33092
33093	for key, value := range shape {
33094		switch key {
33095		case "ErrorCode":
33096			if value != nil {
33097				jtv, ok := value.(string)
33098				if !ok {
33099					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33100				}
33101				sv.ErrorCode = ptr.String(jtv)
33102			}
33103
33104		case "ErrorMessage":
33105			if value != nil {
33106				jtv, ok := value.(string)
33107				if !ok {
33108					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33109				}
33110				sv.ErrorMessage = ptr.String(jtv)
33111			}
33112
33113		case "Id":
33114			if value != nil {
33115				jtv, ok := value.(string)
33116				if !ok {
33117					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33118				}
33119				sv.Id = ptr.String(jtv)
33120			}
33121
33122		default:
33123			_, _ = key, value
33124
33125		}
33126	}
33127	*v = sv
33128	return nil
33129}
33130
33131func awsRestjson1_deserializeDocumentImportFindingsErrorList(v *[]types.ImportFindingsError, 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.([]interface{})
33140	if !ok {
33141		return fmt.Errorf("unexpected JSON type %v", value)
33142	}
33143
33144	var cv []types.ImportFindingsError
33145	if *v == nil {
33146		cv = []types.ImportFindingsError{}
33147	} else {
33148		cv = *v
33149	}
33150
33151	for _, value := range shape {
33152		var col types.ImportFindingsError
33153		destAddr := &col
33154		if err := awsRestjson1_deserializeDocumentImportFindingsError(&destAddr, value); err != nil {
33155			return err
33156		}
33157		col = *destAddr
33158		cv = append(cv, col)
33159
33160	}
33161	*v = cv
33162	return nil
33163}
33164
33165func awsRestjson1_deserializeDocumentInsight(v **types.Insight, value interface{}) error {
33166	if v == nil {
33167		return fmt.Errorf("unexpected nil of type %T", v)
33168	}
33169	if value == nil {
33170		return nil
33171	}
33172
33173	shape, ok := value.(map[string]interface{})
33174	if !ok {
33175		return fmt.Errorf("unexpected JSON type %v", value)
33176	}
33177
33178	var sv *types.Insight
33179	if *v == nil {
33180		sv = &types.Insight{}
33181	} else {
33182		sv = *v
33183	}
33184
33185	for key, value := range shape {
33186		switch key {
33187		case "Filters":
33188			if err := awsRestjson1_deserializeDocumentAwsSecurityFindingFilters(&sv.Filters, value); err != nil {
33189				return err
33190			}
33191
33192		case "GroupByAttribute":
33193			if value != nil {
33194				jtv, ok := value.(string)
33195				if !ok {
33196					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33197				}
33198				sv.GroupByAttribute = ptr.String(jtv)
33199			}
33200
33201		case "InsightArn":
33202			if value != nil {
33203				jtv, ok := value.(string)
33204				if !ok {
33205					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33206				}
33207				sv.InsightArn = ptr.String(jtv)
33208			}
33209
33210		case "Name":
33211			if value != nil {
33212				jtv, ok := value.(string)
33213				if !ok {
33214					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33215				}
33216				sv.Name = ptr.String(jtv)
33217			}
33218
33219		default:
33220			_, _ = key, value
33221
33222		}
33223	}
33224	*v = sv
33225	return nil
33226}
33227
33228func awsRestjson1_deserializeDocumentInsightList(v *[]types.Insight, value interface{}) error {
33229	if v == nil {
33230		return fmt.Errorf("unexpected nil of type %T", v)
33231	}
33232	if value == nil {
33233		return nil
33234	}
33235
33236	shape, ok := value.([]interface{})
33237	if !ok {
33238		return fmt.Errorf("unexpected JSON type %v", value)
33239	}
33240
33241	var cv []types.Insight
33242	if *v == nil {
33243		cv = []types.Insight{}
33244	} else {
33245		cv = *v
33246	}
33247
33248	for _, value := range shape {
33249		var col types.Insight
33250		destAddr := &col
33251		if err := awsRestjson1_deserializeDocumentInsight(&destAddr, value); err != nil {
33252			return err
33253		}
33254		col = *destAddr
33255		cv = append(cv, col)
33256
33257	}
33258	*v = cv
33259	return nil
33260}
33261
33262func awsRestjson1_deserializeDocumentInsightResults(v **types.InsightResults, value interface{}) error {
33263	if v == nil {
33264		return fmt.Errorf("unexpected nil of type %T", v)
33265	}
33266	if value == nil {
33267		return nil
33268	}
33269
33270	shape, ok := value.(map[string]interface{})
33271	if !ok {
33272		return fmt.Errorf("unexpected JSON type %v", value)
33273	}
33274
33275	var sv *types.InsightResults
33276	if *v == nil {
33277		sv = &types.InsightResults{}
33278	} else {
33279		sv = *v
33280	}
33281
33282	for key, value := range shape {
33283		switch key {
33284		case "GroupByAttribute":
33285			if value != nil {
33286				jtv, ok := value.(string)
33287				if !ok {
33288					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33289				}
33290				sv.GroupByAttribute = ptr.String(jtv)
33291			}
33292
33293		case "InsightArn":
33294			if value != nil {
33295				jtv, ok := value.(string)
33296				if !ok {
33297					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33298				}
33299				sv.InsightArn = ptr.String(jtv)
33300			}
33301
33302		case "ResultValues":
33303			if err := awsRestjson1_deserializeDocumentInsightResultValueList(&sv.ResultValues, value); err != nil {
33304				return err
33305			}
33306
33307		default:
33308			_, _ = key, value
33309
33310		}
33311	}
33312	*v = sv
33313	return nil
33314}
33315
33316func awsRestjson1_deserializeDocumentInsightResultValue(v **types.InsightResultValue, value interface{}) error {
33317	if v == nil {
33318		return fmt.Errorf("unexpected nil of type %T", v)
33319	}
33320	if value == nil {
33321		return nil
33322	}
33323
33324	shape, ok := value.(map[string]interface{})
33325	if !ok {
33326		return fmt.Errorf("unexpected JSON type %v", value)
33327	}
33328
33329	var sv *types.InsightResultValue
33330	if *v == nil {
33331		sv = &types.InsightResultValue{}
33332	} else {
33333		sv = *v
33334	}
33335
33336	for key, value := range shape {
33337		switch key {
33338		case "Count":
33339			if value != nil {
33340				jtv, ok := value.(json.Number)
33341				if !ok {
33342					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
33343				}
33344				i64, err := jtv.Int64()
33345				if err != nil {
33346					return err
33347				}
33348				sv.Count = int32(i64)
33349			}
33350
33351		case "GroupByAttributeValue":
33352			if value != nil {
33353				jtv, ok := value.(string)
33354				if !ok {
33355					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33356				}
33357				sv.GroupByAttributeValue = ptr.String(jtv)
33358			}
33359
33360		default:
33361			_, _ = key, value
33362
33363		}
33364	}
33365	*v = sv
33366	return nil
33367}
33368
33369func awsRestjson1_deserializeDocumentInsightResultValueList(v *[]types.InsightResultValue, value interface{}) error {
33370	if v == nil {
33371		return fmt.Errorf("unexpected nil of type %T", v)
33372	}
33373	if value == nil {
33374		return nil
33375	}
33376
33377	shape, ok := value.([]interface{})
33378	if !ok {
33379		return fmt.Errorf("unexpected JSON type %v", value)
33380	}
33381
33382	var cv []types.InsightResultValue
33383	if *v == nil {
33384		cv = []types.InsightResultValue{}
33385	} else {
33386		cv = *v
33387	}
33388
33389	for _, value := range shape {
33390		var col types.InsightResultValue
33391		destAddr := &col
33392		if err := awsRestjson1_deserializeDocumentInsightResultValue(&destAddr, value); err != nil {
33393			return err
33394		}
33395		col = *destAddr
33396		cv = append(cv, col)
33397
33398	}
33399	*v = cv
33400	return nil
33401}
33402
33403func awsRestjson1_deserializeDocumentIntegerList(v *[]int32, value interface{}) error {
33404	if v == nil {
33405		return fmt.Errorf("unexpected nil of type %T", v)
33406	}
33407	if value == nil {
33408		return nil
33409	}
33410
33411	shape, ok := value.([]interface{})
33412	if !ok {
33413		return fmt.Errorf("unexpected JSON type %v", value)
33414	}
33415
33416	var cv []int32
33417	if *v == nil {
33418		cv = []int32{}
33419	} else {
33420		cv = *v
33421	}
33422
33423	for _, value := range shape {
33424		var col int32
33425		if value != nil {
33426			jtv, ok := value.(json.Number)
33427			if !ok {
33428				return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
33429			}
33430			i64, err := jtv.Int64()
33431			if err != nil {
33432				return err
33433			}
33434			col = int32(i64)
33435		}
33436		cv = append(cv, col)
33437
33438	}
33439	*v = cv
33440	return nil
33441}
33442
33443func awsRestjson1_deserializeDocumentIntegrationTypeList(v *[]types.IntegrationType, value interface{}) error {
33444	if v == nil {
33445		return fmt.Errorf("unexpected nil of type %T", v)
33446	}
33447	if value == nil {
33448		return nil
33449	}
33450
33451	shape, ok := value.([]interface{})
33452	if !ok {
33453		return fmt.Errorf("unexpected JSON type %v", value)
33454	}
33455
33456	var cv []types.IntegrationType
33457	if *v == nil {
33458		cv = []types.IntegrationType{}
33459	} else {
33460		cv = *v
33461	}
33462
33463	for _, value := range shape {
33464		var col types.IntegrationType
33465		if value != nil {
33466			jtv, ok := value.(string)
33467			if !ok {
33468				return fmt.Errorf("expected IntegrationType to be of type string, got %T instead", value)
33469			}
33470			col = types.IntegrationType(jtv)
33471		}
33472		cv = append(cv, col)
33473
33474	}
33475	*v = cv
33476	return nil
33477}
33478
33479func awsRestjson1_deserializeDocumentInternalException(v **types.InternalException, value interface{}) error {
33480	if v == nil {
33481		return fmt.Errorf("unexpected nil of type %T", v)
33482	}
33483	if value == nil {
33484		return nil
33485	}
33486
33487	shape, ok := value.(map[string]interface{})
33488	if !ok {
33489		return fmt.Errorf("unexpected JSON type %v", value)
33490	}
33491
33492	var sv *types.InternalException
33493	if *v == nil {
33494		sv = &types.InternalException{}
33495	} else {
33496		sv = *v
33497	}
33498
33499	for key, value := range shape {
33500		switch key {
33501		case "Code":
33502			if value != nil {
33503				jtv, ok := value.(string)
33504				if !ok {
33505					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33506				}
33507				sv.Code = ptr.String(jtv)
33508			}
33509
33510		case "Message":
33511			if value != nil {
33512				jtv, ok := value.(string)
33513				if !ok {
33514					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33515				}
33516				sv.Message = ptr.String(jtv)
33517			}
33518
33519		default:
33520			_, _ = key, value
33521
33522		}
33523	}
33524	*v = sv
33525	return nil
33526}
33527
33528func awsRestjson1_deserializeDocumentInvalidAccessException(v **types.InvalidAccessException, value interface{}) error {
33529	if v == nil {
33530		return fmt.Errorf("unexpected nil of type %T", v)
33531	}
33532	if value == nil {
33533		return nil
33534	}
33535
33536	shape, ok := value.(map[string]interface{})
33537	if !ok {
33538		return fmt.Errorf("unexpected JSON type %v", value)
33539	}
33540
33541	var sv *types.InvalidAccessException
33542	if *v == nil {
33543		sv = &types.InvalidAccessException{}
33544	} else {
33545		sv = *v
33546	}
33547
33548	for key, value := range shape {
33549		switch key {
33550		case "Code":
33551			if value != nil {
33552				jtv, ok := value.(string)
33553				if !ok {
33554					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33555				}
33556				sv.Code = ptr.String(jtv)
33557			}
33558
33559		case "Message":
33560			if value != nil {
33561				jtv, ok := value.(string)
33562				if !ok {
33563					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33564				}
33565				sv.Message = ptr.String(jtv)
33566			}
33567
33568		default:
33569			_, _ = key, value
33570
33571		}
33572	}
33573	*v = sv
33574	return nil
33575}
33576
33577func awsRestjson1_deserializeDocumentInvalidInputException(v **types.InvalidInputException, value interface{}) error {
33578	if v == nil {
33579		return fmt.Errorf("unexpected nil of type %T", v)
33580	}
33581	if value == nil {
33582		return nil
33583	}
33584
33585	shape, ok := value.(map[string]interface{})
33586	if !ok {
33587		return fmt.Errorf("unexpected JSON type %v", value)
33588	}
33589
33590	var sv *types.InvalidInputException
33591	if *v == nil {
33592		sv = &types.InvalidInputException{}
33593	} else {
33594		sv = *v
33595	}
33596
33597	for key, value := range shape {
33598		switch key {
33599		case "Code":
33600			if value != nil {
33601				jtv, ok := value.(string)
33602				if !ok {
33603					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33604				}
33605				sv.Code = ptr.String(jtv)
33606			}
33607
33608		case "Message":
33609			if value != nil {
33610				jtv, ok := value.(string)
33611				if !ok {
33612					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33613				}
33614				sv.Message = ptr.String(jtv)
33615			}
33616
33617		default:
33618			_, _ = key, value
33619
33620		}
33621	}
33622	*v = sv
33623	return nil
33624}
33625
33626func awsRestjson1_deserializeDocumentInvitation(v **types.Invitation, value interface{}) error {
33627	if v == nil {
33628		return fmt.Errorf("unexpected nil of type %T", v)
33629	}
33630	if value == nil {
33631		return nil
33632	}
33633
33634	shape, ok := value.(map[string]interface{})
33635	if !ok {
33636		return fmt.Errorf("unexpected JSON type %v", value)
33637	}
33638
33639	var sv *types.Invitation
33640	if *v == nil {
33641		sv = &types.Invitation{}
33642	} else {
33643		sv = *v
33644	}
33645
33646	for key, value := range shape {
33647		switch key {
33648		case "AccountId":
33649			if value != nil {
33650				jtv, ok := value.(string)
33651				if !ok {
33652					return fmt.Errorf("expected AccountId to be of type string, got %T instead", value)
33653				}
33654				sv.AccountId = ptr.String(jtv)
33655			}
33656
33657		case "InvitationId":
33658			if value != nil {
33659				jtv, ok := value.(string)
33660				if !ok {
33661					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33662				}
33663				sv.InvitationId = ptr.String(jtv)
33664			}
33665
33666		case "InvitedAt":
33667			if value != nil {
33668				jtv, ok := value.(string)
33669				if !ok {
33670					return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value)
33671				}
33672				t, err := smithytime.ParseDateTime(jtv)
33673				if err != nil {
33674					return err
33675				}
33676				sv.InvitedAt = ptr.Time(t)
33677			}
33678
33679		case "MemberStatus":
33680			if value != nil {
33681				jtv, ok := value.(string)
33682				if !ok {
33683					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33684				}
33685				sv.MemberStatus = ptr.String(jtv)
33686			}
33687
33688		default:
33689			_, _ = key, value
33690
33691		}
33692	}
33693	*v = sv
33694	return nil
33695}
33696
33697func awsRestjson1_deserializeDocumentInvitationList(v *[]types.Invitation, value interface{}) error {
33698	if v == nil {
33699		return fmt.Errorf("unexpected nil of type %T", v)
33700	}
33701	if value == nil {
33702		return nil
33703	}
33704
33705	shape, ok := value.([]interface{})
33706	if !ok {
33707		return fmt.Errorf("unexpected JSON type %v", value)
33708	}
33709
33710	var cv []types.Invitation
33711	if *v == nil {
33712		cv = []types.Invitation{}
33713	} else {
33714		cv = *v
33715	}
33716
33717	for _, value := range shape {
33718		var col types.Invitation
33719		destAddr := &col
33720		if err := awsRestjson1_deserializeDocumentInvitation(&destAddr, value); err != nil {
33721			return err
33722		}
33723		col = *destAddr
33724		cv = append(cv, col)
33725
33726	}
33727	*v = cv
33728	return nil
33729}
33730
33731func awsRestjson1_deserializeDocumentIpFilter(v **types.IpFilter, value interface{}) error {
33732	if v == nil {
33733		return fmt.Errorf("unexpected nil of type %T", v)
33734	}
33735	if value == nil {
33736		return nil
33737	}
33738
33739	shape, ok := value.(map[string]interface{})
33740	if !ok {
33741		return fmt.Errorf("unexpected JSON type %v", value)
33742	}
33743
33744	var sv *types.IpFilter
33745	if *v == nil {
33746		sv = &types.IpFilter{}
33747	} else {
33748		sv = *v
33749	}
33750
33751	for key, value := range shape {
33752		switch key {
33753		case "Cidr":
33754			if value != nil {
33755				jtv, ok := value.(string)
33756				if !ok {
33757					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33758				}
33759				sv.Cidr = ptr.String(jtv)
33760			}
33761
33762		default:
33763			_, _ = key, value
33764
33765		}
33766	}
33767	*v = sv
33768	return nil
33769}
33770
33771func awsRestjson1_deserializeDocumentIpFilterList(v *[]types.IpFilter, value interface{}) error {
33772	if v == nil {
33773		return fmt.Errorf("unexpected nil of type %T", v)
33774	}
33775	if value == nil {
33776		return nil
33777	}
33778
33779	shape, ok := value.([]interface{})
33780	if !ok {
33781		return fmt.Errorf("unexpected JSON type %v", value)
33782	}
33783
33784	var cv []types.IpFilter
33785	if *v == nil {
33786		cv = []types.IpFilter{}
33787	} else {
33788		cv = *v
33789	}
33790
33791	for _, value := range shape {
33792		var col types.IpFilter
33793		destAddr := &col
33794		if err := awsRestjson1_deserializeDocumentIpFilter(&destAddr, value); err != nil {
33795			return err
33796		}
33797		col = *destAddr
33798		cv = append(cv, col)
33799
33800	}
33801	*v = cv
33802	return nil
33803}
33804
33805func awsRestjson1_deserializeDocumentIpOrganizationDetails(v **types.IpOrganizationDetails, value interface{}) error {
33806	if v == nil {
33807		return fmt.Errorf("unexpected nil of type %T", v)
33808	}
33809	if value == nil {
33810		return nil
33811	}
33812
33813	shape, ok := value.(map[string]interface{})
33814	if !ok {
33815		return fmt.Errorf("unexpected JSON type %v", value)
33816	}
33817
33818	var sv *types.IpOrganizationDetails
33819	if *v == nil {
33820		sv = &types.IpOrganizationDetails{}
33821	} else {
33822		sv = *v
33823	}
33824
33825	for key, value := range shape {
33826		switch key {
33827		case "Asn":
33828			if value != nil {
33829				jtv, ok := value.(json.Number)
33830				if !ok {
33831					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
33832				}
33833				i64, err := jtv.Int64()
33834				if err != nil {
33835					return err
33836				}
33837				sv.Asn = int32(i64)
33838			}
33839
33840		case "AsnOrg":
33841			if value != nil {
33842				jtv, ok := value.(string)
33843				if !ok {
33844					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33845				}
33846				sv.AsnOrg = ptr.String(jtv)
33847			}
33848
33849		case "Isp":
33850			if value != nil {
33851				jtv, ok := value.(string)
33852				if !ok {
33853					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33854				}
33855				sv.Isp = ptr.String(jtv)
33856			}
33857
33858		case "Org":
33859			if value != nil {
33860				jtv, ok := value.(string)
33861				if !ok {
33862					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33863				}
33864				sv.Org = ptr.String(jtv)
33865			}
33866
33867		default:
33868			_, _ = key, value
33869
33870		}
33871	}
33872	*v = sv
33873	return nil
33874}
33875
33876func awsRestjson1_deserializeDocumentIpv6CidrBlockAssociation(v **types.Ipv6CidrBlockAssociation, value interface{}) error {
33877	if v == nil {
33878		return fmt.Errorf("unexpected nil of type %T", v)
33879	}
33880	if value == nil {
33881		return nil
33882	}
33883
33884	shape, ok := value.(map[string]interface{})
33885	if !ok {
33886		return fmt.Errorf("unexpected JSON type %v", value)
33887	}
33888
33889	var sv *types.Ipv6CidrBlockAssociation
33890	if *v == nil {
33891		sv = &types.Ipv6CidrBlockAssociation{}
33892	} else {
33893		sv = *v
33894	}
33895
33896	for key, value := range shape {
33897		switch key {
33898		case "AssociationId":
33899			if value != nil {
33900				jtv, ok := value.(string)
33901				if !ok {
33902					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33903				}
33904				sv.AssociationId = ptr.String(jtv)
33905			}
33906
33907		case "CidrBlockState":
33908			if value != nil {
33909				jtv, ok := value.(string)
33910				if !ok {
33911					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33912				}
33913				sv.CidrBlockState = ptr.String(jtv)
33914			}
33915
33916		case "Ipv6CidrBlock":
33917			if value != nil {
33918				jtv, ok := value.(string)
33919				if !ok {
33920					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33921				}
33922				sv.Ipv6CidrBlock = ptr.String(jtv)
33923			}
33924
33925		default:
33926			_, _ = key, value
33927
33928		}
33929	}
33930	*v = sv
33931	return nil
33932}
33933
33934func awsRestjson1_deserializeDocumentIpv6CidrBlockAssociationList(v *[]types.Ipv6CidrBlockAssociation, value interface{}) error {
33935	if v == nil {
33936		return fmt.Errorf("unexpected nil of type %T", v)
33937	}
33938	if value == nil {
33939		return nil
33940	}
33941
33942	shape, ok := value.([]interface{})
33943	if !ok {
33944		return fmt.Errorf("unexpected JSON type %v", value)
33945	}
33946
33947	var cv []types.Ipv6CidrBlockAssociation
33948	if *v == nil {
33949		cv = []types.Ipv6CidrBlockAssociation{}
33950	} else {
33951		cv = *v
33952	}
33953
33954	for _, value := range shape {
33955		var col types.Ipv6CidrBlockAssociation
33956		destAddr := &col
33957		if err := awsRestjson1_deserializeDocumentIpv6CidrBlockAssociation(&destAddr, value); err != nil {
33958			return err
33959		}
33960		col = *destAddr
33961		cv = append(cv, col)
33962
33963	}
33964	*v = cv
33965	return nil
33966}
33967
33968func awsRestjson1_deserializeDocumentKeywordFilter(v **types.KeywordFilter, value interface{}) error {
33969	if v == nil {
33970		return fmt.Errorf("unexpected nil of type %T", v)
33971	}
33972	if value == nil {
33973		return nil
33974	}
33975
33976	shape, ok := value.(map[string]interface{})
33977	if !ok {
33978		return fmt.Errorf("unexpected JSON type %v", value)
33979	}
33980
33981	var sv *types.KeywordFilter
33982	if *v == nil {
33983		sv = &types.KeywordFilter{}
33984	} else {
33985		sv = *v
33986	}
33987
33988	for key, value := range shape {
33989		switch key {
33990		case "Value":
33991			if value != nil {
33992				jtv, ok := value.(string)
33993				if !ok {
33994					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33995				}
33996				sv.Value = ptr.String(jtv)
33997			}
33998
33999		default:
34000			_, _ = key, value
34001
34002		}
34003	}
34004	*v = sv
34005	return nil
34006}
34007
34008func awsRestjson1_deserializeDocumentKeywordFilterList(v *[]types.KeywordFilter, value interface{}) error {
34009	if v == nil {
34010		return fmt.Errorf("unexpected nil of type %T", v)
34011	}
34012	if value == nil {
34013		return nil
34014	}
34015
34016	shape, ok := value.([]interface{})
34017	if !ok {
34018		return fmt.Errorf("unexpected JSON type %v", value)
34019	}
34020
34021	var cv []types.KeywordFilter
34022	if *v == nil {
34023		cv = []types.KeywordFilter{}
34024	} else {
34025		cv = *v
34026	}
34027
34028	for _, value := range shape {
34029		var col types.KeywordFilter
34030		destAddr := &col
34031		if err := awsRestjson1_deserializeDocumentKeywordFilter(&destAddr, value); err != nil {
34032			return err
34033		}
34034		col = *destAddr
34035		cv = append(cv, col)
34036
34037	}
34038	*v = cv
34039	return nil
34040}
34041
34042func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExceededException, value interface{}) error {
34043	if v == nil {
34044		return fmt.Errorf("unexpected nil of type %T", v)
34045	}
34046	if value == nil {
34047		return nil
34048	}
34049
34050	shape, ok := value.(map[string]interface{})
34051	if !ok {
34052		return fmt.Errorf("unexpected JSON type %v", value)
34053	}
34054
34055	var sv *types.LimitExceededException
34056	if *v == nil {
34057		sv = &types.LimitExceededException{}
34058	} else {
34059		sv = *v
34060	}
34061
34062	for key, value := range shape {
34063		switch key {
34064		case "Code":
34065			if value != nil {
34066				jtv, ok := value.(string)
34067				if !ok {
34068					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34069				}
34070				sv.Code = ptr.String(jtv)
34071			}
34072
34073		case "Message":
34074			if value != nil {
34075				jtv, ok := value.(string)
34076				if !ok {
34077					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34078				}
34079				sv.Message = ptr.String(jtv)
34080			}
34081
34082		default:
34083			_, _ = key, value
34084
34085		}
34086	}
34087	*v = sv
34088	return nil
34089}
34090
34091func awsRestjson1_deserializeDocumentLoadBalancerState(v **types.LoadBalancerState, value interface{}) error {
34092	if v == nil {
34093		return fmt.Errorf("unexpected nil of type %T", v)
34094	}
34095	if value == nil {
34096		return nil
34097	}
34098
34099	shape, ok := value.(map[string]interface{})
34100	if !ok {
34101		return fmt.Errorf("unexpected JSON type %v", value)
34102	}
34103
34104	var sv *types.LoadBalancerState
34105	if *v == nil {
34106		sv = &types.LoadBalancerState{}
34107	} else {
34108		sv = *v
34109	}
34110
34111	for key, value := range shape {
34112		switch key {
34113		case "Code":
34114			if value != nil {
34115				jtv, ok := value.(string)
34116				if !ok {
34117					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34118				}
34119				sv.Code = ptr.String(jtv)
34120			}
34121
34122		case "Reason":
34123			if value != nil {
34124				jtv, ok := value.(string)
34125				if !ok {
34126					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34127				}
34128				sv.Reason = ptr.String(jtv)
34129			}
34130
34131		default:
34132			_, _ = key, value
34133
34134		}
34135	}
34136	*v = sv
34137	return nil
34138}
34139
34140func awsRestjson1_deserializeDocumentMalware(v **types.Malware, value interface{}) error {
34141	if v == nil {
34142		return fmt.Errorf("unexpected nil of type %T", v)
34143	}
34144	if value == nil {
34145		return nil
34146	}
34147
34148	shape, ok := value.(map[string]interface{})
34149	if !ok {
34150		return fmt.Errorf("unexpected JSON type %v", value)
34151	}
34152
34153	var sv *types.Malware
34154	if *v == nil {
34155		sv = &types.Malware{}
34156	} else {
34157		sv = *v
34158	}
34159
34160	for key, value := range shape {
34161		switch key {
34162		case "Name":
34163			if value != nil {
34164				jtv, ok := value.(string)
34165				if !ok {
34166					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34167				}
34168				sv.Name = ptr.String(jtv)
34169			}
34170
34171		case "Path":
34172			if value != nil {
34173				jtv, ok := value.(string)
34174				if !ok {
34175					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34176				}
34177				sv.Path = ptr.String(jtv)
34178			}
34179
34180		case "State":
34181			if value != nil {
34182				jtv, ok := value.(string)
34183				if !ok {
34184					return fmt.Errorf("expected MalwareState to be of type string, got %T instead", value)
34185				}
34186				sv.State = types.MalwareState(jtv)
34187			}
34188
34189		case "Type":
34190			if value != nil {
34191				jtv, ok := value.(string)
34192				if !ok {
34193					return fmt.Errorf("expected MalwareType to be of type string, got %T instead", value)
34194				}
34195				sv.Type = types.MalwareType(jtv)
34196			}
34197
34198		default:
34199			_, _ = key, value
34200
34201		}
34202	}
34203	*v = sv
34204	return nil
34205}
34206
34207func awsRestjson1_deserializeDocumentMalwareList(v *[]types.Malware, value interface{}) error {
34208	if v == nil {
34209		return fmt.Errorf("unexpected nil of type %T", v)
34210	}
34211	if value == nil {
34212		return nil
34213	}
34214
34215	shape, ok := value.([]interface{})
34216	if !ok {
34217		return fmt.Errorf("unexpected JSON type %v", value)
34218	}
34219
34220	var cv []types.Malware
34221	if *v == nil {
34222		cv = []types.Malware{}
34223	} else {
34224		cv = *v
34225	}
34226
34227	for _, value := range shape {
34228		var col types.Malware
34229		destAddr := &col
34230		if err := awsRestjson1_deserializeDocumentMalware(&destAddr, value); err != nil {
34231			return err
34232		}
34233		col = *destAddr
34234		cv = append(cv, col)
34235
34236	}
34237	*v = cv
34238	return nil
34239}
34240
34241func awsRestjson1_deserializeDocumentMapFilter(v **types.MapFilter, value interface{}) error {
34242	if v == nil {
34243		return fmt.Errorf("unexpected nil of type %T", v)
34244	}
34245	if value == nil {
34246		return nil
34247	}
34248
34249	shape, ok := value.(map[string]interface{})
34250	if !ok {
34251		return fmt.Errorf("unexpected JSON type %v", value)
34252	}
34253
34254	var sv *types.MapFilter
34255	if *v == nil {
34256		sv = &types.MapFilter{}
34257	} else {
34258		sv = *v
34259	}
34260
34261	for key, value := range shape {
34262		switch key {
34263		case "Comparison":
34264			if value != nil {
34265				jtv, ok := value.(string)
34266				if !ok {
34267					return fmt.Errorf("expected MapFilterComparison to be of type string, got %T instead", value)
34268				}
34269				sv.Comparison = types.MapFilterComparison(jtv)
34270			}
34271
34272		case "Key":
34273			if value != nil {
34274				jtv, ok := value.(string)
34275				if !ok {
34276					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34277				}
34278				sv.Key = ptr.String(jtv)
34279			}
34280
34281		case "Value":
34282			if value != nil {
34283				jtv, ok := value.(string)
34284				if !ok {
34285					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34286				}
34287				sv.Value = ptr.String(jtv)
34288			}
34289
34290		default:
34291			_, _ = key, value
34292
34293		}
34294	}
34295	*v = sv
34296	return nil
34297}
34298
34299func awsRestjson1_deserializeDocumentMapFilterList(v *[]types.MapFilter, value interface{}) error {
34300	if v == nil {
34301		return fmt.Errorf("unexpected nil of type %T", v)
34302	}
34303	if value == nil {
34304		return nil
34305	}
34306
34307	shape, ok := value.([]interface{})
34308	if !ok {
34309		return fmt.Errorf("unexpected JSON type %v", value)
34310	}
34311
34312	var cv []types.MapFilter
34313	if *v == nil {
34314		cv = []types.MapFilter{}
34315	} else {
34316		cv = *v
34317	}
34318
34319	for _, value := range shape {
34320		var col types.MapFilter
34321		destAddr := &col
34322		if err := awsRestjson1_deserializeDocumentMapFilter(&destAddr, value); err != nil {
34323			return err
34324		}
34325		col = *destAddr
34326		cv = append(cv, col)
34327
34328	}
34329	*v = cv
34330	return nil
34331}
34332
34333func awsRestjson1_deserializeDocumentMember(v **types.Member, value interface{}) error {
34334	if v == nil {
34335		return fmt.Errorf("unexpected nil of type %T", v)
34336	}
34337	if value == nil {
34338		return nil
34339	}
34340
34341	shape, ok := value.(map[string]interface{})
34342	if !ok {
34343		return fmt.Errorf("unexpected JSON type %v", value)
34344	}
34345
34346	var sv *types.Member
34347	if *v == nil {
34348		sv = &types.Member{}
34349	} else {
34350		sv = *v
34351	}
34352
34353	for key, value := range shape {
34354		switch key {
34355		case "AccountId":
34356			if value != nil {
34357				jtv, ok := value.(string)
34358				if !ok {
34359					return fmt.Errorf("expected AccountId to be of type string, got %T instead", value)
34360				}
34361				sv.AccountId = ptr.String(jtv)
34362			}
34363
34364		case "AdministratorId":
34365			if value != nil {
34366				jtv, ok := value.(string)
34367				if !ok {
34368					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34369				}
34370				sv.AdministratorId = ptr.String(jtv)
34371			}
34372
34373		case "Email":
34374			if value != nil {
34375				jtv, ok := value.(string)
34376				if !ok {
34377					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34378				}
34379				sv.Email = ptr.String(jtv)
34380			}
34381
34382		case "InvitedAt":
34383			if value != nil {
34384				jtv, ok := value.(string)
34385				if !ok {
34386					return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value)
34387				}
34388				t, err := smithytime.ParseDateTime(jtv)
34389				if err != nil {
34390					return err
34391				}
34392				sv.InvitedAt = ptr.Time(t)
34393			}
34394
34395		case "MasterId":
34396			if value != nil {
34397				jtv, ok := value.(string)
34398				if !ok {
34399					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34400				}
34401				sv.MasterId = ptr.String(jtv)
34402			}
34403
34404		case "MemberStatus":
34405			if value != nil {
34406				jtv, ok := value.(string)
34407				if !ok {
34408					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34409				}
34410				sv.MemberStatus = ptr.String(jtv)
34411			}
34412
34413		case "UpdatedAt":
34414			if value != nil {
34415				jtv, ok := value.(string)
34416				if !ok {
34417					return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value)
34418				}
34419				t, err := smithytime.ParseDateTime(jtv)
34420				if err != nil {
34421					return err
34422				}
34423				sv.UpdatedAt = ptr.Time(t)
34424			}
34425
34426		default:
34427			_, _ = key, value
34428
34429		}
34430	}
34431	*v = sv
34432	return nil
34433}
34434
34435func awsRestjson1_deserializeDocumentMemberList(v *[]types.Member, value interface{}) error {
34436	if v == nil {
34437		return fmt.Errorf("unexpected nil of type %T", v)
34438	}
34439	if value == nil {
34440		return nil
34441	}
34442
34443	shape, ok := value.([]interface{})
34444	if !ok {
34445		return fmt.Errorf("unexpected JSON type %v", value)
34446	}
34447
34448	var cv []types.Member
34449	if *v == nil {
34450		cv = []types.Member{}
34451	} else {
34452		cv = *v
34453	}
34454
34455	for _, value := range shape {
34456		var col types.Member
34457		destAddr := &col
34458		if err := awsRestjson1_deserializeDocumentMember(&destAddr, value); err != nil {
34459			return err
34460		}
34461		col = *destAddr
34462		cv = append(cv, col)
34463
34464	}
34465	*v = cv
34466	return nil
34467}
34468
34469func awsRestjson1_deserializeDocumentNetwork(v **types.Network, value interface{}) error {
34470	if v == nil {
34471		return fmt.Errorf("unexpected nil of type %T", v)
34472	}
34473	if value == nil {
34474		return nil
34475	}
34476
34477	shape, ok := value.(map[string]interface{})
34478	if !ok {
34479		return fmt.Errorf("unexpected JSON type %v", value)
34480	}
34481
34482	var sv *types.Network
34483	if *v == nil {
34484		sv = &types.Network{}
34485	} else {
34486		sv = *v
34487	}
34488
34489	for key, value := range shape {
34490		switch key {
34491		case "DestinationDomain":
34492			if value != nil {
34493				jtv, ok := value.(string)
34494				if !ok {
34495					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34496				}
34497				sv.DestinationDomain = ptr.String(jtv)
34498			}
34499
34500		case "DestinationIpV4":
34501			if value != nil {
34502				jtv, ok := value.(string)
34503				if !ok {
34504					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34505				}
34506				sv.DestinationIpV4 = ptr.String(jtv)
34507			}
34508
34509		case "DestinationIpV6":
34510			if value != nil {
34511				jtv, ok := value.(string)
34512				if !ok {
34513					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34514				}
34515				sv.DestinationIpV6 = ptr.String(jtv)
34516			}
34517
34518		case "DestinationPort":
34519			if value != nil {
34520				jtv, ok := value.(json.Number)
34521				if !ok {
34522					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
34523				}
34524				i64, err := jtv.Int64()
34525				if err != nil {
34526					return err
34527				}
34528				sv.DestinationPort = int32(i64)
34529			}
34530
34531		case "Direction":
34532			if value != nil {
34533				jtv, ok := value.(string)
34534				if !ok {
34535					return fmt.Errorf("expected NetworkDirection to be of type string, got %T instead", value)
34536				}
34537				sv.Direction = types.NetworkDirection(jtv)
34538			}
34539
34540		case "OpenPortRange":
34541			if err := awsRestjson1_deserializeDocumentPortRange(&sv.OpenPortRange, value); err != nil {
34542				return err
34543			}
34544
34545		case "Protocol":
34546			if value != nil {
34547				jtv, ok := value.(string)
34548				if !ok {
34549					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34550				}
34551				sv.Protocol = ptr.String(jtv)
34552			}
34553
34554		case "SourceDomain":
34555			if value != nil {
34556				jtv, ok := value.(string)
34557				if !ok {
34558					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34559				}
34560				sv.SourceDomain = ptr.String(jtv)
34561			}
34562
34563		case "SourceIpV4":
34564			if value != nil {
34565				jtv, ok := value.(string)
34566				if !ok {
34567					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34568				}
34569				sv.SourceIpV4 = ptr.String(jtv)
34570			}
34571
34572		case "SourceIpV6":
34573			if value != nil {
34574				jtv, ok := value.(string)
34575				if !ok {
34576					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34577				}
34578				sv.SourceIpV6 = ptr.String(jtv)
34579			}
34580
34581		case "SourceMac":
34582			if value != nil {
34583				jtv, ok := value.(string)
34584				if !ok {
34585					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34586				}
34587				sv.SourceMac = ptr.String(jtv)
34588			}
34589
34590		case "SourcePort":
34591			if value != nil {
34592				jtv, ok := value.(json.Number)
34593				if !ok {
34594					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
34595				}
34596				i64, err := jtv.Int64()
34597				if err != nil {
34598					return err
34599				}
34600				sv.SourcePort = int32(i64)
34601			}
34602
34603		default:
34604			_, _ = key, value
34605
34606		}
34607	}
34608	*v = sv
34609	return nil
34610}
34611
34612func awsRestjson1_deserializeDocumentNetworkConnectionAction(v **types.NetworkConnectionAction, value interface{}) error {
34613	if v == nil {
34614		return fmt.Errorf("unexpected nil of type %T", v)
34615	}
34616	if value == nil {
34617		return nil
34618	}
34619
34620	shape, ok := value.(map[string]interface{})
34621	if !ok {
34622		return fmt.Errorf("unexpected JSON type %v", value)
34623	}
34624
34625	var sv *types.NetworkConnectionAction
34626	if *v == nil {
34627		sv = &types.NetworkConnectionAction{}
34628	} else {
34629		sv = *v
34630	}
34631
34632	for key, value := range shape {
34633		switch key {
34634		case "Blocked":
34635			if value != nil {
34636				jtv, ok := value.(bool)
34637				if !ok {
34638					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34639				}
34640				sv.Blocked = jtv
34641			}
34642
34643		case "ConnectionDirection":
34644			if value != nil {
34645				jtv, ok := value.(string)
34646				if !ok {
34647					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34648				}
34649				sv.ConnectionDirection = ptr.String(jtv)
34650			}
34651
34652		case "LocalPortDetails":
34653			if err := awsRestjson1_deserializeDocumentActionLocalPortDetails(&sv.LocalPortDetails, value); err != nil {
34654				return err
34655			}
34656
34657		case "Protocol":
34658			if value != nil {
34659				jtv, ok := value.(string)
34660				if !ok {
34661					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34662				}
34663				sv.Protocol = ptr.String(jtv)
34664			}
34665
34666		case "RemoteIpDetails":
34667			if err := awsRestjson1_deserializeDocumentActionRemoteIpDetails(&sv.RemoteIpDetails, value); err != nil {
34668				return err
34669			}
34670
34671		case "RemotePortDetails":
34672			if err := awsRestjson1_deserializeDocumentActionRemotePortDetails(&sv.RemotePortDetails, value); err != nil {
34673				return err
34674			}
34675
34676		default:
34677			_, _ = key, value
34678
34679		}
34680	}
34681	*v = sv
34682	return nil
34683}
34684
34685func awsRestjson1_deserializeDocumentNetworkHeader(v **types.NetworkHeader, value interface{}) error {
34686	if v == nil {
34687		return fmt.Errorf("unexpected nil of type %T", v)
34688	}
34689	if value == nil {
34690		return nil
34691	}
34692
34693	shape, ok := value.(map[string]interface{})
34694	if !ok {
34695		return fmt.Errorf("unexpected JSON type %v", value)
34696	}
34697
34698	var sv *types.NetworkHeader
34699	if *v == nil {
34700		sv = &types.NetworkHeader{}
34701	} else {
34702		sv = *v
34703	}
34704
34705	for key, value := range shape {
34706		switch key {
34707		case "Destination":
34708			if err := awsRestjson1_deserializeDocumentNetworkPathComponentDetails(&sv.Destination, value); err != nil {
34709				return err
34710			}
34711
34712		case "Protocol":
34713			if value != nil {
34714				jtv, ok := value.(string)
34715				if !ok {
34716					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34717				}
34718				sv.Protocol = ptr.String(jtv)
34719			}
34720
34721		case "Source":
34722			if err := awsRestjson1_deserializeDocumentNetworkPathComponentDetails(&sv.Source, value); err != nil {
34723				return err
34724			}
34725
34726		default:
34727			_, _ = key, value
34728
34729		}
34730	}
34731	*v = sv
34732	return nil
34733}
34734
34735func awsRestjson1_deserializeDocumentNetworkPathComponent(v **types.NetworkPathComponent, value interface{}) error {
34736	if v == nil {
34737		return fmt.Errorf("unexpected nil of type %T", v)
34738	}
34739	if value == nil {
34740		return nil
34741	}
34742
34743	shape, ok := value.(map[string]interface{})
34744	if !ok {
34745		return fmt.Errorf("unexpected JSON type %v", value)
34746	}
34747
34748	var sv *types.NetworkPathComponent
34749	if *v == nil {
34750		sv = &types.NetworkPathComponent{}
34751	} else {
34752		sv = *v
34753	}
34754
34755	for key, value := range shape {
34756		switch key {
34757		case "ComponentId":
34758			if value != nil {
34759				jtv, ok := value.(string)
34760				if !ok {
34761					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34762				}
34763				sv.ComponentId = ptr.String(jtv)
34764			}
34765
34766		case "ComponentType":
34767			if value != nil {
34768				jtv, ok := value.(string)
34769				if !ok {
34770					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34771				}
34772				sv.ComponentType = ptr.String(jtv)
34773			}
34774
34775		case "Egress":
34776			if err := awsRestjson1_deserializeDocumentNetworkHeader(&sv.Egress, value); err != nil {
34777				return err
34778			}
34779
34780		case "Ingress":
34781			if err := awsRestjson1_deserializeDocumentNetworkHeader(&sv.Ingress, value); err != nil {
34782				return err
34783			}
34784
34785		default:
34786			_, _ = key, value
34787
34788		}
34789	}
34790	*v = sv
34791	return nil
34792}
34793
34794func awsRestjson1_deserializeDocumentNetworkPathComponentDetails(v **types.NetworkPathComponentDetails, value interface{}) error {
34795	if v == nil {
34796		return fmt.Errorf("unexpected nil of type %T", v)
34797	}
34798	if value == nil {
34799		return nil
34800	}
34801
34802	shape, ok := value.(map[string]interface{})
34803	if !ok {
34804		return fmt.Errorf("unexpected JSON type %v", value)
34805	}
34806
34807	var sv *types.NetworkPathComponentDetails
34808	if *v == nil {
34809		sv = &types.NetworkPathComponentDetails{}
34810	} else {
34811		sv = *v
34812	}
34813
34814	for key, value := range shape {
34815		switch key {
34816		case "Address":
34817			if err := awsRestjson1_deserializeDocumentStringList(&sv.Address, value); err != nil {
34818				return err
34819			}
34820
34821		case "PortRanges":
34822			if err := awsRestjson1_deserializeDocumentPortRangeList(&sv.PortRanges, value); err != nil {
34823				return err
34824			}
34825
34826		default:
34827			_, _ = key, value
34828
34829		}
34830	}
34831	*v = sv
34832	return nil
34833}
34834
34835func awsRestjson1_deserializeDocumentNetworkPathList(v *[]types.NetworkPathComponent, value interface{}) error {
34836	if v == nil {
34837		return fmt.Errorf("unexpected nil of type %T", v)
34838	}
34839	if value == nil {
34840		return nil
34841	}
34842
34843	shape, ok := value.([]interface{})
34844	if !ok {
34845		return fmt.Errorf("unexpected JSON type %v", value)
34846	}
34847
34848	var cv []types.NetworkPathComponent
34849	if *v == nil {
34850		cv = []types.NetworkPathComponent{}
34851	} else {
34852		cv = *v
34853	}
34854
34855	for _, value := range shape {
34856		var col types.NetworkPathComponent
34857		destAddr := &col
34858		if err := awsRestjson1_deserializeDocumentNetworkPathComponent(&destAddr, value); err != nil {
34859			return err
34860		}
34861		col = *destAddr
34862		cv = append(cv, col)
34863
34864	}
34865	*v = cv
34866	return nil
34867}
34868
34869func awsRestjson1_deserializeDocumentNonEmptyStringList(v *[]string, value interface{}) error {
34870	if v == nil {
34871		return fmt.Errorf("unexpected nil of type %T", v)
34872	}
34873	if value == nil {
34874		return nil
34875	}
34876
34877	shape, ok := value.([]interface{})
34878	if !ok {
34879		return fmt.Errorf("unexpected JSON type %v", value)
34880	}
34881
34882	var cv []string
34883	if *v == nil {
34884		cv = []string{}
34885	} else {
34886		cv = *v
34887	}
34888
34889	for _, value := range shape {
34890		var col string
34891		if value != nil {
34892			jtv, ok := value.(string)
34893			if !ok {
34894				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34895			}
34896			col = jtv
34897		}
34898		cv = append(cv, col)
34899
34900	}
34901	*v = cv
34902	return nil
34903}
34904
34905func awsRestjson1_deserializeDocumentNote(v **types.Note, value interface{}) error {
34906	if v == nil {
34907		return fmt.Errorf("unexpected nil of type %T", v)
34908	}
34909	if value == nil {
34910		return nil
34911	}
34912
34913	shape, ok := value.(map[string]interface{})
34914	if !ok {
34915		return fmt.Errorf("unexpected JSON type %v", value)
34916	}
34917
34918	var sv *types.Note
34919	if *v == nil {
34920		sv = &types.Note{}
34921	} else {
34922		sv = *v
34923	}
34924
34925	for key, value := range shape {
34926		switch key {
34927		case "Text":
34928			if value != nil {
34929				jtv, ok := value.(string)
34930				if !ok {
34931					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34932				}
34933				sv.Text = ptr.String(jtv)
34934			}
34935
34936		case "UpdatedAt":
34937			if value != nil {
34938				jtv, ok := value.(string)
34939				if !ok {
34940					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34941				}
34942				sv.UpdatedAt = ptr.String(jtv)
34943			}
34944
34945		case "UpdatedBy":
34946			if value != nil {
34947				jtv, ok := value.(string)
34948				if !ok {
34949					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34950				}
34951				sv.UpdatedBy = ptr.String(jtv)
34952			}
34953
34954		default:
34955			_, _ = key, value
34956
34957		}
34958	}
34959	*v = sv
34960	return nil
34961}
34962
34963func awsRestjson1_deserializeDocumentNumberFilter(v **types.NumberFilter, value interface{}) error {
34964	if v == nil {
34965		return fmt.Errorf("unexpected nil of type %T", v)
34966	}
34967	if value == nil {
34968		return nil
34969	}
34970
34971	shape, ok := value.(map[string]interface{})
34972	if !ok {
34973		return fmt.Errorf("unexpected JSON type %v", value)
34974	}
34975
34976	var sv *types.NumberFilter
34977	if *v == nil {
34978		sv = &types.NumberFilter{}
34979	} else {
34980		sv = *v
34981	}
34982
34983	for key, value := range shape {
34984		switch key {
34985		case "Eq":
34986			if value != nil {
34987				switch jtv := value.(type) {
34988				case json.Number:
34989					f64, err := jtv.Float64()
34990					if err != nil {
34991						return err
34992					}
34993					sv.Eq = f64
34994
34995				case string:
34996					var f64 float64
34997					switch {
34998					case strings.EqualFold(jtv, "NaN"):
34999						f64 = math.NaN()
35000
35001					case strings.EqualFold(jtv, "Infinity"):
35002						f64 = math.Inf(1)
35003
35004					case strings.EqualFold(jtv, "-Infinity"):
35005						f64 = math.Inf(-1)
35006
35007					default:
35008						return fmt.Errorf("unknown JSON number value: %s", jtv)
35009
35010					}
35011					sv.Eq = f64
35012
35013				default:
35014					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
35015
35016				}
35017			}
35018
35019		case "Gte":
35020			if value != nil {
35021				switch jtv := value.(type) {
35022				case json.Number:
35023					f64, err := jtv.Float64()
35024					if err != nil {
35025						return err
35026					}
35027					sv.Gte = f64
35028
35029				case string:
35030					var f64 float64
35031					switch {
35032					case strings.EqualFold(jtv, "NaN"):
35033						f64 = math.NaN()
35034
35035					case strings.EqualFold(jtv, "Infinity"):
35036						f64 = math.Inf(1)
35037
35038					case strings.EqualFold(jtv, "-Infinity"):
35039						f64 = math.Inf(-1)
35040
35041					default:
35042						return fmt.Errorf("unknown JSON number value: %s", jtv)
35043
35044					}
35045					sv.Gte = f64
35046
35047				default:
35048					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
35049
35050				}
35051			}
35052
35053		case "Lte":
35054			if value != nil {
35055				switch jtv := value.(type) {
35056				case json.Number:
35057					f64, err := jtv.Float64()
35058					if err != nil {
35059						return err
35060					}
35061					sv.Lte = f64
35062
35063				case string:
35064					var f64 float64
35065					switch {
35066					case strings.EqualFold(jtv, "NaN"):
35067						f64 = math.NaN()
35068
35069					case strings.EqualFold(jtv, "Infinity"):
35070						f64 = math.Inf(1)
35071
35072					case strings.EqualFold(jtv, "-Infinity"):
35073						f64 = math.Inf(-1)
35074
35075					default:
35076						return fmt.Errorf("unknown JSON number value: %s", jtv)
35077
35078					}
35079					sv.Lte = f64
35080
35081				default:
35082					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
35083
35084				}
35085			}
35086
35087		default:
35088			_, _ = key, value
35089
35090		}
35091	}
35092	*v = sv
35093	return nil
35094}
35095
35096func awsRestjson1_deserializeDocumentNumberFilterList(v *[]types.NumberFilter, value interface{}) error {
35097	if v == nil {
35098		return fmt.Errorf("unexpected nil of type %T", v)
35099	}
35100	if value == nil {
35101		return nil
35102	}
35103
35104	shape, ok := value.([]interface{})
35105	if !ok {
35106		return fmt.Errorf("unexpected JSON type %v", value)
35107	}
35108
35109	var cv []types.NumberFilter
35110	if *v == nil {
35111		cv = []types.NumberFilter{}
35112	} else {
35113		cv = *v
35114	}
35115
35116	for _, value := range shape {
35117		var col types.NumberFilter
35118		destAddr := &col
35119		if err := awsRestjson1_deserializeDocumentNumberFilter(&destAddr, value); err != nil {
35120			return err
35121		}
35122		col = *destAddr
35123		cv = append(cv, col)
35124
35125	}
35126	*v = cv
35127	return nil
35128}
35129
35130func awsRestjson1_deserializeDocumentOccurrences(v **types.Occurrences, value interface{}) error {
35131	if v == nil {
35132		return fmt.Errorf("unexpected nil of type %T", v)
35133	}
35134	if value == nil {
35135		return nil
35136	}
35137
35138	shape, ok := value.(map[string]interface{})
35139	if !ok {
35140		return fmt.Errorf("unexpected JSON type %v", value)
35141	}
35142
35143	var sv *types.Occurrences
35144	if *v == nil {
35145		sv = &types.Occurrences{}
35146	} else {
35147		sv = *v
35148	}
35149
35150	for key, value := range shape {
35151		switch key {
35152		case "Cells":
35153			if err := awsRestjson1_deserializeDocumentCells(&sv.Cells, value); err != nil {
35154				return err
35155			}
35156
35157		case "LineRanges":
35158			if err := awsRestjson1_deserializeDocumentRanges(&sv.LineRanges, value); err != nil {
35159				return err
35160			}
35161
35162		case "OffsetRanges":
35163			if err := awsRestjson1_deserializeDocumentRanges(&sv.OffsetRanges, value); err != nil {
35164				return err
35165			}
35166
35167		case "Pages":
35168			if err := awsRestjson1_deserializeDocumentPages(&sv.Pages, value); err != nil {
35169				return err
35170			}
35171
35172		case "Records":
35173			if err := awsRestjson1_deserializeDocumentRecords(&sv.Records, value); err != nil {
35174				return err
35175			}
35176
35177		default:
35178			_, _ = key, value
35179
35180		}
35181	}
35182	*v = sv
35183	return nil
35184}
35185
35186func awsRestjson1_deserializeDocumentPage(v **types.Page, value interface{}) error {
35187	if v == nil {
35188		return fmt.Errorf("unexpected nil of type %T", v)
35189	}
35190	if value == nil {
35191		return nil
35192	}
35193
35194	shape, ok := value.(map[string]interface{})
35195	if !ok {
35196		return fmt.Errorf("unexpected JSON type %v", value)
35197	}
35198
35199	var sv *types.Page
35200	if *v == nil {
35201		sv = &types.Page{}
35202	} else {
35203		sv = *v
35204	}
35205
35206	for key, value := range shape {
35207		switch key {
35208		case "LineRange":
35209			if err := awsRestjson1_deserializeDocumentRange(&sv.LineRange, value); err != nil {
35210				return err
35211			}
35212
35213		case "OffsetRange":
35214			if err := awsRestjson1_deserializeDocumentRange(&sv.OffsetRange, value); err != nil {
35215				return err
35216			}
35217
35218		case "PageNumber":
35219			if value != nil {
35220				jtv, ok := value.(json.Number)
35221				if !ok {
35222					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
35223				}
35224				i64, err := jtv.Int64()
35225				if err != nil {
35226					return err
35227				}
35228				sv.PageNumber = i64
35229			}
35230
35231		default:
35232			_, _ = key, value
35233
35234		}
35235	}
35236	*v = sv
35237	return nil
35238}
35239
35240func awsRestjson1_deserializeDocumentPages(v *[]types.Page, value interface{}) error {
35241	if v == nil {
35242		return fmt.Errorf("unexpected nil of type %T", v)
35243	}
35244	if value == nil {
35245		return nil
35246	}
35247
35248	shape, ok := value.([]interface{})
35249	if !ok {
35250		return fmt.Errorf("unexpected JSON type %v", value)
35251	}
35252
35253	var cv []types.Page
35254	if *v == nil {
35255		cv = []types.Page{}
35256	} else {
35257		cv = *v
35258	}
35259
35260	for _, value := range shape {
35261		var col types.Page
35262		destAddr := &col
35263		if err := awsRestjson1_deserializeDocumentPage(&destAddr, value); err != nil {
35264			return err
35265		}
35266		col = *destAddr
35267		cv = append(cv, col)
35268
35269	}
35270	*v = cv
35271	return nil
35272}
35273
35274func awsRestjson1_deserializeDocumentPatchSummary(v **types.PatchSummary, value interface{}) error {
35275	if v == nil {
35276		return fmt.Errorf("unexpected nil of type %T", v)
35277	}
35278	if value == nil {
35279		return nil
35280	}
35281
35282	shape, ok := value.(map[string]interface{})
35283	if !ok {
35284		return fmt.Errorf("unexpected JSON type %v", value)
35285	}
35286
35287	var sv *types.PatchSummary
35288	if *v == nil {
35289		sv = &types.PatchSummary{}
35290	} else {
35291		sv = *v
35292	}
35293
35294	for key, value := range shape {
35295		switch key {
35296		case "FailedCount":
35297			if value != nil {
35298				jtv, ok := value.(json.Number)
35299				if !ok {
35300					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35301				}
35302				i64, err := jtv.Int64()
35303				if err != nil {
35304					return err
35305				}
35306				sv.FailedCount = int32(i64)
35307			}
35308
35309		case "Id":
35310			if value != nil {
35311				jtv, ok := value.(string)
35312				if !ok {
35313					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35314				}
35315				sv.Id = ptr.String(jtv)
35316			}
35317
35318		case "InstalledCount":
35319			if value != nil {
35320				jtv, ok := value.(json.Number)
35321				if !ok {
35322					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35323				}
35324				i64, err := jtv.Int64()
35325				if err != nil {
35326					return err
35327				}
35328				sv.InstalledCount = int32(i64)
35329			}
35330
35331		case "InstalledOtherCount":
35332			if value != nil {
35333				jtv, ok := value.(json.Number)
35334				if !ok {
35335					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35336				}
35337				i64, err := jtv.Int64()
35338				if err != nil {
35339					return err
35340				}
35341				sv.InstalledOtherCount = int32(i64)
35342			}
35343
35344		case "InstalledPendingReboot":
35345			if value != nil {
35346				jtv, ok := value.(json.Number)
35347				if !ok {
35348					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35349				}
35350				i64, err := jtv.Int64()
35351				if err != nil {
35352					return err
35353				}
35354				sv.InstalledPendingReboot = int32(i64)
35355			}
35356
35357		case "InstalledRejectedCount":
35358			if value != nil {
35359				jtv, ok := value.(json.Number)
35360				if !ok {
35361					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35362				}
35363				i64, err := jtv.Int64()
35364				if err != nil {
35365					return err
35366				}
35367				sv.InstalledRejectedCount = int32(i64)
35368			}
35369
35370		case "MissingCount":
35371			if value != nil {
35372				jtv, ok := value.(json.Number)
35373				if !ok {
35374					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35375				}
35376				i64, err := jtv.Int64()
35377				if err != nil {
35378					return err
35379				}
35380				sv.MissingCount = int32(i64)
35381			}
35382
35383		case "Operation":
35384			if value != nil {
35385				jtv, ok := value.(string)
35386				if !ok {
35387					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35388				}
35389				sv.Operation = ptr.String(jtv)
35390			}
35391
35392		case "OperationEndTime":
35393			if value != nil {
35394				jtv, ok := value.(string)
35395				if !ok {
35396					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35397				}
35398				sv.OperationEndTime = ptr.String(jtv)
35399			}
35400
35401		case "OperationStartTime":
35402			if value != nil {
35403				jtv, ok := value.(string)
35404				if !ok {
35405					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35406				}
35407				sv.OperationStartTime = ptr.String(jtv)
35408			}
35409
35410		case "RebootOption":
35411			if value != nil {
35412				jtv, ok := value.(string)
35413				if !ok {
35414					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35415				}
35416				sv.RebootOption = ptr.String(jtv)
35417			}
35418
35419		default:
35420			_, _ = key, value
35421
35422		}
35423	}
35424	*v = sv
35425	return nil
35426}
35427
35428func awsRestjson1_deserializeDocumentPortProbeAction(v **types.PortProbeAction, value interface{}) error {
35429	if v == nil {
35430		return fmt.Errorf("unexpected nil of type %T", v)
35431	}
35432	if value == nil {
35433		return nil
35434	}
35435
35436	shape, ok := value.(map[string]interface{})
35437	if !ok {
35438		return fmt.Errorf("unexpected JSON type %v", value)
35439	}
35440
35441	var sv *types.PortProbeAction
35442	if *v == nil {
35443		sv = &types.PortProbeAction{}
35444	} else {
35445		sv = *v
35446	}
35447
35448	for key, value := range shape {
35449		switch key {
35450		case "Blocked":
35451			if value != nil {
35452				jtv, ok := value.(bool)
35453				if !ok {
35454					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
35455				}
35456				sv.Blocked = jtv
35457			}
35458
35459		case "PortProbeDetails":
35460			if err := awsRestjson1_deserializeDocumentPortProbeDetailList(&sv.PortProbeDetails, value); err != nil {
35461				return err
35462			}
35463
35464		default:
35465			_, _ = key, value
35466
35467		}
35468	}
35469	*v = sv
35470	return nil
35471}
35472
35473func awsRestjson1_deserializeDocumentPortProbeDetail(v **types.PortProbeDetail, value interface{}) error {
35474	if v == nil {
35475		return fmt.Errorf("unexpected nil of type %T", v)
35476	}
35477	if value == nil {
35478		return nil
35479	}
35480
35481	shape, ok := value.(map[string]interface{})
35482	if !ok {
35483		return fmt.Errorf("unexpected JSON type %v", value)
35484	}
35485
35486	var sv *types.PortProbeDetail
35487	if *v == nil {
35488		sv = &types.PortProbeDetail{}
35489	} else {
35490		sv = *v
35491	}
35492
35493	for key, value := range shape {
35494		switch key {
35495		case "LocalIpDetails":
35496			if err := awsRestjson1_deserializeDocumentActionLocalIpDetails(&sv.LocalIpDetails, value); err != nil {
35497				return err
35498			}
35499
35500		case "LocalPortDetails":
35501			if err := awsRestjson1_deserializeDocumentActionLocalPortDetails(&sv.LocalPortDetails, value); err != nil {
35502				return err
35503			}
35504
35505		case "RemoteIpDetails":
35506			if err := awsRestjson1_deserializeDocumentActionRemoteIpDetails(&sv.RemoteIpDetails, value); err != nil {
35507				return err
35508			}
35509
35510		default:
35511			_, _ = key, value
35512
35513		}
35514	}
35515	*v = sv
35516	return nil
35517}
35518
35519func awsRestjson1_deserializeDocumentPortProbeDetailList(v *[]types.PortProbeDetail, value interface{}) error {
35520	if v == nil {
35521		return fmt.Errorf("unexpected nil of type %T", v)
35522	}
35523	if value == nil {
35524		return nil
35525	}
35526
35527	shape, ok := value.([]interface{})
35528	if !ok {
35529		return fmt.Errorf("unexpected JSON type %v", value)
35530	}
35531
35532	var cv []types.PortProbeDetail
35533	if *v == nil {
35534		cv = []types.PortProbeDetail{}
35535	} else {
35536		cv = *v
35537	}
35538
35539	for _, value := range shape {
35540		var col types.PortProbeDetail
35541		destAddr := &col
35542		if err := awsRestjson1_deserializeDocumentPortProbeDetail(&destAddr, value); err != nil {
35543			return err
35544		}
35545		col = *destAddr
35546		cv = append(cv, col)
35547
35548	}
35549	*v = cv
35550	return nil
35551}
35552
35553func awsRestjson1_deserializeDocumentPortRange(v **types.PortRange, value interface{}) error {
35554	if v == nil {
35555		return fmt.Errorf("unexpected nil of type %T", v)
35556	}
35557	if value == nil {
35558		return nil
35559	}
35560
35561	shape, ok := value.(map[string]interface{})
35562	if !ok {
35563		return fmt.Errorf("unexpected JSON type %v", value)
35564	}
35565
35566	var sv *types.PortRange
35567	if *v == nil {
35568		sv = &types.PortRange{}
35569	} else {
35570		sv = *v
35571	}
35572
35573	for key, value := range shape {
35574		switch key {
35575		case "Begin":
35576			if value != nil {
35577				jtv, ok := value.(json.Number)
35578				if !ok {
35579					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35580				}
35581				i64, err := jtv.Int64()
35582				if err != nil {
35583					return err
35584				}
35585				sv.Begin = int32(i64)
35586			}
35587
35588		case "End":
35589			if value != nil {
35590				jtv, ok := value.(json.Number)
35591				if !ok {
35592					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35593				}
35594				i64, err := jtv.Int64()
35595				if err != nil {
35596					return err
35597				}
35598				sv.End = int32(i64)
35599			}
35600
35601		default:
35602			_, _ = key, value
35603
35604		}
35605	}
35606	*v = sv
35607	return nil
35608}
35609
35610func awsRestjson1_deserializeDocumentPortRangeFromTo(v **types.PortRangeFromTo, value interface{}) error {
35611	if v == nil {
35612		return fmt.Errorf("unexpected nil of type %T", v)
35613	}
35614	if value == nil {
35615		return nil
35616	}
35617
35618	shape, ok := value.(map[string]interface{})
35619	if !ok {
35620		return fmt.Errorf("unexpected JSON type %v", value)
35621	}
35622
35623	var sv *types.PortRangeFromTo
35624	if *v == nil {
35625		sv = &types.PortRangeFromTo{}
35626	} else {
35627		sv = *v
35628	}
35629
35630	for key, value := range shape {
35631		switch key {
35632		case "From":
35633			if value != nil {
35634				jtv, ok := value.(json.Number)
35635				if !ok {
35636					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35637				}
35638				i64, err := jtv.Int64()
35639				if err != nil {
35640					return err
35641				}
35642				sv.From = int32(i64)
35643			}
35644
35645		case "To":
35646			if value != nil {
35647				jtv, ok := value.(json.Number)
35648				if !ok {
35649					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35650				}
35651				i64, err := jtv.Int64()
35652				if err != nil {
35653					return err
35654				}
35655				sv.To = int32(i64)
35656			}
35657
35658		default:
35659			_, _ = key, value
35660
35661		}
35662	}
35663	*v = sv
35664	return nil
35665}
35666
35667func awsRestjson1_deserializeDocumentPortRangeList(v *[]types.PortRange, value interface{}) error {
35668	if v == nil {
35669		return fmt.Errorf("unexpected nil of type %T", v)
35670	}
35671	if value == nil {
35672		return nil
35673	}
35674
35675	shape, ok := value.([]interface{})
35676	if !ok {
35677		return fmt.Errorf("unexpected JSON type %v", value)
35678	}
35679
35680	var cv []types.PortRange
35681	if *v == nil {
35682		cv = []types.PortRange{}
35683	} else {
35684		cv = *v
35685	}
35686
35687	for _, value := range shape {
35688		var col types.PortRange
35689		destAddr := &col
35690		if err := awsRestjson1_deserializeDocumentPortRange(&destAddr, value); err != nil {
35691			return err
35692		}
35693		col = *destAddr
35694		cv = append(cv, col)
35695
35696	}
35697	*v = cv
35698	return nil
35699}
35700
35701func awsRestjson1_deserializeDocumentProcessDetails(v **types.ProcessDetails, value interface{}) error {
35702	if v == nil {
35703		return fmt.Errorf("unexpected nil of type %T", v)
35704	}
35705	if value == nil {
35706		return nil
35707	}
35708
35709	shape, ok := value.(map[string]interface{})
35710	if !ok {
35711		return fmt.Errorf("unexpected JSON type %v", value)
35712	}
35713
35714	var sv *types.ProcessDetails
35715	if *v == nil {
35716		sv = &types.ProcessDetails{}
35717	} else {
35718		sv = *v
35719	}
35720
35721	for key, value := range shape {
35722		switch key {
35723		case "LaunchedAt":
35724			if value != nil {
35725				jtv, ok := value.(string)
35726				if !ok {
35727					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35728				}
35729				sv.LaunchedAt = ptr.String(jtv)
35730			}
35731
35732		case "Name":
35733			if value != nil {
35734				jtv, ok := value.(string)
35735				if !ok {
35736					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35737				}
35738				sv.Name = ptr.String(jtv)
35739			}
35740
35741		case "ParentPid":
35742			if value != nil {
35743				jtv, ok := value.(json.Number)
35744				if !ok {
35745					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35746				}
35747				i64, err := jtv.Int64()
35748				if err != nil {
35749					return err
35750				}
35751				sv.ParentPid = int32(i64)
35752			}
35753
35754		case "Path":
35755			if value != nil {
35756				jtv, ok := value.(string)
35757				if !ok {
35758					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35759				}
35760				sv.Path = ptr.String(jtv)
35761			}
35762
35763		case "Pid":
35764			if value != nil {
35765				jtv, ok := value.(json.Number)
35766				if !ok {
35767					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
35768				}
35769				i64, err := jtv.Int64()
35770				if err != nil {
35771					return err
35772				}
35773				sv.Pid = int32(i64)
35774			}
35775
35776		case "TerminatedAt":
35777			if value != nil {
35778				jtv, ok := value.(string)
35779				if !ok {
35780					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35781				}
35782				sv.TerminatedAt = ptr.String(jtv)
35783			}
35784
35785		default:
35786			_, _ = key, value
35787
35788		}
35789	}
35790	*v = sv
35791	return nil
35792}
35793
35794func awsRestjson1_deserializeDocumentProduct(v **types.Product, value interface{}) error {
35795	if v == nil {
35796		return fmt.Errorf("unexpected nil of type %T", v)
35797	}
35798	if value == nil {
35799		return nil
35800	}
35801
35802	shape, ok := value.(map[string]interface{})
35803	if !ok {
35804		return fmt.Errorf("unexpected JSON type %v", value)
35805	}
35806
35807	var sv *types.Product
35808	if *v == nil {
35809		sv = &types.Product{}
35810	} else {
35811		sv = *v
35812	}
35813
35814	for key, value := range shape {
35815		switch key {
35816		case "ActivationUrl":
35817			if value != nil {
35818				jtv, ok := value.(string)
35819				if !ok {
35820					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35821				}
35822				sv.ActivationUrl = ptr.String(jtv)
35823			}
35824
35825		case "Categories":
35826			if err := awsRestjson1_deserializeDocumentCategoryList(&sv.Categories, value); err != nil {
35827				return err
35828			}
35829
35830		case "CompanyName":
35831			if value != nil {
35832				jtv, ok := value.(string)
35833				if !ok {
35834					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35835				}
35836				sv.CompanyName = ptr.String(jtv)
35837			}
35838
35839		case "Description":
35840			if value != nil {
35841				jtv, ok := value.(string)
35842				if !ok {
35843					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35844				}
35845				sv.Description = ptr.String(jtv)
35846			}
35847
35848		case "IntegrationTypes":
35849			if err := awsRestjson1_deserializeDocumentIntegrationTypeList(&sv.IntegrationTypes, value); err != nil {
35850				return err
35851			}
35852
35853		case "MarketplaceUrl":
35854			if value != nil {
35855				jtv, ok := value.(string)
35856				if !ok {
35857					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35858				}
35859				sv.MarketplaceUrl = ptr.String(jtv)
35860			}
35861
35862		case "ProductArn":
35863			if value != nil {
35864				jtv, ok := value.(string)
35865				if !ok {
35866					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35867				}
35868				sv.ProductArn = ptr.String(jtv)
35869			}
35870
35871		case "ProductName":
35872			if value != nil {
35873				jtv, ok := value.(string)
35874				if !ok {
35875					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35876				}
35877				sv.ProductName = ptr.String(jtv)
35878			}
35879
35880		case "ProductSubscriptionResourcePolicy":
35881			if value != nil {
35882				jtv, ok := value.(string)
35883				if !ok {
35884					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35885				}
35886				sv.ProductSubscriptionResourcePolicy = ptr.String(jtv)
35887			}
35888
35889		default:
35890			_, _ = key, value
35891
35892		}
35893	}
35894	*v = sv
35895	return nil
35896}
35897
35898func awsRestjson1_deserializeDocumentProductsList(v *[]types.Product, value interface{}) error {
35899	if v == nil {
35900		return fmt.Errorf("unexpected nil of type %T", v)
35901	}
35902	if value == nil {
35903		return nil
35904	}
35905
35906	shape, ok := value.([]interface{})
35907	if !ok {
35908		return fmt.Errorf("unexpected JSON type %v", value)
35909	}
35910
35911	var cv []types.Product
35912	if *v == nil {
35913		cv = []types.Product{}
35914	} else {
35915		cv = *v
35916	}
35917
35918	for _, value := range shape {
35919		var col types.Product
35920		destAddr := &col
35921		if err := awsRestjson1_deserializeDocumentProduct(&destAddr, value); err != nil {
35922			return err
35923		}
35924		col = *destAddr
35925		cv = append(cv, col)
35926
35927	}
35928	*v = cv
35929	return nil
35930}
35931
35932func awsRestjson1_deserializeDocumentProductSubscriptionArnList(v *[]string, value interface{}) error {
35933	if v == nil {
35934		return fmt.Errorf("unexpected nil of type %T", v)
35935	}
35936	if value == nil {
35937		return nil
35938	}
35939
35940	shape, ok := value.([]interface{})
35941	if !ok {
35942		return fmt.Errorf("unexpected JSON type %v", value)
35943	}
35944
35945	var cv []string
35946	if *v == nil {
35947		cv = []string{}
35948	} else {
35949		cv = *v
35950	}
35951
35952	for _, value := range shape {
35953		var col string
35954		if value != nil {
35955			jtv, ok := value.(string)
35956			if !ok {
35957				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35958			}
35959			col = jtv
35960		}
35961		cv = append(cv, col)
35962
35963	}
35964	*v = cv
35965	return nil
35966}
35967
35968func awsRestjson1_deserializeDocumentRange(v **types.Range, value interface{}) error {
35969	if v == nil {
35970		return fmt.Errorf("unexpected nil of type %T", v)
35971	}
35972	if value == nil {
35973		return nil
35974	}
35975
35976	shape, ok := value.(map[string]interface{})
35977	if !ok {
35978		return fmt.Errorf("unexpected JSON type %v", value)
35979	}
35980
35981	var sv *types.Range
35982	if *v == nil {
35983		sv = &types.Range{}
35984	} else {
35985		sv = *v
35986	}
35987
35988	for key, value := range shape {
35989		switch key {
35990		case "End":
35991			if value != nil {
35992				jtv, ok := value.(json.Number)
35993				if !ok {
35994					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
35995				}
35996				i64, err := jtv.Int64()
35997				if err != nil {
35998					return err
35999				}
36000				sv.End = i64
36001			}
36002
36003		case "Start":
36004			if value != nil {
36005				jtv, ok := value.(json.Number)
36006				if !ok {
36007					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
36008				}
36009				i64, err := jtv.Int64()
36010				if err != nil {
36011					return err
36012				}
36013				sv.Start = i64
36014			}
36015
36016		case "StartColumn":
36017			if value != nil {
36018				jtv, ok := value.(json.Number)
36019				if !ok {
36020					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
36021				}
36022				i64, err := jtv.Int64()
36023				if err != nil {
36024					return err
36025				}
36026				sv.StartColumn = i64
36027			}
36028
36029		default:
36030			_, _ = key, value
36031
36032		}
36033	}
36034	*v = sv
36035	return nil
36036}
36037
36038func awsRestjson1_deserializeDocumentRanges(v *[]types.Range, value interface{}) error {
36039	if v == nil {
36040		return fmt.Errorf("unexpected nil of type %T", v)
36041	}
36042	if value == nil {
36043		return nil
36044	}
36045
36046	shape, ok := value.([]interface{})
36047	if !ok {
36048		return fmt.Errorf("unexpected JSON type %v", value)
36049	}
36050
36051	var cv []types.Range
36052	if *v == nil {
36053		cv = []types.Range{}
36054	} else {
36055		cv = *v
36056	}
36057
36058	for _, value := range shape {
36059		var col types.Range
36060		destAddr := &col
36061		if err := awsRestjson1_deserializeDocumentRange(&destAddr, value); err != nil {
36062			return err
36063		}
36064		col = *destAddr
36065		cv = append(cv, col)
36066
36067	}
36068	*v = cv
36069	return nil
36070}
36071
36072func awsRestjson1_deserializeDocumentRecommendation(v **types.Recommendation, value interface{}) error {
36073	if v == nil {
36074		return fmt.Errorf("unexpected nil of type %T", v)
36075	}
36076	if value == nil {
36077		return nil
36078	}
36079
36080	shape, ok := value.(map[string]interface{})
36081	if !ok {
36082		return fmt.Errorf("unexpected JSON type %v", value)
36083	}
36084
36085	var sv *types.Recommendation
36086	if *v == nil {
36087		sv = &types.Recommendation{}
36088	} else {
36089		sv = *v
36090	}
36091
36092	for key, value := range shape {
36093		switch key {
36094		case "Text":
36095			if value != nil {
36096				jtv, ok := value.(string)
36097				if !ok {
36098					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36099				}
36100				sv.Text = ptr.String(jtv)
36101			}
36102
36103		case "Url":
36104			if value != nil {
36105				jtv, ok := value.(string)
36106				if !ok {
36107					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36108				}
36109				sv.Url = ptr.String(jtv)
36110			}
36111
36112		default:
36113			_, _ = key, value
36114
36115		}
36116	}
36117	*v = sv
36118	return nil
36119}
36120
36121func awsRestjson1_deserializeDocumentRecord(v **types.Record, value interface{}) error {
36122	if v == nil {
36123		return fmt.Errorf("unexpected nil of type %T", v)
36124	}
36125	if value == nil {
36126		return nil
36127	}
36128
36129	shape, ok := value.(map[string]interface{})
36130	if !ok {
36131		return fmt.Errorf("unexpected JSON type %v", value)
36132	}
36133
36134	var sv *types.Record
36135	if *v == nil {
36136		sv = &types.Record{}
36137	} else {
36138		sv = *v
36139	}
36140
36141	for key, value := range shape {
36142		switch key {
36143		case "JsonPath":
36144			if value != nil {
36145				jtv, ok := value.(string)
36146				if !ok {
36147					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36148				}
36149				sv.JsonPath = ptr.String(jtv)
36150			}
36151
36152		case "RecordIndex":
36153			if value != nil {
36154				jtv, ok := value.(json.Number)
36155				if !ok {
36156					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
36157				}
36158				i64, err := jtv.Int64()
36159				if err != nil {
36160					return err
36161				}
36162				sv.RecordIndex = i64
36163			}
36164
36165		default:
36166			_, _ = key, value
36167
36168		}
36169	}
36170	*v = sv
36171	return nil
36172}
36173
36174func awsRestjson1_deserializeDocumentRecords(v *[]types.Record, value interface{}) error {
36175	if v == nil {
36176		return fmt.Errorf("unexpected nil of type %T", v)
36177	}
36178	if value == nil {
36179		return nil
36180	}
36181
36182	shape, ok := value.([]interface{})
36183	if !ok {
36184		return fmt.Errorf("unexpected JSON type %v", value)
36185	}
36186
36187	var cv []types.Record
36188	if *v == nil {
36189		cv = []types.Record{}
36190	} else {
36191		cv = *v
36192	}
36193
36194	for _, value := range shape {
36195		var col types.Record
36196		destAddr := &col
36197		if err := awsRestjson1_deserializeDocumentRecord(&destAddr, value); err != nil {
36198			return err
36199		}
36200		col = *destAddr
36201		cv = append(cv, col)
36202
36203	}
36204	*v = cv
36205	return nil
36206}
36207
36208func awsRestjson1_deserializeDocumentRelatedFinding(v **types.RelatedFinding, value interface{}) error {
36209	if v == nil {
36210		return fmt.Errorf("unexpected nil of type %T", v)
36211	}
36212	if value == nil {
36213		return nil
36214	}
36215
36216	shape, ok := value.(map[string]interface{})
36217	if !ok {
36218		return fmt.Errorf("unexpected JSON type %v", value)
36219	}
36220
36221	var sv *types.RelatedFinding
36222	if *v == nil {
36223		sv = &types.RelatedFinding{}
36224	} else {
36225		sv = *v
36226	}
36227
36228	for key, value := range shape {
36229		switch key {
36230		case "Id":
36231			if value != nil {
36232				jtv, ok := value.(string)
36233				if !ok {
36234					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36235				}
36236				sv.Id = ptr.String(jtv)
36237			}
36238
36239		case "ProductArn":
36240			if value != nil {
36241				jtv, ok := value.(string)
36242				if !ok {
36243					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36244				}
36245				sv.ProductArn = ptr.String(jtv)
36246			}
36247
36248		default:
36249			_, _ = key, value
36250
36251		}
36252	}
36253	*v = sv
36254	return nil
36255}
36256
36257func awsRestjson1_deserializeDocumentRelatedFindingList(v *[]types.RelatedFinding, value interface{}) error {
36258	if v == nil {
36259		return fmt.Errorf("unexpected nil of type %T", v)
36260	}
36261	if value == nil {
36262		return nil
36263	}
36264
36265	shape, ok := value.([]interface{})
36266	if !ok {
36267		return fmt.Errorf("unexpected JSON type %v", value)
36268	}
36269
36270	var cv []types.RelatedFinding
36271	if *v == nil {
36272		cv = []types.RelatedFinding{}
36273	} else {
36274		cv = *v
36275	}
36276
36277	for _, value := range shape {
36278		var col types.RelatedFinding
36279		destAddr := &col
36280		if err := awsRestjson1_deserializeDocumentRelatedFinding(&destAddr, value); err != nil {
36281			return err
36282		}
36283		col = *destAddr
36284		cv = append(cv, col)
36285
36286	}
36287	*v = cv
36288	return nil
36289}
36290
36291func awsRestjson1_deserializeDocumentRelatedRequirementsList(v *[]string, value interface{}) error {
36292	if v == nil {
36293		return fmt.Errorf("unexpected nil of type %T", v)
36294	}
36295	if value == nil {
36296		return nil
36297	}
36298
36299	shape, ok := value.([]interface{})
36300	if !ok {
36301		return fmt.Errorf("unexpected JSON type %v", value)
36302	}
36303
36304	var cv []string
36305	if *v == nil {
36306		cv = []string{}
36307	} else {
36308		cv = *v
36309	}
36310
36311	for _, value := range shape {
36312		var col string
36313		if value != nil {
36314			jtv, ok := value.(string)
36315			if !ok {
36316				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36317			}
36318			col = jtv
36319		}
36320		cv = append(cv, col)
36321
36322	}
36323	*v = cv
36324	return nil
36325}
36326
36327func awsRestjson1_deserializeDocumentRemediation(v **types.Remediation, value interface{}) error {
36328	if v == nil {
36329		return fmt.Errorf("unexpected nil of type %T", v)
36330	}
36331	if value == nil {
36332		return nil
36333	}
36334
36335	shape, ok := value.(map[string]interface{})
36336	if !ok {
36337		return fmt.Errorf("unexpected JSON type %v", value)
36338	}
36339
36340	var sv *types.Remediation
36341	if *v == nil {
36342		sv = &types.Remediation{}
36343	} else {
36344		sv = *v
36345	}
36346
36347	for key, value := range shape {
36348		switch key {
36349		case "Recommendation":
36350			if err := awsRestjson1_deserializeDocumentRecommendation(&sv.Recommendation, value); err != nil {
36351				return err
36352			}
36353
36354		default:
36355			_, _ = key, value
36356
36357		}
36358	}
36359	*v = sv
36360	return nil
36361}
36362
36363func awsRestjson1_deserializeDocumentResource(v **types.Resource, value interface{}) error {
36364	if v == nil {
36365		return fmt.Errorf("unexpected nil of type %T", v)
36366	}
36367	if value == nil {
36368		return nil
36369	}
36370
36371	shape, ok := value.(map[string]interface{})
36372	if !ok {
36373		return fmt.Errorf("unexpected JSON type %v", value)
36374	}
36375
36376	var sv *types.Resource
36377	if *v == nil {
36378		sv = &types.Resource{}
36379	} else {
36380		sv = *v
36381	}
36382
36383	for key, value := range shape {
36384		switch key {
36385		case "DataClassification":
36386			if err := awsRestjson1_deserializeDocumentDataClassificationDetails(&sv.DataClassification, value); err != nil {
36387				return err
36388			}
36389
36390		case "Details":
36391			if err := awsRestjson1_deserializeDocumentResourceDetails(&sv.Details, value); err != nil {
36392				return err
36393			}
36394
36395		case "Id":
36396			if value != nil {
36397				jtv, ok := value.(string)
36398				if !ok {
36399					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36400				}
36401				sv.Id = ptr.String(jtv)
36402			}
36403
36404		case "Partition":
36405			if value != nil {
36406				jtv, ok := value.(string)
36407				if !ok {
36408					return fmt.Errorf("expected Partition to be of type string, got %T instead", value)
36409				}
36410				sv.Partition = types.Partition(jtv)
36411			}
36412
36413		case "Region":
36414			if value != nil {
36415				jtv, ok := value.(string)
36416				if !ok {
36417					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36418				}
36419				sv.Region = ptr.String(jtv)
36420			}
36421
36422		case "ResourceRole":
36423			if value != nil {
36424				jtv, ok := value.(string)
36425				if !ok {
36426					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36427				}
36428				sv.ResourceRole = ptr.String(jtv)
36429			}
36430
36431		case "Tags":
36432			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Tags, value); err != nil {
36433				return err
36434			}
36435
36436		case "Type":
36437			if value != nil {
36438				jtv, ok := value.(string)
36439				if !ok {
36440					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36441				}
36442				sv.Type = ptr.String(jtv)
36443			}
36444
36445		default:
36446			_, _ = key, value
36447
36448		}
36449	}
36450	*v = sv
36451	return nil
36452}
36453
36454func awsRestjson1_deserializeDocumentResourceConflictException(v **types.ResourceConflictException, value interface{}) error {
36455	if v == nil {
36456		return fmt.Errorf("unexpected nil of type %T", v)
36457	}
36458	if value == nil {
36459		return nil
36460	}
36461
36462	shape, ok := value.(map[string]interface{})
36463	if !ok {
36464		return fmt.Errorf("unexpected JSON type %v", value)
36465	}
36466
36467	var sv *types.ResourceConflictException
36468	if *v == nil {
36469		sv = &types.ResourceConflictException{}
36470	} else {
36471		sv = *v
36472	}
36473
36474	for key, value := range shape {
36475		switch key {
36476		case "Code":
36477			if value != nil {
36478				jtv, ok := value.(string)
36479				if !ok {
36480					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36481				}
36482				sv.Code = ptr.String(jtv)
36483			}
36484
36485		case "Message":
36486			if value != nil {
36487				jtv, ok := value.(string)
36488				if !ok {
36489					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36490				}
36491				sv.Message = ptr.String(jtv)
36492			}
36493
36494		default:
36495			_, _ = key, value
36496
36497		}
36498	}
36499	*v = sv
36500	return nil
36501}
36502
36503func awsRestjson1_deserializeDocumentResourceDetails(v **types.ResourceDetails, value interface{}) error {
36504	if v == nil {
36505		return fmt.Errorf("unexpected nil of type %T", v)
36506	}
36507	if value == nil {
36508		return nil
36509	}
36510
36511	shape, ok := value.(map[string]interface{})
36512	if !ok {
36513		return fmt.Errorf("unexpected JSON type %v", value)
36514	}
36515
36516	var sv *types.ResourceDetails
36517	if *v == nil {
36518		sv = &types.ResourceDetails{}
36519	} else {
36520		sv = *v
36521	}
36522
36523	for key, value := range shape {
36524		switch key {
36525		case "AwsApiGatewayRestApi":
36526			if err := awsRestjson1_deserializeDocumentAwsApiGatewayRestApiDetails(&sv.AwsApiGatewayRestApi, value); err != nil {
36527				return err
36528			}
36529
36530		case "AwsApiGatewayStage":
36531			if err := awsRestjson1_deserializeDocumentAwsApiGatewayStageDetails(&sv.AwsApiGatewayStage, value); err != nil {
36532				return err
36533			}
36534
36535		case "AwsApiGatewayV2Api":
36536			if err := awsRestjson1_deserializeDocumentAwsApiGatewayV2ApiDetails(&sv.AwsApiGatewayV2Api, value); err != nil {
36537				return err
36538			}
36539
36540		case "AwsApiGatewayV2Stage":
36541			if err := awsRestjson1_deserializeDocumentAwsApiGatewayV2StageDetails(&sv.AwsApiGatewayV2Stage, value); err != nil {
36542				return err
36543			}
36544
36545		case "AwsAutoScalingAutoScalingGroup":
36546			if err := awsRestjson1_deserializeDocumentAwsAutoScalingAutoScalingGroupDetails(&sv.AwsAutoScalingAutoScalingGroup, value); err != nil {
36547				return err
36548			}
36549
36550		case "AwsAutoScalingLaunchConfiguration":
36551			if err := awsRestjson1_deserializeDocumentAwsAutoScalingLaunchConfigurationDetails(&sv.AwsAutoScalingLaunchConfiguration, value); err != nil {
36552				return err
36553			}
36554
36555		case "AwsCertificateManagerCertificate":
36556			if err := awsRestjson1_deserializeDocumentAwsCertificateManagerCertificateDetails(&sv.AwsCertificateManagerCertificate, value); err != nil {
36557				return err
36558			}
36559
36560		case "AwsCloudFrontDistribution":
36561			if err := awsRestjson1_deserializeDocumentAwsCloudFrontDistributionDetails(&sv.AwsCloudFrontDistribution, value); err != nil {
36562				return err
36563			}
36564
36565		case "AwsCloudTrailTrail":
36566			if err := awsRestjson1_deserializeDocumentAwsCloudTrailTrailDetails(&sv.AwsCloudTrailTrail, value); err != nil {
36567				return err
36568			}
36569
36570		case "AwsCodeBuildProject":
36571			if err := awsRestjson1_deserializeDocumentAwsCodeBuildProjectDetails(&sv.AwsCodeBuildProject, value); err != nil {
36572				return err
36573			}
36574
36575		case "AwsDynamoDbTable":
36576			if err := awsRestjson1_deserializeDocumentAwsDynamoDbTableDetails(&sv.AwsDynamoDbTable, value); err != nil {
36577				return err
36578			}
36579
36580		case "AwsEc2Eip":
36581			if err := awsRestjson1_deserializeDocumentAwsEc2EipDetails(&sv.AwsEc2Eip, value); err != nil {
36582				return err
36583			}
36584
36585		case "AwsEc2Instance":
36586			if err := awsRestjson1_deserializeDocumentAwsEc2InstanceDetails(&sv.AwsEc2Instance, value); err != nil {
36587				return err
36588			}
36589
36590		case "AwsEc2NetworkAcl":
36591			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkAclDetails(&sv.AwsEc2NetworkAcl, value); err != nil {
36592				return err
36593			}
36594
36595		case "AwsEc2NetworkInterface":
36596			if err := awsRestjson1_deserializeDocumentAwsEc2NetworkInterfaceDetails(&sv.AwsEc2NetworkInterface, value); err != nil {
36597				return err
36598			}
36599
36600		case "AwsEc2SecurityGroup":
36601			if err := awsRestjson1_deserializeDocumentAwsEc2SecurityGroupDetails(&sv.AwsEc2SecurityGroup, value); err != nil {
36602				return err
36603			}
36604
36605		case "AwsEc2Subnet":
36606			if err := awsRestjson1_deserializeDocumentAwsEc2SubnetDetails(&sv.AwsEc2Subnet, value); err != nil {
36607				return err
36608			}
36609
36610		case "AwsEc2Volume":
36611			if err := awsRestjson1_deserializeDocumentAwsEc2VolumeDetails(&sv.AwsEc2Volume, value); err != nil {
36612				return err
36613			}
36614
36615		case "AwsEc2Vpc":
36616			if err := awsRestjson1_deserializeDocumentAwsEc2VpcDetails(&sv.AwsEc2Vpc, value); err != nil {
36617				return err
36618			}
36619
36620		case "AwsEc2VpnConnection":
36621			if err := awsRestjson1_deserializeDocumentAwsEc2VpnConnectionDetails(&sv.AwsEc2VpnConnection, value); err != nil {
36622				return err
36623			}
36624
36625		case "AwsEcrContainerImage":
36626			if err := awsRestjson1_deserializeDocumentAwsEcrContainerImageDetails(&sv.AwsEcrContainerImage, value); err != nil {
36627				return err
36628			}
36629
36630		case "AwsEcsCluster":
36631			if err := awsRestjson1_deserializeDocumentAwsEcsClusterDetails(&sv.AwsEcsCluster, value); err != nil {
36632				return err
36633			}
36634
36635		case "AwsEcsService":
36636			if err := awsRestjson1_deserializeDocumentAwsEcsServiceDetails(&sv.AwsEcsService, value); err != nil {
36637				return err
36638			}
36639
36640		case "AwsEcsTaskDefinition":
36641			if err := awsRestjson1_deserializeDocumentAwsEcsTaskDefinitionDetails(&sv.AwsEcsTaskDefinition, value); err != nil {
36642				return err
36643			}
36644
36645		case "AwsElasticBeanstalkEnvironment":
36646			if err := awsRestjson1_deserializeDocumentAwsElasticBeanstalkEnvironmentDetails(&sv.AwsElasticBeanstalkEnvironment, value); err != nil {
36647				return err
36648			}
36649
36650		case "AwsElasticsearchDomain":
36651			if err := awsRestjson1_deserializeDocumentAwsElasticsearchDomainDetails(&sv.AwsElasticsearchDomain, value); err != nil {
36652				return err
36653			}
36654
36655		case "AwsElbLoadBalancer":
36656			if err := awsRestjson1_deserializeDocumentAwsElbLoadBalancerDetails(&sv.AwsElbLoadBalancer, value); err != nil {
36657				return err
36658			}
36659
36660		case "AwsElbv2LoadBalancer":
36661			if err := awsRestjson1_deserializeDocumentAwsElbv2LoadBalancerDetails(&sv.AwsElbv2LoadBalancer, value); err != nil {
36662				return err
36663			}
36664
36665		case "AwsIamAccessKey":
36666			if err := awsRestjson1_deserializeDocumentAwsIamAccessKeyDetails(&sv.AwsIamAccessKey, value); err != nil {
36667				return err
36668			}
36669
36670		case "AwsIamGroup":
36671			if err := awsRestjson1_deserializeDocumentAwsIamGroupDetails(&sv.AwsIamGroup, value); err != nil {
36672				return err
36673			}
36674
36675		case "AwsIamPolicy":
36676			if err := awsRestjson1_deserializeDocumentAwsIamPolicyDetails(&sv.AwsIamPolicy, value); err != nil {
36677				return err
36678			}
36679
36680		case "AwsIamRole":
36681			if err := awsRestjson1_deserializeDocumentAwsIamRoleDetails(&sv.AwsIamRole, value); err != nil {
36682				return err
36683			}
36684
36685		case "AwsIamUser":
36686			if err := awsRestjson1_deserializeDocumentAwsIamUserDetails(&sv.AwsIamUser, value); err != nil {
36687				return err
36688			}
36689
36690		case "AwsKmsKey":
36691			if err := awsRestjson1_deserializeDocumentAwsKmsKeyDetails(&sv.AwsKmsKey, value); err != nil {
36692				return err
36693			}
36694
36695		case "AwsLambdaFunction":
36696			if err := awsRestjson1_deserializeDocumentAwsLambdaFunctionDetails(&sv.AwsLambdaFunction, value); err != nil {
36697				return err
36698			}
36699
36700		case "AwsLambdaLayerVersion":
36701			if err := awsRestjson1_deserializeDocumentAwsLambdaLayerVersionDetails(&sv.AwsLambdaLayerVersion, value); err != nil {
36702				return err
36703			}
36704
36705		case "AwsRdsDbCluster":
36706			if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterDetails(&sv.AwsRdsDbCluster, value); err != nil {
36707				return err
36708			}
36709
36710		case "AwsRdsDbClusterSnapshot":
36711			if err := awsRestjson1_deserializeDocumentAwsRdsDbClusterSnapshotDetails(&sv.AwsRdsDbClusterSnapshot, value); err != nil {
36712				return err
36713			}
36714
36715		case "AwsRdsDbInstance":
36716			if err := awsRestjson1_deserializeDocumentAwsRdsDbInstanceDetails(&sv.AwsRdsDbInstance, value); err != nil {
36717				return err
36718			}
36719
36720		case "AwsRdsDbSnapshot":
36721			if err := awsRestjson1_deserializeDocumentAwsRdsDbSnapshotDetails(&sv.AwsRdsDbSnapshot, value); err != nil {
36722				return err
36723			}
36724
36725		case "AwsRdsEventSubscription":
36726			if err := awsRestjson1_deserializeDocumentAwsRdsEventSubscriptionDetails(&sv.AwsRdsEventSubscription, value); err != nil {
36727				return err
36728			}
36729
36730		case "AwsRedshiftCluster":
36731			if err := awsRestjson1_deserializeDocumentAwsRedshiftClusterDetails(&sv.AwsRedshiftCluster, value); err != nil {
36732				return err
36733			}
36734
36735		case "AwsS3AccountPublicAccessBlock":
36736			if err := awsRestjson1_deserializeDocumentAwsS3AccountPublicAccessBlockDetails(&sv.AwsS3AccountPublicAccessBlock, value); err != nil {
36737				return err
36738			}
36739
36740		case "AwsS3Bucket":
36741			if err := awsRestjson1_deserializeDocumentAwsS3BucketDetails(&sv.AwsS3Bucket, value); err != nil {
36742				return err
36743			}
36744
36745		case "AwsS3Object":
36746			if err := awsRestjson1_deserializeDocumentAwsS3ObjectDetails(&sv.AwsS3Object, value); err != nil {
36747				return err
36748			}
36749
36750		case "AwsSecretsManagerSecret":
36751			if err := awsRestjson1_deserializeDocumentAwsSecretsManagerSecretDetails(&sv.AwsSecretsManagerSecret, value); err != nil {
36752				return err
36753			}
36754
36755		case "AwsSnsTopic":
36756			if err := awsRestjson1_deserializeDocumentAwsSnsTopicDetails(&sv.AwsSnsTopic, value); err != nil {
36757				return err
36758			}
36759
36760		case "AwsSqsQueue":
36761			if err := awsRestjson1_deserializeDocumentAwsSqsQueueDetails(&sv.AwsSqsQueue, value); err != nil {
36762				return err
36763			}
36764
36765		case "AwsSsmPatchCompliance":
36766			if err := awsRestjson1_deserializeDocumentAwsSsmPatchComplianceDetails(&sv.AwsSsmPatchCompliance, value); err != nil {
36767				return err
36768			}
36769
36770		case "AwsWafWebAcl":
36771			if err := awsRestjson1_deserializeDocumentAwsWafWebAclDetails(&sv.AwsWafWebAcl, value); err != nil {
36772				return err
36773			}
36774
36775		case "Container":
36776			if err := awsRestjson1_deserializeDocumentContainerDetails(&sv.Container, value); err != nil {
36777				return err
36778			}
36779
36780		case "Other":
36781			if err := awsRestjson1_deserializeDocumentFieldMap(&sv.Other, value); err != nil {
36782				return err
36783			}
36784
36785		default:
36786			_, _ = key, value
36787
36788		}
36789	}
36790	*v = sv
36791	return nil
36792}
36793
36794func awsRestjson1_deserializeDocumentResourceList(v *[]types.Resource, value interface{}) error {
36795	if v == nil {
36796		return fmt.Errorf("unexpected nil of type %T", v)
36797	}
36798	if value == nil {
36799		return nil
36800	}
36801
36802	shape, ok := value.([]interface{})
36803	if !ok {
36804		return fmt.Errorf("unexpected JSON type %v", value)
36805	}
36806
36807	var cv []types.Resource
36808	if *v == nil {
36809		cv = []types.Resource{}
36810	} else {
36811		cv = *v
36812	}
36813
36814	for _, value := range shape {
36815		var col types.Resource
36816		destAddr := &col
36817		if err := awsRestjson1_deserializeDocumentResource(&destAddr, value); err != nil {
36818			return err
36819		}
36820		col = *destAddr
36821		cv = append(cv, col)
36822
36823	}
36824	*v = cv
36825	return nil
36826}
36827
36828func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error {
36829	if v == nil {
36830		return fmt.Errorf("unexpected nil of type %T", v)
36831	}
36832	if value == nil {
36833		return nil
36834	}
36835
36836	shape, ok := value.(map[string]interface{})
36837	if !ok {
36838		return fmt.Errorf("unexpected JSON type %v", value)
36839	}
36840
36841	var sv *types.ResourceNotFoundException
36842	if *v == nil {
36843		sv = &types.ResourceNotFoundException{}
36844	} else {
36845		sv = *v
36846	}
36847
36848	for key, value := range shape {
36849		switch key {
36850		case "Code":
36851			if value != nil {
36852				jtv, ok := value.(string)
36853				if !ok {
36854					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36855				}
36856				sv.Code = ptr.String(jtv)
36857			}
36858
36859		case "Message":
36860			if value != nil {
36861				jtv, ok := value.(string)
36862				if !ok {
36863					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36864				}
36865				sv.Message = ptr.String(jtv)
36866			}
36867
36868		default:
36869			_, _ = key, value
36870
36871		}
36872	}
36873	*v = sv
36874	return nil
36875}
36876
36877func awsRestjson1_deserializeDocumentResult(v **types.Result, value interface{}) error {
36878	if v == nil {
36879		return fmt.Errorf("unexpected nil of type %T", v)
36880	}
36881	if value == nil {
36882		return nil
36883	}
36884
36885	shape, ok := value.(map[string]interface{})
36886	if !ok {
36887		return fmt.Errorf("unexpected JSON type %v", value)
36888	}
36889
36890	var sv *types.Result
36891	if *v == nil {
36892		sv = &types.Result{}
36893	} else {
36894		sv = *v
36895	}
36896
36897	for key, value := range shape {
36898		switch key {
36899		case "AccountId":
36900			if value != nil {
36901				jtv, ok := value.(string)
36902				if !ok {
36903					return fmt.Errorf("expected AccountId to be of type string, got %T instead", value)
36904				}
36905				sv.AccountId = ptr.String(jtv)
36906			}
36907
36908		case "ProcessingResult":
36909			if value != nil {
36910				jtv, ok := value.(string)
36911				if !ok {
36912					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36913				}
36914				sv.ProcessingResult = ptr.String(jtv)
36915			}
36916
36917		default:
36918			_, _ = key, value
36919
36920		}
36921	}
36922	*v = sv
36923	return nil
36924}
36925
36926func awsRestjson1_deserializeDocumentResultList(v *[]types.Result, value interface{}) error {
36927	if v == nil {
36928		return fmt.Errorf("unexpected nil of type %T", v)
36929	}
36930	if value == nil {
36931		return nil
36932	}
36933
36934	shape, ok := value.([]interface{})
36935	if !ok {
36936		return fmt.Errorf("unexpected JSON type %v", value)
36937	}
36938
36939	var cv []types.Result
36940	if *v == nil {
36941		cv = []types.Result{}
36942	} else {
36943		cv = *v
36944	}
36945
36946	for _, value := range shape {
36947		var col types.Result
36948		destAddr := &col
36949		if err := awsRestjson1_deserializeDocumentResult(&destAddr, value); err != nil {
36950			return err
36951		}
36952		col = *destAddr
36953		cv = append(cv, col)
36954
36955	}
36956	*v = cv
36957	return nil
36958}
36959
36960func awsRestjson1_deserializeDocumentSecurityGroups(v *[]string, value interface{}) error {
36961	if v == nil {
36962		return fmt.Errorf("unexpected nil of type %T", v)
36963	}
36964	if value == nil {
36965		return nil
36966	}
36967
36968	shape, ok := value.([]interface{})
36969	if !ok {
36970		return fmt.Errorf("unexpected JSON type %v", value)
36971	}
36972
36973	var cv []string
36974	if *v == nil {
36975		cv = []string{}
36976	} else {
36977		cv = *v
36978	}
36979
36980	for _, value := range shape {
36981		var col string
36982		if value != nil {
36983			jtv, ok := value.(string)
36984			if !ok {
36985				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36986			}
36987			col = jtv
36988		}
36989		cv = append(cv, col)
36990
36991	}
36992	*v = cv
36993	return nil
36994}
36995
36996func awsRestjson1_deserializeDocumentSensitiveDataDetections(v **types.SensitiveDataDetections, value interface{}) error {
36997	if v == nil {
36998		return fmt.Errorf("unexpected nil of type %T", v)
36999	}
37000	if value == nil {
37001		return nil
37002	}
37003
37004	shape, ok := value.(map[string]interface{})
37005	if !ok {
37006		return fmt.Errorf("unexpected JSON type %v", value)
37007	}
37008
37009	var sv *types.SensitiveDataDetections
37010	if *v == nil {
37011		sv = &types.SensitiveDataDetections{}
37012	} else {
37013		sv = *v
37014	}
37015
37016	for key, value := range shape {
37017		switch key {
37018		case "Count":
37019			if value != nil {
37020				jtv, ok := value.(json.Number)
37021				if !ok {
37022					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
37023				}
37024				i64, err := jtv.Int64()
37025				if err != nil {
37026					return err
37027				}
37028				sv.Count = i64
37029			}
37030
37031		case "Occurrences":
37032			if err := awsRestjson1_deserializeDocumentOccurrences(&sv.Occurrences, value); err != nil {
37033				return err
37034			}
37035
37036		case "Type":
37037			if value != nil {
37038				jtv, ok := value.(string)
37039				if !ok {
37040					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37041				}
37042				sv.Type = ptr.String(jtv)
37043			}
37044
37045		default:
37046			_, _ = key, value
37047
37048		}
37049	}
37050	*v = sv
37051	return nil
37052}
37053
37054func awsRestjson1_deserializeDocumentSensitiveDataDetectionsList(v *[]types.SensitiveDataDetections, value interface{}) error {
37055	if v == nil {
37056		return fmt.Errorf("unexpected nil of type %T", v)
37057	}
37058	if value == nil {
37059		return nil
37060	}
37061
37062	shape, ok := value.([]interface{})
37063	if !ok {
37064		return fmt.Errorf("unexpected JSON type %v", value)
37065	}
37066
37067	var cv []types.SensitiveDataDetections
37068	if *v == nil {
37069		cv = []types.SensitiveDataDetections{}
37070	} else {
37071		cv = *v
37072	}
37073
37074	for _, value := range shape {
37075		var col types.SensitiveDataDetections
37076		destAddr := &col
37077		if err := awsRestjson1_deserializeDocumentSensitiveDataDetections(&destAddr, value); err != nil {
37078			return err
37079		}
37080		col = *destAddr
37081		cv = append(cv, col)
37082
37083	}
37084	*v = cv
37085	return nil
37086}
37087
37088func awsRestjson1_deserializeDocumentSensitiveDataResult(v **types.SensitiveDataResult, value interface{}) error {
37089	if v == nil {
37090		return fmt.Errorf("unexpected nil of type %T", v)
37091	}
37092	if value == nil {
37093		return nil
37094	}
37095
37096	shape, ok := value.(map[string]interface{})
37097	if !ok {
37098		return fmt.Errorf("unexpected JSON type %v", value)
37099	}
37100
37101	var sv *types.SensitiveDataResult
37102	if *v == nil {
37103		sv = &types.SensitiveDataResult{}
37104	} else {
37105		sv = *v
37106	}
37107
37108	for key, value := range shape {
37109		switch key {
37110		case "Category":
37111			if value != nil {
37112				jtv, ok := value.(string)
37113				if !ok {
37114					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37115				}
37116				sv.Category = ptr.String(jtv)
37117			}
37118
37119		case "Detections":
37120			if err := awsRestjson1_deserializeDocumentSensitiveDataDetectionsList(&sv.Detections, value); err != nil {
37121				return err
37122			}
37123
37124		case "TotalCount":
37125			if value != nil {
37126				jtv, ok := value.(json.Number)
37127				if !ok {
37128					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
37129				}
37130				i64, err := jtv.Int64()
37131				if err != nil {
37132					return err
37133				}
37134				sv.TotalCount = i64
37135			}
37136
37137		default:
37138			_, _ = key, value
37139
37140		}
37141	}
37142	*v = sv
37143	return nil
37144}
37145
37146func awsRestjson1_deserializeDocumentSensitiveDataResultList(v *[]types.SensitiveDataResult, value interface{}) error {
37147	if v == nil {
37148		return fmt.Errorf("unexpected nil of type %T", v)
37149	}
37150	if value == nil {
37151		return nil
37152	}
37153
37154	shape, ok := value.([]interface{})
37155	if !ok {
37156		return fmt.Errorf("unexpected JSON type %v", value)
37157	}
37158
37159	var cv []types.SensitiveDataResult
37160	if *v == nil {
37161		cv = []types.SensitiveDataResult{}
37162	} else {
37163		cv = *v
37164	}
37165
37166	for _, value := range shape {
37167		var col types.SensitiveDataResult
37168		destAddr := &col
37169		if err := awsRestjson1_deserializeDocumentSensitiveDataResult(&destAddr, value); err != nil {
37170			return err
37171		}
37172		col = *destAddr
37173		cv = append(cv, col)
37174
37175	}
37176	*v = cv
37177	return nil
37178}
37179
37180func awsRestjson1_deserializeDocumentSeverity(v **types.Severity, value interface{}) error {
37181	if v == nil {
37182		return fmt.Errorf("unexpected nil of type %T", v)
37183	}
37184	if value == nil {
37185		return nil
37186	}
37187
37188	shape, ok := value.(map[string]interface{})
37189	if !ok {
37190		return fmt.Errorf("unexpected JSON type %v", value)
37191	}
37192
37193	var sv *types.Severity
37194	if *v == nil {
37195		sv = &types.Severity{}
37196	} else {
37197		sv = *v
37198	}
37199
37200	for key, value := range shape {
37201		switch key {
37202		case "Label":
37203			if value != nil {
37204				jtv, ok := value.(string)
37205				if !ok {
37206					return fmt.Errorf("expected SeverityLabel to be of type string, got %T instead", value)
37207				}
37208				sv.Label = types.SeverityLabel(jtv)
37209			}
37210
37211		case "Normalized":
37212			if value != nil {
37213				jtv, ok := value.(json.Number)
37214				if !ok {
37215					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
37216				}
37217				i64, err := jtv.Int64()
37218				if err != nil {
37219					return err
37220				}
37221				sv.Normalized = int32(i64)
37222			}
37223
37224		case "Original":
37225			if value != nil {
37226				jtv, ok := value.(string)
37227				if !ok {
37228					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37229				}
37230				sv.Original = ptr.String(jtv)
37231			}
37232
37233		case "Product":
37234			if value != nil {
37235				switch jtv := value.(type) {
37236				case json.Number:
37237					f64, err := jtv.Float64()
37238					if err != nil {
37239						return err
37240					}
37241					sv.Product = f64
37242
37243				case string:
37244					var f64 float64
37245					switch {
37246					case strings.EqualFold(jtv, "NaN"):
37247						f64 = math.NaN()
37248
37249					case strings.EqualFold(jtv, "Infinity"):
37250						f64 = math.Inf(1)
37251
37252					case strings.EqualFold(jtv, "-Infinity"):
37253						f64 = math.Inf(-1)
37254
37255					default:
37256						return fmt.Errorf("unknown JSON number value: %s", jtv)
37257
37258					}
37259					sv.Product = f64
37260
37261				default:
37262					return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
37263
37264				}
37265			}
37266
37267		default:
37268			_, _ = key, value
37269
37270		}
37271	}
37272	*v = sv
37273	return nil
37274}
37275
37276func awsRestjson1_deserializeDocumentSoftwarePackage(v **types.SoftwarePackage, value interface{}) error {
37277	if v == nil {
37278		return fmt.Errorf("unexpected nil of type %T", v)
37279	}
37280	if value == nil {
37281		return nil
37282	}
37283
37284	shape, ok := value.(map[string]interface{})
37285	if !ok {
37286		return fmt.Errorf("unexpected JSON type %v", value)
37287	}
37288
37289	var sv *types.SoftwarePackage
37290	if *v == nil {
37291		sv = &types.SoftwarePackage{}
37292	} else {
37293		sv = *v
37294	}
37295
37296	for key, value := range shape {
37297		switch key {
37298		case "Architecture":
37299			if value != nil {
37300				jtv, ok := value.(string)
37301				if !ok {
37302					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37303				}
37304				sv.Architecture = ptr.String(jtv)
37305			}
37306
37307		case "Epoch":
37308			if value != nil {
37309				jtv, ok := value.(string)
37310				if !ok {
37311					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37312				}
37313				sv.Epoch = ptr.String(jtv)
37314			}
37315
37316		case "FilePath":
37317			if value != nil {
37318				jtv, ok := value.(string)
37319				if !ok {
37320					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37321				}
37322				sv.FilePath = ptr.String(jtv)
37323			}
37324
37325		case "Name":
37326			if value != nil {
37327				jtv, ok := value.(string)
37328				if !ok {
37329					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37330				}
37331				sv.Name = ptr.String(jtv)
37332			}
37333
37334		case "PackageManager":
37335			if value != nil {
37336				jtv, ok := value.(string)
37337				if !ok {
37338					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37339				}
37340				sv.PackageManager = ptr.String(jtv)
37341			}
37342
37343		case "Release":
37344			if value != nil {
37345				jtv, ok := value.(string)
37346				if !ok {
37347					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37348				}
37349				sv.Release = ptr.String(jtv)
37350			}
37351
37352		case "Version":
37353			if value != nil {
37354				jtv, ok := value.(string)
37355				if !ok {
37356					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37357				}
37358				sv.Version = ptr.String(jtv)
37359			}
37360
37361		default:
37362			_, _ = key, value
37363
37364		}
37365	}
37366	*v = sv
37367	return nil
37368}
37369
37370func awsRestjson1_deserializeDocumentSoftwarePackageList(v *[]types.SoftwarePackage, value interface{}) error {
37371	if v == nil {
37372		return fmt.Errorf("unexpected nil of type %T", v)
37373	}
37374	if value == nil {
37375		return nil
37376	}
37377
37378	shape, ok := value.([]interface{})
37379	if !ok {
37380		return fmt.Errorf("unexpected JSON type %v", value)
37381	}
37382
37383	var cv []types.SoftwarePackage
37384	if *v == nil {
37385		cv = []types.SoftwarePackage{}
37386	} else {
37387		cv = *v
37388	}
37389
37390	for _, value := range shape {
37391		var col types.SoftwarePackage
37392		destAddr := &col
37393		if err := awsRestjson1_deserializeDocumentSoftwarePackage(&destAddr, value); err != nil {
37394			return err
37395		}
37396		col = *destAddr
37397		cv = append(cv, col)
37398
37399	}
37400	*v = cv
37401	return nil
37402}
37403
37404func awsRestjson1_deserializeDocumentStandard(v **types.Standard, value interface{}) error {
37405	if v == nil {
37406		return fmt.Errorf("unexpected nil of type %T", v)
37407	}
37408	if value == nil {
37409		return nil
37410	}
37411
37412	shape, ok := value.(map[string]interface{})
37413	if !ok {
37414		return fmt.Errorf("unexpected JSON type %v", value)
37415	}
37416
37417	var sv *types.Standard
37418	if *v == nil {
37419		sv = &types.Standard{}
37420	} else {
37421		sv = *v
37422	}
37423
37424	for key, value := range shape {
37425		switch key {
37426		case "Description":
37427			if value != nil {
37428				jtv, ok := value.(string)
37429				if !ok {
37430					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37431				}
37432				sv.Description = ptr.String(jtv)
37433			}
37434
37435		case "EnabledByDefault":
37436			if value != nil {
37437				jtv, ok := value.(bool)
37438				if !ok {
37439					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
37440				}
37441				sv.EnabledByDefault = jtv
37442			}
37443
37444		case "Name":
37445			if value != nil {
37446				jtv, ok := value.(string)
37447				if !ok {
37448					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37449				}
37450				sv.Name = ptr.String(jtv)
37451			}
37452
37453		case "StandardsArn":
37454			if value != nil {
37455				jtv, ok := value.(string)
37456				if !ok {
37457					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37458				}
37459				sv.StandardsArn = ptr.String(jtv)
37460			}
37461
37462		default:
37463			_, _ = key, value
37464
37465		}
37466	}
37467	*v = sv
37468	return nil
37469}
37470
37471func awsRestjson1_deserializeDocumentStandards(v *[]types.Standard, value interface{}) error {
37472	if v == nil {
37473		return fmt.Errorf("unexpected nil of type %T", v)
37474	}
37475	if value == nil {
37476		return nil
37477	}
37478
37479	shape, ok := value.([]interface{})
37480	if !ok {
37481		return fmt.Errorf("unexpected JSON type %v", value)
37482	}
37483
37484	var cv []types.Standard
37485	if *v == nil {
37486		cv = []types.Standard{}
37487	} else {
37488		cv = *v
37489	}
37490
37491	for _, value := range shape {
37492		var col types.Standard
37493		destAddr := &col
37494		if err := awsRestjson1_deserializeDocumentStandard(&destAddr, value); err != nil {
37495			return err
37496		}
37497		col = *destAddr
37498		cv = append(cv, col)
37499
37500	}
37501	*v = cv
37502	return nil
37503}
37504
37505func awsRestjson1_deserializeDocumentStandardsControl(v **types.StandardsControl, value interface{}) error {
37506	if v == nil {
37507		return fmt.Errorf("unexpected nil of type %T", v)
37508	}
37509	if value == nil {
37510		return nil
37511	}
37512
37513	shape, ok := value.(map[string]interface{})
37514	if !ok {
37515		return fmt.Errorf("unexpected JSON type %v", value)
37516	}
37517
37518	var sv *types.StandardsControl
37519	if *v == nil {
37520		sv = &types.StandardsControl{}
37521	} else {
37522		sv = *v
37523	}
37524
37525	for key, value := range shape {
37526		switch key {
37527		case "ControlId":
37528			if value != nil {
37529				jtv, ok := value.(string)
37530				if !ok {
37531					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37532				}
37533				sv.ControlId = ptr.String(jtv)
37534			}
37535
37536		case "ControlStatus":
37537			if value != nil {
37538				jtv, ok := value.(string)
37539				if !ok {
37540					return fmt.Errorf("expected ControlStatus to be of type string, got %T instead", value)
37541				}
37542				sv.ControlStatus = types.ControlStatus(jtv)
37543			}
37544
37545		case "ControlStatusUpdatedAt":
37546			if value != nil {
37547				jtv, ok := value.(string)
37548				if !ok {
37549					return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value)
37550				}
37551				t, err := smithytime.ParseDateTime(jtv)
37552				if err != nil {
37553					return err
37554				}
37555				sv.ControlStatusUpdatedAt = ptr.Time(t)
37556			}
37557
37558		case "Description":
37559			if value != nil {
37560				jtv, ok := value.(string)
37561				if !ok {
37562					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37563				}
37564				sv.Description = ptr.String(jtv)
37565			}
37566
37567		case "DisabledReason":
37568			if value != nil {
37569				jtv, ok := value.(string)
37570				if !ok {
37571					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37572				}
37573				sv.DisabledReason = ptr.String(jtv)
37574			}
37575
37576		case "RelatedRequirements":
37577			if err := awsRestjson1_deserializeDocumentRelatedRequirementsList(&sv.RelatedRequirements, value); err != nil {
37578				return err
37579			}
37580
37581		case "RemediationUrl":
37582			if value != nil {
37583				jtv, ok := value.(string)
37584				if !ok {
37585					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37586				}
37587				sv.RemediationUrl = ptr.String(jtv)
37588			}
37589
37590		case "SeverityRating":
37591			if value != nil {
37592				jtv, ok := value.(string)
37593				if !ok {
37594					return fmt.Errorf("expected SeverityRating to be of type string, got %T instead", value)
37595				}
37596				sv.SeverityRating = types.SeverityRating(jtv)
37597			}
37598
37599		case "StandardsControlArn":
37600			if value != nil {
37601				jtv, ok := value.(string)
37602				if !ok {
37603					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37604				}
37605				sv.StandardsControlArn = ptr.String(jtv)
37606			}
37607
37608		case "Title":
37609			if value != nil {
37610				jtv, ok := value.(string)
37611				if !ok {
37612					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37613				}
37614				sv.Title = ptr.String(jtv)
37615			}
37616
37617		default:
37618			_, _ = key, value
37619
37620		}
37621	}
37622	*v = sv
37623	return nil
37624}
37625
37626func awsRestjson1_deserializeDocumentStandardsControls(v *[]types.StandardsControl, value interface{}) error {
37627	if v == nil {
37628		return fmt.Errorf("unexpected nil of type %T", v)
37629	}
37630	if value == nil {
37631		return nil
37632	}
37633
37634	shape, ok := value.([]interface{})
37635	if !ok {
37636		return fmt.Errorf("unexpected JSON type %v", value)
37637	}
37638
37639	var cv []types.StandardsControl
37640	if *v == nil {
37641		cv = []types.StandardsControl{}
37642	} else {
37643		cv = *v
37644	}
37645
37646	for _, value := range shape {
37647		var col types.StandardsControl
37648		destAddr := &col
37649		if err := awsRestjson1_deserializeDocumentStandardsControl(&destAddr, value); err != nil {
37650			return err
37651		}
37652		col = *destAddr
37653		cv = append(cv, col)
37654
37655	}
37656	*v = cv
37657	return nil
37658}
37659
37660func awsRestjson1_deserializeDocumentStandardsInputParameterMap(v *map[string]string, value interface{}) error {
37661	if v == nil {
37662		return fmt.Errorf("unexpected nil of type %T", v)
37663	}
37664	if value == nil {
37665		return nil
37666	}
37667
37668	shape, ok := value.(map[string]interface{})
37669	if !ok {
37670		return fmt.Errorf("unexpected JSON type %v", value)
37671	}
37672
37673	var mv map[string]string
37674	if *v == nil {
37675		mv = map[string]string{}
37676	} else {
37677		mv = *v
37678	}
37679
37680	for key, value := range shape {
37681		var parsedVal string
37682		if value != nil {
37683			jtv, ok := value.(string)
37684			if !ok {
37685				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37686			}
37687			parsedVal = jtv
37688		}
37689		mv[key] = parsedVal
37690
37691	}
37692	*v = mv
37693	return nil
37694}
37695
37696func awsRestjson1_deserializeDocumentStandardsSubscription(v **types.StandardsSubscription, value interface{}) error {
37697	if v == nil {
37698		return fmt.Errorf("unexpected nil of type %T", v)
37699	}
37700	if value == nil {
37701		return nil
37702	}
37703
37704	shape, ok := value.(map[string]interface{})
37705	if !ok {
37706		return fmt.Errorf("unexpected JSON type %v", value)
37707	}
37708
37709	var sv *types.StandardsSubscription
37710	if *v == nil {
37711		sv = &types.StandardsSubscription{}
37712	} else {
37713		sv = *v
37714	}
37715
37716	for key, value := range shape {
37717		switch key {
37718		case "StandardsArn":
37719			if value != nil {
37720				jtv, ok := value.(string)
37721				if !ok {
37722					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37723				}
37724				sv.StandardsArn = ptr.String(jtv)
37725			}
37726
37727		case "StandardsInput":
37728			if err := awsRestjson1_deserializeDocumentStandardsInputParameterMap(&sv.StandardsInput, value); err != nil {
37729				return err
37730			}
37731
37732		case "StandardsStatus":
37733			if value != nil {
37734				jtv, ok := value.(string)
37735				if !ok {
37736					return fmt.Errorf("expected StandardsStatus to be of type string, got %T instead", value)
37737				}
37738				sv.StandardsStatus = types.StandardsStatus(jtv)
37739			}
37740
37741		case "StandardsSubscriptionArn":
37742			if value != nil {
37743				jtv, ok := value.(string)
37744				if !ok {
37745					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37746				}
37747				sv.StandardsSubscriptionArn = ptr.String(jtv)
37748			}
37749
37750		default:
37751			_, _ = key, value
37752
37753		}
37754	}
37755	*v = sv
37756	return nil
37757}
37758
37759func awsRestjson1_deserializeDocumentStandardsSubscriptions(v *[]types.StandardsSubscription, value interface{}) error {
37760	if v == nil {
37761		return fmt.Errorf("unexpected nil of type %T", v)
37762	}
37763	if value == nil {
37764		return nil
37765	}
37766
37767	shape, ok := value.([]interface{})
37768	if !ok {
37769		return fmt.Errorf("unexpected JSON type %v", value)
37770	}
37771
37772	var cv []types.StandardsSubscription
37773	if *v == nil {
37774		cv = []types.StandardsSubscription{}
37775	} else {
37776		cv = *v
37777	}
37778
37779	for _, value := range shape {
37780		var col types.StandardsSubscription
37781		destAddr := &col
37782		if err := awsRestjson1_deserializeDocumentStandardsSubscription(&destAddr, value); err != nil {
37783			return err
37784		}
37785		col = *destAddr
37786		cv = append(cv, col)
37787
37788	}
37789	*v = cv
37790	return nil
37791}
37792
37793func awsRestjson1_deserializeDocumentStatusReason(v **types.StatusReason, value interface{}) error {
37794	if v == nil {
37795		return fmt.Errorf("unexpected nil of type %T", v)
37796	}
37797	if value == nil {
37798		return nil
37799	}
37800
37801	shape, ok := value.(map[string]interface{})
37802	if !ok {
37803		return fmt.Errorf("unexpected JSON type %v", value)
37804	}
37805
37806	var sv *types.StatusReason
37807	if *v == nil {
37808		sv = &types.StatusReason{}
37809	} else {
37810		sv = *v
37811	}
37812
37813	for key, value := range shape {
37814		switch key {
37815		case "Description":
37816			if value != nil {
37817				jtv, ok := value.(string)
37818				if !ok {
37819					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37820				}
37821				sv.Description = ptr.String(jtv)
37822			}
37823
37824		case "ReasonCode":
37825			if value != nil {
37826				jtv, ok := value.(string)
37827				if !ok {
37828					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37829				}
37830				sv.ReasonCode = ptr.String(jtv)
37831			}
37832
37833		default:
37834			_, _ = key, value
37835
37836		}
37837	}
37838	*v = sv
37839	return nil
37840}
37841
37842func awsRestjson1_deserializeDocumentStatusReasonsList(v *[]types.StatusReason, value interface{}) error {
37843	if v == nil {
37844		return fmt.Errorf("unexpected nil of type %T", v)
37845	}
37846	if value == nil {
37847		return nil
37848	}
37849
37850	shape, ok := value.([]interface{})
37851	if !ok {
37852		return fmt.Errorf("unexpected JSON type %v", value)
37853	}
37854
37855	var cv []types.StatusReason
37856	if *v == nil {
37857		cv = []types.StatusReason{}
37858	} else {
37859		cv = *v
37860	}
37861
37862	for _, value := range shape {
37863		var col types.StatusReason
37864		destAddr := &col
37865		if err := awsRestjson1_deserializeDocumentStatusReason(&destAddr, value); err != nil {
37866			return err
37867		}
37868		col = *destAddr
37869		cv = append(cv, col)
37870
37871	}
37872	*v = cv
37873	return nil
37874}
37875
37876func awsRestjson1_deserializeDocumentStringFilter(v **types.StringFilter, value interface{}) error {
37877	if v == nil {
37878		return fmt.Errorf("unexpected nil of type %T", v)
37879	}
37880	if value == nil {
37881		return nil
37882	}
37883
37884	shape, ok := value.(map[string]interface{})
37885	if !ok {
37886		return fmt.Errorf("unexpected JSON type %v", value)
37887	}
37888
37889	var sv *types.StringFilter
37890	if *v == nil {
37891		sv = &types.StringFilter{}
37892	} else {
37893		sv = *v
37894	}
37895
37896	for key, value := range shape {
37897		switch key {
37898		case "Comparison":
37899			if value != nil {
37900				jtv, ok := value.(string)
37901				if !ok {
37902					return fmt.Errorf("expected StringFilterComparison to be of type string, got %T instead", value)
37903				}
37904				sv.Comparison = types.StringFilterComparison(jtv)
37905			}
37906
37907		case "Value":
37908			if value != nil {
37909				jtv, ok := value.(string)
37910				if !ok {
37911					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37912				}
37913				sv.Value = ptr.String(jtv)
37914			}
37915
37916		default:
37917			_, _ = key, value
37918
37919		}
37920	}
37921	*v = sv
37922	return nil
37923}
37924
37925func awsRestjson1_deserializeDocumentStringFilterList(v *[]types.StringFilter, value interface{}) error {
37926	if v == nil {
37927		return fmt.Errorf("unexpected nil of type %T", v)
37928	}
37929	if value == nil {
37930		return nil
37931	}
37932
37933	shape, ok := value.([]interface{})
37934	if !ok {
37935		return fmt.Errorf("unexpected JSON type %v", value)
37936	}
37937
37938	var cv []types.StringFilter
37939	if *v == nil {
37940		cv = []types.StringFilter{}
37941	} else {
37942		cv = *v
37943	}
37944
37945	for _, value := range shape {
37946		var col types.StringFilter
37947		destAddr := &col
37948		if err := awsRestjson1_deserializeDocumentStringFilter(&destAddr, value); err != nil {
37949			return err
37950		}
37951		col = *destAddr
37952		cv = append(cv, col)
37953
37954	}
37955	*v = cv
37956	return nil
37957}
37958
37959func awsRestjson1_deserializeDocumentStringList(v *[]string, value interface{}) error {
37960	if v == nil {
37961		return fmt.Errorf("unexpected nil of type %T", v)
37962	}
37963	if value == nil {
37964		return nil
37965	}
37966
37967	shape, ok := value.([]interface{})
37968	if !ok {
37969		return fmt.Errorf("unexpected JSON type %v", value)
37970	}
37971
37972	var cv []string
37973	if *v == nil {
37974		cv = []string{}
37975	} else {
37976		cv = *v
37977	}
37978
37979	for _, value := range shape {
37980		var col string
37981		if value != nil {
37982			jtv, ok := value.(string)
37983			if !ok {
37984				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37985			}
37986			col = jtv
37987		}
37988		cv = append(cv, col)
37989
37990	}
37991	*v = cv
37992	return nil
37993}
37994
37995func awsRestjson1_deserializeDocumentTagMap(v *map[string]string, value interface{}) error {
37996	if v == nil {
37997		return fmt.Errorf("unexpected nil of type %T", v)
37998	}
37999	if value == nil {
38000		return nil
38001	}
38002
38003	shape, ok := value.(map[string]interface{})
38004	if !ok {
38005		return fmt.Errorf("unexpected JSON type %v", value)
38006	}
38007
38008	var mv map[string]string
38009	if *v == nil {
38010		mv = map[string]string{}
38011	} else {
38012		mv = *v
38013	}
38014
38015	for key, value := range shape {
38016		var parsedVal string
38017		if value != nil {
38018			jtv, ok := value.(string)
38019			if !ok {
38020				return fmt.Errorf("expected TagValue to be of type string, got %T instead", value)
38021			}
38022			parsedVal = jtv
38023		}
38024		mv[key] = parsedVal
38025
38026	}
38027	*v = mv
38028	return nil
38029}
38030
38031func awsRestjson1_deserializeDocumentThreatIntelIndicator(v **types.ThreatIntelIndicator, value interface{}) error {
38032	if v == nil {
38033		return fmt.Errorf("unexpected nil of type %T", v)
38034	}
38035	if value == nil {
38036		return nil
38037	}
38038
38039	shape, ok := value.(map[string]interface{})
38040	if !ok {
38041		return fmt.Errorf("unexpected JSON type %v", value)
38042	}
38043
38044	var sv *types.ThreatIntelIndicator
38045	if *v == nil {
38046		sv = &types.ThreatIntelIndicator{}
38047	} else {
38048		sv = *v
38049	}
38050
38051	for key, value := range shape {
38052		switch key {
38053		case "Category":
38054			if value != nil {
38055				jtv, ok := value.(string)
38056				if !ok {
38057					return fmt.Errorf("expected ThreatIntelIndicatorCategory to be of type string, got %T instead", value)
38058				}
38059				sv.Category = types.ThreatIntelIndicatorCategory(jtv)
38060			}
38061
38062		case "LastObservedAt":
38063			if value != nil {
38064				jtv, ok := value.(string)
38065				if !ok {
38066					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38067				}
38068				sv.LastObservedAt = ptr.String(jtv)
38069			}
38070
38071		case "Source":
38072			if value != nil {
38073				jtv, ok := value.(string)
38074				if !ok {
38075					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38076				}
38077				sv.Source = ptr.String(jtv)
38078			}
38079
38080		case "SourceUrl":
38081			if value != nil {
38082				jtv, ok := value.(string)
38083				if !ok {
38084					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38085				}
38086				sv.SourceUrl = ptr.String(jtv)
38087			}
38088
38089		case "Type":
38090			if value != nil {
38091				jtv, ok := value.(string)
38092				if !ok {
38093					return fmt.Errorf("expected ThreatIntelIndicatorType to be of type string, got %T instead", value)
38094				}
38095				sv.Type = types.ThreatIntelIndicatorType(jtv)
38096			}
38097
38098		case "Value":
38099			if value != nil {
38100				jtv, ok := value.(string)
38101				if !ok {
38102					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38103				}
38104				sv.Value = ptr.String(jtv)
38105			}
38106
38107		default:
38108			_, _ = key, value
38109
38110		}
38111	}
38112	*v = sv
38113	return nil
38114}
38115
38116func awsRestjson1_deserializeDocumentThreatIntelIndicatorList(v *[]types.ThreatIntelIndicator, value interface{}) error {
38117	if v == nil {
38118		return fmt.Errorf("unexpected nil of type %T", v)
38119	}
38120	if value == nil {
38121		return nil
38122	}
38123
38124	shape, ok := value.([]interface{})
38125	if !ok {
38126		return fmt.Errorf("unexpected JSON type %v", value)
38127	}
38128
38129	var cv []types.ThreatIntelIndicator
38130	if *v == nil {
38131		cv = []types.ThreatIntelIndicator{}
38132	} else {
38133		cv = *v
38134	}
38135
38136	for _, value := range shape {
38137		var col types.ThreatIntelIndicator
38138		destAddr := &col
38139		if err := awsRestjson1_deserializeDocumentThreatIntelIndicator(&destAddr, value); err != nil {
38140			return err
38141		}
38142		col = *destAddr
38143		cv = append(cv, col)
38144
38145	}
38146	*v = cv
38147	return nil
38148}
38149
38150func awsRestjson1_deserializeDocumentTypeList(v *[]string, value interface{}) error {
38151	if v == nil {
38152		return fmt.Errorf("unexpected nil of type %T", v)
38153	}
38154	if value == nil {
38155		return nil
38156	}
38157
38158	shape, ok := value.([]interface{})
38159	if !ok {
38160		return fmt.Errorf("unexpected JSON type %v", value)
38161	}
38162
38163	var cv []string
38164	if *v == nil {
38165		cv = []string{}
38166	} else {
38167		cv = *v
38168	}
38169
38170	for _, value := range shape {
38171		var col string
38172		if value != nil {
38173			jtv, ok := value.(string)
38174			if !ok {
38175				return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38176			}
38177			col = jtv
38178		}
38179		cv = append(cv, col)
38180
38181	}
38182	*v = cv
38183	return nil
38184}
38185
38186func awsRestjson1_deserializeDocumentVulnerability(v **types.Vulnerability, value interface{}) error {
38187	if v == nil {
38188		return fmt.Errorf("unexpected nil of type %T", v)
38189	}
38190	if value == nil {
38191		return nil
38192	}
38193
38194	shape, ok := value.(map[string]interface{})
38195	if !ok {
38196		return fmt.Errorf("unexpected JSON type %v", value)
38197	}
38198
38199	var sv *types.Vulnerability
38200	if *v == nil {
38201		sv = &types.Vulnerability{}
38202	} else {
38203		sv = *v
38204	}
38205
38206	for key, value := range shape {
38207		switch key {
38208		case "Cvss":
38209			if err := awsRestjson1_deserializeDocumentCvssList(&sv.Cvss, value); err != nil {
38210				return err
38211			}
38212
38213		case "Id":
38214			if value != nil {
38215				jtv, ok := value.(string)
38216				if !ok {
38217					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38218				}
38219				sv.Id = ptr.String(jtv)
38220			}
38221
38222		case "ReferenceUrls":
38223			if err := awsRestjson1_deserializeDocumentStringList(&sv.ReferenceUrls, value); err != nil {
38224				return err
38225			}
38226
38227		case "RelatedVulnerabilities":
38228			if err := awsRestjson1_deserializeDocumentStringList(&sv.RelatedVulnerabilities, value); err != nil {
38229				return err
38230			}
38231
38232		case "Vendor":
38233			if err := awsRestjson1_deserializeDocumentVulnerabilityVendor(&sv.Vendor, value); err != nil {
38234				return err
38235			}
38236
38237		case "VulnerablePackages":
38238			if err := awsRestjson1_deserializeDocumentSoftwarePackageList(&sv.VulnerablePackages, value); err != nil {
38239				return err
38240			}
38241
38242		default:
38243			_, _ = key, value
38244
38245		}
38246	}
38247	*v = sv
38248	return nil
38249}
38250
38251func awsRestjson1_deserializeDocumentVulnerabilityList(v *[]types.Vulnerability, value interface{}) error {
38252	if v == nil {
38253		return fmt.Errorf("unexpected nil of type %T", v)
38254	}
38255	if value == nil {
38256		return nil
38257	}
38258
38259	shape, ok := value.([]interface{})
38260	if !ok {
38261		return fmt.Errorf("unexpected JSON type %v", value)
38262	}
38263
38264	var cv []types.Vulnerability
38265	if *v == nil {
38266		cv = []types.Vulnerability{}
38267	} else {
38268		cv = *v
38269	}
38270
38271	for _, value := range shape {
38272		var col types.Vulnerability
38273		destAddr := &col
38274		if err := awsRestjson1_deserializeDocumentVulnerability(&destAddr, value); err != nil {
38275			return err
38276		}
38277		col = *destAddr
38278		cv = append(cv, col)
38279
38280	}
38281	*v = cv
38282	return nil
38283}
38284
38285func awsRestjson1_deserializeDocumentVulnerabilityVendor(v **types.VulnerabilityVendor, value interface{}) error {
38286	if v == nil {
38287		return fmt.Errorf("unexpected nil of type %T", v)
38288	}
38289	if value == nil {
38290		return nil
38291	}
38292
38293	shape, ok := value.(map[string]interface{})
38294	if !ok {
38295		return fmt.Errorf("unexpected JSON type %v", value)
38296	}
38297
38298	var sv *types.VulnerabilityVendor
38299	if *v == nil {
38300		sv = &types.VulnerabilityVendor{}
38301	} else {
38302		sv = *v
38303	}
38304
38305	for key, value := range shape {
38306		switch key {
38307		case "Name":
38308			if value != nil {
38309				jtv, ok := value.(string)
38310				if !ok {
38311					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38312				}
38313				sv.Name = ptr.String(jtv)
38314			}
38315
38316		case "Url":
38317			if value != nil {
38318				jtv, ok := value.(string)
38319				if !ok {
38320					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38321				}
38322				sv.Url = ptr.String(jtv)
38323			}
38324
38325		case "VendorCreatedAt":
38326			if value != nil {
38327				jtv, ok := value.(string)
38328				if !ok {
38329					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38330				}
38331				sv.VendorCreatedAt = ptr.String(jtv)
38332			}
38333
38334		case "VendorSeverity":
38335			if value != nil {
38336				jtv, ok := value.(string)
38337				if !ok {
38338					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38339				}
38340				sv.VendorSeverity = ptr.String(jtv)
38341			}
38342
38343		case "VendorUpdatedAt":
38344			if value != nil {
38345				jtv, ok := value.(string)
38346				if !ok {
38347					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38348				}
38349				sv.VendorUpdatedAt = ptr.String(jtv)
38350			}
38351
38352		default:
38353			_, _ = key, value
38354
38355		}
38356	}
38357	*v = sv
38358	return nil
38359}
38360
38361func awsRestjson1_deserializeDocumentWafAction(v **types.WafAction, value interface{}) error {
38362	if v == nil {
38363		return fmt.Errorf("unexpected nil of type %T", v)
38364	}
38365	if value == nil {
38366		return nil
38367	}
38368
38369	shape, ok := value.(map[string]interface{})
38370	if !ok {
38371		return fmt.Errorf("unexpected JSON type %v", value)
38372	}
38373
38374	var sv *types.WafAction
38375	if *v == nil {
38376		sv = &types.WafAction{}
38377	} else {
38378		sv = *v
38379	}
38380
38381	for key, value := range shape {
38382		switch key {
38383		case "Type":
38384			if value != nil {
38385				jtv, ok := value.(string)
38386				if !ok {
38387					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38388				}
38389				sv.Type = ptr.String(jtv)
38390			}
38391
38392		default:
38393			_, _ = key, value
38394
38395		}
38396	}
38397	*v = sv
38398	return nil
38399}
38400
38401func awsRestjson1_deserializeDocumentWafExcludedRule(v **types.WafExcludedRule, value interface{}) error {
38402	if v == nil {
38403		return fmt.Errorf("unexpected nil of type %T", v)
38404	}
38405	if value == nil {
38406		return nil
38407	}
38408
38409	shape, ok := value.(map[string]interface{})
38410	if !ok {
38411		return fmt.Errorf("unexpected JSON type %v", value)
38412	}
38413
38414	var sv *types.WafExcludedRule
38415	if *v == nil {
38416		sv = &types.WafExcludedRule{}
38417	} else {
38418		sv = *v
38419	}
38420
38421	for key, value := range shape {
38422		switch key {
38423		case "RuleId":
38424			if value != nil {
38425				jtv, ok := value.(string)
38426				if !ok {
38427					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38428				}
38429				sv.RuleId = ptr.String(jtv)
38430			}
38431
38432		default:
38433			_, _ = key, value
38434
38435		}
38436	}
38437	*v = sv
38438	return nil
38439}
38440
38441func awsRestjson1_deserializeDocumentWafExcludedRuleList(v *[]types.WafExcludedRule, value interface{}) error {
38442	if v == nil {
38443		return fmt.Errorf("unexpected nil of type %T", v)
38444	}
38445	if value == nil {
38446		return nil
38447	}
38448
38449	shape, ok := value.([]interface{})
38450	if !ok {
38451		return fmt.Errorf("unexpected JSON type %v", value)
38452	}
38453
38454	var cv []types.WafExcludedRule
38455	if *v == nil {
38456		cv = []types.WafExcludedRule{}
38457	} else {
38458		cv = *v
38459	}
38460
38461	for _, value := range shape {
38462		var col types.WafExcludedRule
38463		destAddr := &col
38464		if err := awsRestjson1_deserializeDocumentWafExcludedRule(&destAddr, value); err != nil {
38465			return err
38466		}
38467		col = *destAddr
38468		cv = append(cv, col)
38469
38470	}
38471	*v = cv
38472	return nil
38473}
38474
38475func awsRestjson1_deserializeDocumentWafOverrideAction(v **types.WafOverrideAction, value interface{}) error {
38476	if v == nil {
38477		return fmt.Errorf("unexpected nil of type %T", v)
38478	}
38479	if value == nil {
38480		return nil
38481	}
38482
38483	shape, ok := value.(map[string]interface{})
38484	if !ok {
38485		return fmt.Errorf("unexpected JSON type %v", value)
38486	}
38487
38488	var sv *types.WafOverrideAction
38489	if *v == nil {
38490		sv = &types.WafOverrideAction{}
38491	} else {
38492		sv = *v
38493	}
38494
38495	for key, value := range shape {
38496		switch key {
38497		case "Type":
38498			if value != nil {
38499				jtv, ok := value.(string)
38500				if !ok {
38501					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
38502				}
38503				sv.Type = ptr.String(jtv)
38504			}
38505
38506		default:
38507			_, _ = key, value
38508
38509		}
38510	}
38511	*v = sv
38512	return nil
38513}
38514
38515func awsRestjson1_deserializeDocumentWorkflow(v **types.Workflow, value interface{}) error {
38516	if v == nil {
38517		return fmt.Errorf("unexpected nil of type %T", v)
38518	}
38519	if value == nil {
38520		return nil
38521	}
38522
38523	shape, ok := value.(map[string]interface{})
38524	if !ok {
38525		return fmt.Errorf("unexpected JSON type %v", value)
38526	}
38527
38528	var sv *types.Workflow
38529	if *v == nil {
38530		sv = &types.Workflow{}
38531	} else {
38532		sv = *v
38533	}
38534
38535	for key, value := range shape {
38536		switch key {
38537		case "Status":
38538			if value != nil {
38539				jtv, ok := value.(string)
38540				if !ok {
38541					return fmt.Errorf("expected WorkflowStatus to be of type string, got %T instead", value)
38542				}
38543				sv.Status = types.WorkflowStatus(jtv)
38544			}
38545
38546		default:
38547			_, _ = key, value
38548
38549		}
38550	}
38551	*v = sv
38552	return nil
38553}
38554