1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package securityhub
4
5import (
6	"bytes"
7	"context"
8	"fmt"
9	"github.com/aws/aws-sdk-go-v2/service/securityhub/types"
10	smithy "github.com/aws/smithy-go"
11	"github.com/aws/smithy-go/encoding/httpbinding"
12	smithyjson "github.com/aws/smithy-go/encoding/json"
13	"github.com/aws/smithy-go/middleware"
14	smithyhttp "github.com/aws/smithy-go/transport/http"
15)
16
17type awsRestjson1_serializeOpAcceptInvitation struct {
18}
19
20func (*awsRestjson1_serializeOpAcceptInvitation) ID() string {
21	return "OperationSerializer"
22}
23
24func (m *awsRestjson1_serializeOpAcceptInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
25	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
26) {
27	request, ok := in.Request.(*smithyhttp.Request)
28	if !ok {
29		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
30	}
31
32	input, ok := in.Parameters.(*AcceptInvitationInput)
33	_ = input
34	if !ok {
35		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
36	}
37
38	opPath, opQuery := httpbinding.SplitURI("/master")
39	request.URL.Path = opPath
40	if len(request.URL.RawQuery) > 0 {
41		request.URL.RawQuery = "&" + opQuery
42	} else {
43		request.URL.RawQuery = opQuery
44	}
45
46	request.Method = "POST"
47	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
48	if err != nil {
49		return out, metadata, &smithy.SerializationError{Err: err}
50	}
51
52	restEncoder.SetHeader("Content-Type").String("application/json")
53
54	jsonEncoder := smithyjson.NewEncoder()
55	if err := awsRestjson1_serializeOpDocumentAcceptInvitationInput(input, jsonEncoder.Value); err != nil {
56		return out, metadata, &smithy.SerializationError{Err: err}
57	}
58
59	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
60		return out, metadata, &smithy.SerializationError{Err: err}
61	}
62
63	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
64		return out, metadata, &smithy.SerializationError{Err: err}
65	}
66	in.Request = request
67
68	return next.HandleSerialize(ctx, in)
69}
70func awsRestjson1_serializeOpHttpBindingsAcceptInvitationInput(v *AcceptInvitationInput, encoder *httpbinding.Encoder) error {
71	if v == nil {
72		return fmt.Errorf("unsupported serialization of nil %T", v)
73	}
74
75	return nil
76}
77
78func awsRestjson1_serializeOpDocumentAcceptInvitationInput(v *AcceptInvitationInput, value smithyjson.Value) error {
79	object := value.Object()
80	defer object.Close()
81
82	if v.InvitationId != nil {
83		ok := object.Key("InvitationId")
84		ok.String(*v.InvitationId)
85	}
86
87	if v.MasterId != nil {
88		ok := object.Key("MasterId")
89		ok.String(*v.MasterId)
90	}
91
92	return nil
93}
94
95type awsRestjson1_serializeOpBatchDisableStandards struct {
96}
97
98func (*awsRestjson1_serializeOpBatchDisableStandards) ID() string {
99	return "OperationSerializer"
100}
101
102func (m *awsRestjson1_serializeOpBatchDisableStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
103	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
104) {
105	request, ok := in.Request.(*smithyhttp.Request)
106	if !ok {
107		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
108	}
109
110	input, ok := in.Parameters.(*BatchDisableStandardsInput)
111	_ = input
112	if !ok {
113		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
114	}
115
116	opPath, opQuery := httpbinding.SplitURI("/standards/deregister")
117	request.URL.Path = opPath
118	if len(request.URL.RawQuery) > 0 {
119		request.URL.RawQuery = "&" + opQuery
120	} else {
121		request.URL.RawQuery = opQuery
122	}
123
124	request.Method = "POST"
125	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
126	if err != nil {
127		return out, metadata, &smithy.SerializationError{Err: err}
128	}
129
130	restEncoder.SetHeader("Content-Type").String("application/json")
131
132	jsonEncoder := smithyjson.NewEncoder()
133	if err := awsRestjson1_serializeOpDocumentBatchDisableStandardsInput(input, jsonEncoder.Value); err != nil {
134		return out, metadata, &smithy.SerializationError{Err: err}
135	}
136
137	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
138		return out, metadata, &smithy.SerializationError{Err: err}
139	}
140
141	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
142		return out, metadata, &smithy.SerializationError{Err: err}
143	}
144	in.Request = request
145
146	return next.HandleSerialize(ctx, in)
147}
148func awsRestjson1_serializeOpHttpBindingsBatchDisableStandardsInput(v *BatchDisableStandardsInput, encoder *httpbinding.Encoder) error {
149	if v == nil {
150		return fmt.Errorf("unsupported serialization of nil %T", v)
151	}
152
153	return nil
154}
155
156func awsRestjson1_serializeOpDocumentBatchDisableStandardsInput(v *BatchDisableStandardsInput, value smithyjson.Value) error {
157	object := value.Object()
158	defer object.Close()
159
160	if v.StandardsSubscriptionArns != nil {
161		ok := object.Key("StandardsSubscriptionArns")
162		if err := awsRestjson1_serializeDocumentStandardsSubscriptionArns(v.StandardsSubscriptionArns, ok); err != nil {
163			return err
164		}
165	}
166
167	return nil
168}
169
170type awsRestjson1_serializeOpBatchEnableStandards struct {
171}
172
173func (*awsRestjson1_serializeOpBatchEnableStandards) ID() string {
174	return "OperationSerializer"
175}
176
177func (m *awsRestjson1_serializeOpBatchEnableStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
178	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
179) {
180	request, ok := in.Request.(*smithyhttp.Request)
181	if !ok {
182		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
183	}
184
185	input, ok := in.Parameters.(*BatchEnableStandardsInput)
186	_ = input
187	if !ok {
188		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
189	}
190
191	opPath, opQuery := httpbinding.SplitURI("/standards/register")
192	request.URL.Path = opPath
193	if len(request.URL.RawQuery) > 0 {
194		request.URL.RawQuery = "&" + opQuery
195	} else {
196		request.URL.RawQuery = opQuery
197	}
198
199	request.Method = "POST"
200	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
201	if err != nil {
202		return out, metadata, &smithy.SerializationError{Err: err}
203	}
204
205	restEncoder.SetHeader("Content-Type").String("application/json")
206
207	jsonEncoder := smithyjson.NewEncoder()
208	if err := awsRestjson1_serializeOpDocumentBatchEnableStandardsInput(input, jsonEncoder.Value); err != nil {
209		return out, metadata, &smithy.SerializationError{Err: err}
210	}
211
212	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
213		return out, metadata, &smithy.SerializationError{Err: err}
214	}
215
216	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
217		return out, metadata, &smithy.SerializationError{Err: err}
218	}
219	in.Request = request
220
221	return next.HandleSerialize(ctx, in)
222}
223func awsRestjson1_serializeOpHttpBindingsBatchEnableStandardsInput(v *BatchEnableStandardsInput, encoder *httpbinding.Encoder) error {
224	if v == nil {
225		return fmt.Errorf("unsupported serialization of nil %T", v)
226	}
227
228	return nil
229}
230
231func awsRestjson1_serializeOpDocumentBatchEnableStandardsInput(v *BatchEnableStandardsInput, value smithyjson.Value) error {
232	object := value.Object()
233	defer object.Close()
234
235	if v.StandardsSubscriptionRequests != nil {
236		ok := object.Key("StandardsSubscriptionRequests")
237		if err := awsRestjson1_serializeDocumentStandardsSubscriptionRequests(v.StandardsSubscriptionRequests, ok); err != nil {
238			return err
239		}
240	}
241
242	return nil
243}
244
245type awsRestjson1_serializeOpBatchImportFindings struct {
246}
247
248func (*awsRestjson1_serializeOpBatchImportFindings) ID() string {
249	return "OperationSerializer"
250}
251
252func (m *awsRestjson1_serializeOpBatchImportFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
253	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
254) {
255	request, ok := in.Request.(*smithyhttp.Request)
256	if !ok {
257		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
258	}
259
260	input, ok := in.Parameters.(*BatchImportFindingsInput)
261	_ = input
262	if !ok {
263		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
264	}
265
266	opPath, opQuery := httpbinding.SplitURI("/findings/import")
267	request.URL.Path = opPath
268	if len(request.URL.RawQuery) > 0 {
269		request.URL.RawQuery = "&" + opQuery
270	} else {
271		request.URL.RawQuery = opQuery
272	}
273
274	request.Method = "POST"
275	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
276	if err != nil {
277		return out, metadata, &smithy.SerializationError{Err: err}
278	}
279
280	restEncoder.SetHeader("Content-Type").String("application/json")
281
282	jsonEncoder := smithyjson.NewEncoder()
283	if err := awsRestjson1_serializeOpDocumentBatchImportFindingsInput(input, jsonEncoder.Value); err != nil {
284		return out, metadata, &smithy.SerializationError{Err: err}
285	}
286
287	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
288		return out, metadata, &smithy.SerializationError{Err: err}
289	}
290
291	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
292		return out, metadata, &smithy.SerializationError{Err: err}
293	}
294	in.Request = request
295
296	return next.HandleSerialize(ctx, in)
297}
298func awsRestjson1_serializeOpHttpBindingsBatchImportFindingsInput(v *BatchImportFindingsInput, encoder *httpbinding.Encoder) error {
299	if v == nil {
300		return fmt.Errorf("unsupported serialization of nil %T", v)
301	}
302
303	return nil
304}
305
306func awsRestjson1_serializeOpDocumentBatchImportFindingsInput(v *BatchImportFindingsInput, value smithyjson.Value) error {
307	object := value.Object()
308	defer object.Close()
309
310	if v.Findings != nil {
311		ok := object.Key("Findings")
312		if err := awsRestjson1_serializeDocumentAwsSecurityFindingList(v.Findings, ok); err != nil {
313			return err
314		}
315	}
316
317	return nil
318}
319
320type awsRestjson1_serializeOpBatchUpdateFindings struct {
321}
322
323func (*awsRestjson1_serializeOpBatchUpdateFindings) ID() string {
324	return "OperationSerializer"
325}
326
327func (m *awsRestjson1_serializeOpBatchUpdateFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
328	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
329) {
330	request, ok := in.Request.(*smithyhttp.Request)
331	if !ok {
332		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
333	}
334
335	input, ok := in.Parameters.(*BatchUpdateFindingsInput)
336	_ = input
337	if !ok {
338		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
339	}
340
341	opPath, opQuery := httpbinding.SplitURI("/findings/batchupdate")
342	request.URL.Path = opPath
343	if len(request.URL.RawQuery) > 0 {
344		request.URL.RawQuery = "&" + opQuery
345	} else {
346		request.URL.RawQuery = opQuery
347	}
348
349	request.Method = "PATCH"
350	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
351	if err != nil {
352		return out, metadata, &smithy.SerializationError{Err: err}
353	}
354
355	restEncoder.SetHeader("Content-Type").String("application/json")
356
357	jsonEncoder := smithyjson.NewEncoder()
358	if err := awsRestjson1_serializeOpDocumentBatchUpdateFindingsInput(input, jsonEncoder.Value); err != nil {
359		return out, metadata, &smithy.SerializationError{Err: err}
360	}
361
362	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
363		return out, metadata, &smithy.SerializationError{Err: err}
364	}
365
366	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
367		return out, metadata, &smithy.SerializationError{Err: err}
368	}
369	in.Request = request
370
371	return next.HandleSerialize(ctx, in)
372}
373func awsRestjson1_serializeOpHttpBindingsBatchUpdateFindingsInput(v *BatchUpdateFindingsInput, encoder *httpbinding.Encoder) error {
374	if v == nil {
375		return fmt.Errorf("unsupported serialization of nil %T", v)
376	}
377
378	return nil
379}
380
381func awsRestjson1_serializeOpDocumentBatchUpdateFindingsInput(v *BatchUpdateFindingsInput, value smithyjson.Value) error {
382	object := value.Object()
383	defer object.Close()
384
385	if v.Confidence != 0 {
386		ok := object.Key("Confidence")
387		ok.Integer(v.Confidence)
388	}
389
390	if v.Criticality != 0 {
391		ok := object.Key("Criticality")
392		ok.Integer(v.Criticality)
393	}
394
395	if v.FindingIdentifiers != nil {
396		ok := object.Key("FindingIdentifiers")
397		if err := awsRestjson1_serializeDocumentAwsSecurityFindingIdentifierList(v.FindingIdentifiers, ok); err != nil {
398			return err
399		}
400	}
401
402	if v.Note != nil {
403		ok := object.Key("Note")
404		if err := awsRestjson1_serializeDocumentNoteUpdate(v.Note, ok); err != nil {
405			return err
406		}
407	}
408
409	if v.RelatedFindings != nil {
410		ok := object.Key("RelatedFindings")
411		if err := awsRestjson1_serializeDocumentRelatedFindingList(v.RelatedFindings, ok); err != nil {
412			return err
413		}
414	}
415
416	if v.Severity != nil {
417		ok := object.Key("Severity")
418		if err := awsRestjson1_serializeDocumentSeverityUpdate(v.Severity, ok); err != nil {
419			return err
420		}
421	}
422
423	if v.Types != nil {
424		ok := object.Key("Types")
425		if err := awsRestjson1_serializeDocumentTypeList(v.Types, ok); err != nil {
426			return err
427		}
428	}
429
430	if v.UserDefinedFields != nil {
431		ok := object.Key("UserDefinedFields")
432		if err := awsRestjson1_serializeDocumentFieldMap(v.UserDefinedFields, ok); err != nil {
433			return err
434		}
435	}
436
437	if len(v.VerificationState) > 0 {
438		ok := object.Key("VerificationState")
439		ok.String(string(v.VerificationState))
440	}
441
442	if v.Workflow != nil {
443		ok := object.Key("Workflow")
444		if err := awsRestjson1_serializeDocumentWorkflowUpdate(v.Workflow, ok); err != nil {
445			return err
446		}
447	}
448
449	return nil
450}
451
452type awsRestjson1_serializeOpCreateActionTarget struct {
453}
454
455func (*awsRestjson1_serializeOpCreateActionTarget) ID() string {
456	return "OperationSerializer"
457}
458
459func (m *awsRestjson1_serializeOpCreateActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
460	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
461) {
462	request, ok := in.Request.(*smithyhttp.Request)
463	if !ok {
464		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
465	}
466
467	input, ok := in.Parameters.(*CreateActionTargetInput)
468	_ = input
469	if !ok {
470		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
471	}
472
473	opPath, opQuery := httpbinding.SplitURI("/actionTargets")
474	request.URL.Path = opPath
475	if len(request.URL.RawQuery) > 0 {
476		request.URL.RawQuery = "&" + opQuery
477	} else {
478		request.URL.RawQuery = opQuery
479	}
480
481	request.Method = "POST"
482	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
483	if err != nil {
484		return out, metadata, &smithy.SerializationError{Err: err}
485	}
486
487	restEncoder.SetHeader("Content-Type").String("application/json")
488
489	jsonEncoder := smithyjson.NewEncoder()
490	if err := awsRestjson1_serializeOpDocumentCreateActionTargetInput(input, jsonEncoder.Value); err != nil {
491		return out, metadata, &smithy.SerializationError{Err: err}
492	}
493
494	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
495		return out, metadata, &smithy.SerializationError{Err: err}
496	}
497
498	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
499		return out, metadata, &smithy.SerializationError{Err: err}
500	}
501	in.Request = request
502
503	return next.HandleSerialize(ctx, in)
504}
505func awsRestjson1_serializeOpHttpBindingsCreateActionTargetInput(v *CreateActionTargetInput, encoder *httpbinding.Encoder) error {
506	if v == nil {
507		return fmt.Errorf("unsupported serialization of nil %T", v)
508	}
509
510	return nil
511}
512
513func awsRestjson1_serializeOpDocumentCreateActionTargetInput(v *CreateActionTargetInput, value smithyjson.Value) error {
514	object := value.Object()
515	defer object.Close()
516
517	if v.Description != nil {
518		ok := object.Key("Description")
519		ok.String(*v.Description)
520	}
521
522	if v.Id != nil {
523		ok := object.Key("Id")
524		ok.String(*v.Id)
525	}
526
527	if v.Name != nil {
528		ok := object.Key("Name")
529		ok.String(*v.Name)
530	}
531
532	return nil
533}
534
535type awsRestjson1_serializeOpCreateInsight struct {
536}
537
538func (*awsRestjson1_serializeOpCreateInsight) ID() string {
539	return "OperationSerializer"
540}
541
542func (m *awsRestjson1_serializeOpCreateInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
543	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
544) {
545	request, ok := in.Request.(*smithyhttp.Request)
546	if !ok {
547		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
548	}
549
550	input, ok := in.Parameters.(*CreateInsightInput)
551	_ = input
552	if !ok {
553		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
554	}
555
556	opPath, opQuery := httpbinding.SplitURI("/insights")
557	request.URL.Path = opPath
558	if len(request.URL.RawQuery) > 0 {
559		request.URL.RawQuery = "&" + opQuery
560	} else {
561		request.URL.RawQuery = opQuery
562	}
563
564	request.Method = "POST"
565	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
566	if err != nil {
567		return out, metadata, &smithy.SerializationError{Err: err}
568	}
569
570	restEncoder.SetHeader("Content-Type").String("application/json")
571
572	jsonEncoder := smithyjson.NewEncoder()
573	if err := awsRestjson1_serializeOpDocumentCreateInsightInput(input, jsonEncoder.Value); err != nil {
574		return out, metadata, &smithy.SerializationError{Err: err}
575	}
576
577	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
578		return out, metadata, &smithy.SerializationError{Err: err}
579	}
580
581	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
582		return out, metadata, &smithy.SerializationError{Err: err}
583	}
584	in.Request = request
585
586	return next.HandleSerialize(ctx, in)
587}
588func awsRestjson1_serializeOpHttpBindingsCreateInsightInput(v *CreateInsightInput, encoder *httpbinding.Encoder) error {
589	if v == nil {
590		return fmt.Errorf("unsupported serialization of nil %T", v)
591	}
592
593	return nil
594}
595
596func awsRestjson1_serializeOpDocumentCreateInsightInput(v *CreateInsightInput, value smithyjson.Value) error {
597	object := value.Object()
598	defer object.Close()
599
600	if v.Filters != nil {
601		ok := object.Key("Filters")
602		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
603			return err
604		}
605	}
606
607	if v.GroupByAttribute != nil {
608		ok := object.Key("GroupByAttribute")
609		ok.String(*v.GroupByAttribute)
610	}
611
612	if v.Name != nil {
613		ok := object.Key("Name")
614		ok.String(*v.Name)
615	}
616
617	return nil
618}
619
620type awsRestjson1_serializeOpCreateMembers struct {
621}
622
623func (*awsRestjson1_serializeOpCreateMembers) ID() string {
624	return "OperationSerializer"
625}
626
627func (m *awsRestjson1_serializeOpCreateMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
628	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
629) {
630	request, ok := in.Request.(*smithyhttp.Request)
631	if !ok {
632		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
633	}
634
635	input, ok := in.Parameters.(*CreateMembersInput)
636	_ = input
637	if !ok {
638		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
639	}
640
641	opPath, opQuery := httpbinding.SplitURI("/members")
642	request.URL.Path = opPath
643	if len(request.URL.RawQuery) > 0 {
644		request.URL.RawQuery = "&" + opQuery
645	} else {
646		request.URL.RawQuery = opQuery
647	}
648
649	request.Method = "POST"
650	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
651	if err != nil {
652		return out, metadata, &smithy.SerializationError{Err: err}
653	}
654
655	restEncoder.SetHeader("Content-Type").String("application/json")
656
657	jsonEncoder := smithyjson.NewEncoder()
658	if err := awsRestjson1_serializeOpDocumentCreateMembersInput(input, jsonEncoder.Value); err != nil {
659		return out, metadata, &smithy.SerializationError{Err: err}
660	}
661
662	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
663		return out, metadata, &smithy.SerializationError{Err: err}
664	}
665
666	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
667		return out, metadata, &smithy.SerializationError{Err: err}
668	}
669	in.Request = request
670
671	return next.HandleSerialize(ctx, in)
672}
673func awsRestjson1_serializeOpHttpBindingsCreateMembersInput(v *CreateMembersInput, encoder *httpbinding.Encoder) error {
674	if v == nil {
675		return fmt.Errorf("unsupported serialization of nil %T", v)
676	}
677
678	return nil
679}
680
681func awsRestjson1_serializeOpDocumentCreateMembersInput(v *CreateMembersInput, value smithyjson.Value) error {
682	object := value.Object()
683	defer object.Close()
684
685	if v.AccountDetails != nil {
686		ok := object.Key("AccountDetails")
687		if err := awsRestjson1_serializeDocumentAccountDetailsList(v.AccountDetails, ok); err != nil {
688			return err
689		}
690	}
691
692	return nil
693}
694
695type awsRestjson1_serializeOpDeclineInvitations struct {
696}
697
698func (*awsRestjson1_serializeOpDeclineInvitations) ID() string {
699	return "OperationSerializer"
700}
701
702func (m *awsRestjson1_serializeOpDeclineInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
703	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
704) {
705	request, ok := in.Request.(*smithyhttp.Request)
706	if !ok {
707		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
708	}
709
710	input, ok := in.Parameters.(*DeclineInvitationsInput)
711	_ = input
712	if !ok {
713		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
714	}
715
716	opPath, opQuery := httpbinding.SplitURI("/invitations/decline")
717	request.URL.Path = opPath
718	if len(request.URL.RawQuery) > 0 {
719		request.URL.RawQuery = "&" + opQuery
720	} else {
721		request.URL.RawQuery = opQuery
722	}
723
724	request.Method = "POST"
725	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
726	if err != nil {
727		return out, metadata, &smithy.SerializationError{Err: err}
728	}
729
730	restEncoder.SetHeader("Content-Type").String("application/json")
731
732	jsonEncoder := smithyjson.NewEncoder()
733	if err := awsRestjson1_serializeOpDocumentDeclineInvitationsInput(input, jsonEncoder.Value); err != nil {
734		return out, metadata, &smithy.SerializationError{Err: err}
735	}
736
737	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
738		return out, metadata, &smithy.SerializationError{Err: err}
739	}
740
741	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
742		return out, metadata, &smithy.SerializationError{Err: err}
743	}
744	in.Request = request
745
746	return next.HandleSerialize(ctx, in)
747}
748func awsRestjson1_serializeOpHttpBindingsDeclineInvitationsInput(v *DeclineInvitationsInput, encoder *httpbinding.Encoder) error {
749	if v == nil {
750		return fmt.Errorf("unsupported serialization of nil %T", v)
751	}
752
753	return nil
754}
755
756func awsRestjson1_serializeOpDocumentDeclineInvitationsInput(v *DeclineInvitationsInput, value smithyjson.Value) error {
757	object := value.Object()
758	defer object.Close()
759
760	if v.AccountIds != nil {
761		ok := object.Key("AccountIds")
762		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
763			return err
764		}
765	}
766
767	return nil
768}
769
770type awsRestjson1_serializeOpDeleteActionTarget struct {
771}
772
773func (*awsRestjson1_serializeOpDeleteActionTarget) ID() string {
774	return "OperationSerializer"
775}
776
777func (m *awsRestjson1_serializeOpDeleteActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
778	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
779) {
780	request, ok := in.Request.(*smithyhttp.Request)
781	if !ok {
782		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
783	}
784
785	input, ok := in.Parameters.(*DeleteActionTargetInput)
786	_ = input
787	if !ok {
788		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
789	}
790
791	opPath, opQuery := httpbinding.SplitURI("/actionTargets/{ActionTargetArn+}")
792	request.URL.Path = opPath
793	if len(request.URL.RawQuery) > 0 {
794		request.URL.RawQuery = "&" + opQuery
795	} else {
796		request.URL.RawQuery = opQuery
797	}
798
799	request.Method = "DELETE"
800	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
801	if err != nil {
802		return out, metadata, &smithy.SerializationError{Err: err}
803	}
804
805	if err := awsRestjson1_serializeOpHttpBindingsDeleteActionTargetInput(input, restEncoder); err != nil {
806		return out, metadata, &smithy.SerializationError{Err: err}
807	}
808
809	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
810		return out, metadata, &smithy.SerializationError{Err: err}
811	}
812	in.Request = request
813
814	return next.HandleSerialize(ctx, in)
815}
816func awsRestjson1_serializeOpHttpBindingsDeleteActionTargetInput(v *DeleteActionTargetInput, encoder *httpbinding.Encoder) error {
817	if v == nil {
818		return fmt.Errorf("unsupported serialization of nil %T", v)
819	}
820
821	if v.ActionTargetArn == nil || len(*v.ActionTargetArn) == 0 {
822		return &smithy.SerializationError{Err: fmt.Errorf("input member ActionTargetArn must not be empty")}
823	}
824	if v.ActionTargetArn != nil {
825		if err := encoder.SetURI("ActionTargetArn").String(*v.ActionTargetArn); err != nil {
826			return err
827		}
828	}
829
830	return nil
831}
832
833type awsRestjson1_serializeOpDeleteInsight struct {
834}
835
836func (*awsRestjson1_serializeOpDeleteInsight) ID() string {
837	return "OperationSerializer"
838}
839
840func (m *awsRestjson1_serializeOpDeleteInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
841	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
842) {
843	request, ok := in.Request.(*smithyhttp.Request)
844	if !ok {
845		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
846	}
847
848	input, ok := in.Parameters.(*DeleteInsightInput)
849	_ = input
850	if !ok {
851		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
852	}
853
854	opPath, opQuery := httpbinding.SplitURI("/insights/{InsightArn+}")
855	request.URL.Path = opPath
856	if len(request.URL.RawQuery) > 0 {
857		request.URL.RawQuery = "&" + opQuery
858	} else {
859		request.URL.RawQuery = opQuery
860	}
861
862	request.Method = "DELETE"
863	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
864	if err != nil {
865		return out, metadata, &smithy.SerializationError{Err: err}
866	}
867
868	if err := awsRestjson1_serializeOpHttpBindingsDeleteInsightInput(input, restEncoder); err != nil {
869		return out, metadata, &smithy.SerializationError{Err: err}
870	}
871
872	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
873		return out, metadata, &smithy.SerializationError{Err: err}
874	}
875	in.Request = request
876
877	return next.HandleSerialize(ctx, in)
878}
879func awsRestjson1_serializeOpHttpBindingsDeleteInsightInput(v *DeleteInsightInput, encoder *httpbinding.Encoder) error {
880	if v == nil {
881		return fmt.Errorf("unsupported serialization of nil %T", v)
882	}
883
884	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
885		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
886	}
887	if v.InsightArn != nil {
888		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
889			return err
890		}
891	}
892
893	return nil
894}
895
896type awsRestjson1_serializeOpDeleteInvitations struct {
897}
898
899func (*awsRestjson1_serializeOpDeleteInvitations) ID() string {
900	return "OperationSerializer"
901}
902
903func (m *awsRestjson1_serializeOpDeleteInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
904	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
905) {
906	request, ok := in.Request.(*smithyhttp.Request)
907	if !ok {
908		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
909	}
910
911	input, ok := in.Parameters.(*DeleteInvitationsInput)
912	_ = input
913	if !ok {
914		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
915	}
916
917	opPath, opQuery := httpbinding.SplitURI("/invitations/delete")
918	request.URL.Path = opPath
919	if len(request.URL.RawQuery) > 0 {
920		request.URL.RawQuery = "&" + opQuery
921	} else {
922		request.URL.RawQuery = opQuery
923	}
924
925	request.Method = "POST"
926	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
927	if err != nil {
928		return out, metadata, &smithy.SerializationError{Err: err}
929	}
930
931	restEncoder.SetHeader("Content-Type").String("application/json")
932
933	jsonEncoder := smithyjson.NewEncoder()
934	if err := awsRestjson1_serializeOpDocumentDeleteInvitationsInput(input, jsonEncoder.Value); err != nil {
935		return out, metadata, &smithy.SerializationError{Err: err}
936	}
937
938	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
939		return out, metadata, &smithy.SerializationError{Err: err}
940	}
941
942	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
943		return out, metadata, &smithy.SerializationError{Err: err}
944	}
945	in.Request = request
946
947	return next.HandleSerialize(ctx, in)
948}
949func awsRestjson1_serializeOpHttpBindingsDeleteInvitationsInput(v *DeleteInvitationsInput, encoder *httpbinding.Encoder) error {
950	if v == nil {
951		return fmt.Errorf("unsupported serialization of nil %T", v)
952	}
953
954	return nil
955}
956
957func awsRestjson1_serializeOpDocumentDeleteInvitationsInput(v *DeleteInvitationsInput, value smithyjson.Value) error {
958	object := value.Object()
959	defer object.Close()
960
961	if v.AccountIds != nil {
962		ok := object.Key("AccountIds")
963		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
964			return err
965		}
966	}
967
968	return nil
969}
970
971type awsRestjson1_serializeOpDeleteMembers struct {
972}
973
974func (*awsRestjson1_serializeOpDeleteMembers) ID() string {
975	return "OperationSerializer"
976}
977
978func (m *awsRestjson1_serializeOpDeleteMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
979	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
980) {
981	request, ok := in.Request.(*smithyhttp.Request)
982	if !ok {
983		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
984	}
985
986	input, ok := in.Parameters.(*DeleteMembersInput)
987	_ = input
988	if !ok {
989		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
990	}
991
992	opPath, opQuery := httpbinding.SplitURI("/members/delete")
993	request.URL.Path = opPath
994	if len(request.URL.RawQuery) > 0 {
995		request.URL.RawQuery = "&" + opQuery
996	} else {
997		request.URL.RawQuery = opQuery
998	}
999
1000	request.Method = "POST"
1001	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1002	if err != nil {
1003		return out, metadata, &smithy.SerializationError{Err: err}
1004	}
1005
1006	restEncoder.SetHeader("Content-Type").String("application/json")
1007
1008	jsonEncoder := smithyjson.NewEncoder()
1009	if err := awsRestjson1_serializeOpDocumentDeleteMembersInput(input, jsonEncoder.Value); err != nil {
1010		return out, metadata, &smithy.SerializationError{Err: err}
1011	}
1012
1013	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1014		return out, metadata, &smithy.SerializationError{Err: err}
1015	}
1016
1017	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1018		return out, metadata, &smithy.SerializationError{Err: err}
1019	}
1020	in.Request = request
1021
1022	return next.HandleSerialize(ctx, in)
1023}
1024func awsRestjson1_serializeOpHttpBindingsDeleteMembersInput(v *DeleteMembersInput, encoder *httpbinding.Encoder) error {
1025	if v == nil {
1026		return fmt.Errorf("unsupported serialization of nil %T", v)
1027	}
1028
1029	return nil
1030}
1031
1032func awsRestjson1_serializeOpDocumentDeleteMembersInput(v *DeleteMembersInput, value smithyjson.Value) error {
1033	object := value.Object()
1034	defer object.Close()
1035
1036	if v.AccountIds != nil {
1037		ok := object.Key("AccountIds")
1038		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
1039			return err
1040		}
1041	}
1042
1043	return nil
1044}
1045
1046type awsRestjson1_serializeOpDescribeActionTargets struct {
1047}
1048
1049func (*awsRestjson1_serializeOpDescribeActionTargets) ID() string {
1050	return "OperationSerializer"
1051}
1052
1053func (m *awsRestjson1_serializeOpDescribeActionTargets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1054	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1055) {
1056	request, ok := in.Request.(*smithyhttp.Request)
1057	if !ok {
1058		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1059	}
1060
1061	input, ok := in.Parameters.(*DescribeActionTargetsInput)
1062	_ = input
1063	if !ok {
1064		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1065	}
1066
1067	opPath, opQuery := httpbinding.SplitURI("/actionTargets/get")
1068	request.URL.Path = opPath
1069	if len(request.URL.RawQuery) > 0 {
1070		request.URL.RawQuery = "&" + opQuery
1071	} else {
1072		request.URL.RawQuery = opQuery
1073	}
1074
1075	request.Method = "POST"
1076	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1077	if err != nil {
1078		return out, metadata, &smithy.SerializationError{Err: err}
1079	}
1080
1081	restEncoder.SetHeader("Content-Type").String("application/json")
1082
1083	jsonEncoder := smithyjson.NewEncoder()
1084	if err := awsRestjson1_serializeOpDocumentDescribeActionTargetsInput(input, jsonEncoder.Value); err != nil {
1085		return out, metadata, &smithy.SerializationError{Err: err}
1086	}
1087
1088	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1089		return out, metadata, &smithy.SerializationError{Err: err}
1090	}
1091
1092	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1093		return out, metadata, &smithy.SerializationError{Err: err}
1094	}
1095	in.Request = request
1096
1097	return next.HandleSerialize(ctx, in)
1098}
1099func awsRestjson1_serializeOpHttpBindingsDescribeActionTargetsInput(v *DescribeActionTargetsInput, encoder *httpbinding.Encoder) error {
1100	if v == nil {
1101		return fmt.Errorf("unsupported serialization of nil %T", v)
1102	}
1103
1104	return nil
1105}
1106
1107func awsRestjson1_serializeOpDocumentDescribeActionTargetsInput(v *DescribeActionTargetsInput, value smithyjson.Value) error {
1108	object := value.Object()
1109	defer object.Close()
1110
1111	if v.ActionTargetArns != nil {
1112		ok := object.Key("ActionTargetArns")
1113		if err := awsRestjson1_serializeDocumentArnList(v.ActionTargetArns, ok); err != nil {
1114			return err
1115		}
1116	}
1117
1118	if v.MaxResults != 0 {
1119		ok := object.Key("MaxResults")
1120		ok.Integer(v.MaxResults)
1121	}
1122
1123	if v.NextToken != nil {
1124		ok := object.Key("NextToken")
1125		ok.String(*v.NextToken)
1126	}
1127
1128	return nil
1129}
1130
1131type awsRestjson1_serializeOpDescribeHub struct {
1132}
1133
1134func (*awsRestjson1_serializeOpDescribeHub) ID() string {
1135	return "OperationSerializer"
1136}
1137
1138func (m *awsRestjson1_serializeOpDescribeHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1139	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1140) {
1141	request, ok := in.Request.(*smithyhttp.Request)
1142	if !ok {
1143		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1144	}
1145
1146	input, ok := in.Parameters.(*DescribeHubInput)
1147	_ = input
1148	if !ok {
1149		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1150	}
1151
1152	opPath, opQuery := httpbinding.SplitURI("/accounts")
1153	request.URL.Path = opPath
1154	if len(request.URL.RawQuery) > 0 {
1155		request.URL.RawQuery = "&" + opQuery
1156	} else {
1157		request.URL.RawQuery = opQuery
1158	}
1159
1160	request.Method = "GET"
1161	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1162	if err != nil {
1163		return out, metadata, &smithy.SerializationError{Err: err}
1164	}
1165
1166	if err := awsRestjson1_serializeOpHttpBindingsDescribeHubInput(input, restEncoder); err != nil {
1167		return out, metadata, &smithy.SerializationError{Err: err}
1168	}
1169
1170	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1171		return out, metadata, &smithy.SerializationError{Err: err}
1172	}
1173	in.Request = request
1174
1175	return next.HandleSerialize(ctx, in)
1176}
1177func awsRestjson1_serializeOpHttpBindingsDescribeHubInput(v *DescribeHubInput, encoder *httpbinding.Encoder) error {
1178	if v == nil {
1179		return fmt.Errorf("unsupported serialization of nil %T", v)
1180	}
1181
1182	if v.HubArn != nil {
1183		encoder.SetQuery("HubArn").String(*v.HubArn)
1184	}
1185
1186	return nil
1187}
1188
1189type awsRestjson1_serializeOpDescribeOrganizationConfiguration struct {
1190}
1191
1192func (*awsRestjson1_serializeOpDescribeOrganizationConfiguration) ID() string {
1193	return "OperationSerializer"
1194}
1195
1196func (m *awsRestjson1_serializeOpDescribeOrganizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1197	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1198) {
1199	request, ok := in.Request.(*smithyhttp.Request)
1200	if !ok {
1201		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1202	}
1203
1204	input, ok := in.Parameters.(*DescribeOrganizationConfigurationInput)
1205	_ = input
1206	if !ok {
1207		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1208	}
1209
1210	opPath, opQuery := httpbinding.SplitURI("/organization/configuration")
1211	request.URL.Path = opPath
1212	if len(request.URL.RawQuery) > 0 {
1213		request.URL.RawQuery = "&" + opQuery
1214	} else {
1215		request.URL.RawQuery = opQuery
1216	}
1217
1218	request.Method = "GET"
1219	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1220	if err != nil {
1221		return out, metadata, &smithy.SerializationError{Err: err}
1222	}
1223
1224	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1225		return out, metadata, &smithy.SerializationError{Err: err}
1226	}
1227	in.Request = request
1228
1229	return next.HandleSerialize(ctx, in)
1230}
1231func awsRestjson1_serializeOpHttpBindingsDescribeOrganizationConfigurationInput(v *DescribeOrganizationConfigurationInput, encoder *httpbinding.Encoder) error {
1232	if v == nil {
1233		return fmt.Errorf("unsupported serialization of nil %T", v)
1234	}
1235
1236	return nil
1237}
1238
1239type awsRestjson1_serializeOpDescribeProducts struct {
1240}
1241
1242func (*awsRestjson1_serializeOpDescribeProducts) ID() string {
1243	return "OperationSerializer"
1244}
1245
1246func (m *awsRestjson1_serializeOpDescribeProducts) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1247	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1248) {
1249	request, ok := in.Request.(*smithyhttp.Request)
1250	if !ok {
1251		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1252	}
1253
1254	input, ok := in.Parameters.(*DescribeProductsInput)
1255	_ = input
1256	if !ok {
1257		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1258	}
1259
1260	opPath, opQuery := httpbinding.SplitURI("/products")
1261	request.URL.Path = opPath
1262	if len(request.URL.RawQuery) > 0 {
1263		request.URL.RawQuery = "&" + opQuery
1264	} else {
1265		request.URL.RawQuery = opQuery
1266	}
1267
1268	request.Method = "GET"
1269	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1270	if err != nil {
1271		return out, metadata, &smithy.SerializationError{Err: err}
1272	}
1273
1274	if err := awsRestjson1_serializeOpHttpBindingsDescribeProductsInput(input, restEncoder); err != nil {
1275		return out, metadata, &smithy.SerializationError{Err: err}
1276	}
1277
1278	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1279		return out, metadata, &smithy.SerializationError{Err: err}
1280	}
1281	in.Request = request
1282
1283	return next.HandleSerialize(ctx, in)
1284}
1285func awsRestjson1_serializeOpHttpBindingsDescribeProductsInput(v *DescribeProductsInput, encoder *httpbinding.Encoder) error {
1286	if v == nil {
1287		return fmt.Errorf("unsupported serialization of nil %T", v)
1288	}
1289
1290	if v.MaxResults != 0 {
1291		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1292	}
1293
1294	if v.NextToken != nil {
1295		encoder.SetQuery("NextToken").String(*v.NextToken)
1296	}
1297
1298	return nil
1299}
1300
1301type awsRestjson1_serializeOpDescribeStandards struct {
1302}
1303
1304func (*awsRestjson1_serializeOpDescribeStandards) ID() string {
1305	return "OperationSerializer"
1306}
1307
1308func (m *awsRestjson1_serializeOpDescribeStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1309	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1310) {
1311	request, ok := in.Request.(*smithyhttp.Request)
1312	if !ok {
1313		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1314	}
1315
1316	input, ok := in.Parameters.(*DescribeStandardsInput)
1317	_ = input
1318	if !ok {
1319		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1320	}
1321
1322	opPath, opQuery := httpbinding.SplitURI("/standards")
1323	request.URL.Path = opPath
1324	if len(request.URL.RawQuery) > 0 {
1325		request.URL.RawQuery = "&" + opQuery
1326	} else {
1327		request.URL.RawQuery = opQuery
1328	}
1329
1330	request.Method = "GET"
1331	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1332	if err != nil {
1333		return out, metadata, &smithy.SerializationError{Err: err}
1334	}
1335
1336	if err := awsRestjson1_serializeOpHttpBindingsDescribeStandardsInput(input, restEncoder); err != nil {
1337		return out, metadata, &smithy.SerializationError{Err: err}
1338	}
1339
1340	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1341		return out, metadata, &smithy.SerializationError{Err: err}
1342	}
1343	in.Request = request
1344
1345	return next.HandleSerialize(ctx, in)
1346}
1347func awsRestjson1_serializeOpHttpBindingsDescribeStandardsInput(v *DescribeStandardsInput, encoder *httpbinding.Encoder) error {
1348	if v == nil {
1349		return fmt.Errorf("unsupported serialization of nil %T", v)
1350	}
1351
1352	if v.MaxResults != 0 {
1353		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1354	}
1355
1356	if v.NextToken != nil {
1357		encoder.SetQuery("NextToken").String(*v.NextToken)
1358	}
1359
1360	return nil
1361}
1362
1363type awsRestjson1_serializeOpDescribeStandardsControls struct {
1364}
1365
1366func (*awsRestjson1_serializeOpDescribeStandardsControls) ID() string {
1367	return "OperationSerializer"
1368}
1369
1370func (m *awsRestjson1_serializeOpDescribeStandardsControls) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1371	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1372) {
1373	request, ok := in.Request.(*smithyhttp.Request)
1374	if !ok {
1375		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1376	}
1377
1378	input, ok := in.Parameters.(*DescribeStandardsControlsInput)
1379	_ = input
1380	if !ok {
1381		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1382	}
1383
1384	opPath, opQuery := httpbinding.SplitURI("/standards/controls/{StandardsSubscriptionArn+}")
1385	request.URL.Path = opPath
1386	if len(request.URL.RawQuery) > 0 {
1387		request.URL.RawQuery = "&" + opQuery
1388	} else {
1389		request.URL.RawQuery = opQuery
1390	}
1391
1392	request.Method = "GET"
1393	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1394	if err != nil {
1395		return out, metadata, &smithy.SerializationError{Err: err}
1396	}
1397
1398	if err := awsRestjson1_serializeOpHttpBindingsDescribeStandardsControlsInput(input, restEncoder); err != nil {
1399		return out, metadata, &smithy.SerializationError{Err: err}
1400	}
1401
1402	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1403		return out, metadata, &smithy.SerializationError{Err: err}
1404	}
1405	in.Request = request
1406
1407	return next.HandleSerialize(ctx, in)
1408}
1409func awsRestjson1_serializeOpHttpBindingsDescribeStandardsControlsInput(v *DescribeStandardsControlsInput, encoder *httpbinding.Encoder) error {
1410	if v == nil {
1411		return fmt.Errorf("unsupported serialization of nil %T", v)
1412	}
1413
1414	if v.MaxResults != 0 {
1415		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1416	}
1417
1418	if v.NextToken != nil {
1419		encoder.SetQuery("NextToken").String(*v.NextToken)
1420	}
1421
1422	if v.StandardsSubscriptionArn == nil || len(*v.StandardsSubscriptionArn) == 0 {
1423		return &smithy.SerializationError{Err: fmt.Errorf("input member StandardsSubscriptionArn must not be empty")}
1424	}
1425	if v.StandardsSubscriptionArn != nil {
1426		if err := encoder.SetURI("StandardsSubscriptionArn").String(*v.StandardsSubscriptionArn); err != nil {
1427			return err
1428		}
1429	}
1430
1431	return nil
1432}
1433
1434type awsRestjson1_serializeOpDisableImportFindingsForProduct struct {
1435}
1436
1437func (*awsRestjson1_serializeOpDisableImportFindingsForProduct) ID() string {
1438	return "OperationSerializer"
1439}
1440
1441func (m *awsRestjson1_serializeOpDisableImportFindingsForProduct) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1442	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1443) {
1444	request, ok := in.Request.(*smithyhttp.Request)
1445	if !ok {
1446		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1447	}
1448
1449	input, ok := in.Parameters.(*DisableImportFindingsForProductInput)
1450	_ = input
1451	if !ok {
1452		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1453	}
1454
1455	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions/{ProductSubscriptionArn+}")
1456	request.URL.Path = opPath
1457	if len(request.URL.RawQuery) > 0 {
1458		request.URL.RawQuery = "&" + opQuery
1459	} else {
1460		request.URL.RawQuery = opQuery
1461	}
1462
1463	request.Method = "DELETE"
1464	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1465	if err != nil {
1466		return out, metadata, &smithy.SerializationError{Err: err}
1467	}
1468
1469	if err := awsRestjson1_serializeOpHttpBindingsDisableImportFindingsForProductInput(input, restEncoder); err != nil {
1470		return out, metadata, &smithy.SerializationError{Err: err}
1471	}
1472
1473	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1474		return out, metadata, &smithy.SerializationError{Err: err}
1475	}
1476	in.Request = request
1477
1478	return next.HandleSerialize(ctx, in)
1479}
1480func awsRestjson1_serializeOpHttpBindingsDisableImportFindingsForProductInput(v *DisableImportFindingsForProductInput, encoder *httpbinding.Encoder) error {
1481	if v == nil {
1482		return fmt.Errorf("unsupported serialization of nil %T", v)
1483	}
1484
1485	if v.ProductSubscriptionArn == nil || len(*v.ProductSubscriptionArn) == 0 {
1486		return &smithy.SerializationError{Err: fmt.Errorf("input member ProductSubscriptionArn must not be empty")}
1487	}
1488	if v.ProductSubscriptionArn != nil {
1489		if err := encoder.SetURI("ProductSubscriptionArn").String(*v.ProductSubscriptionArn); err != nil {
1490			return err
1491		}
1492	}
1493
1494	return nil
1495}
1496
1497type awsRestjson1_serializeOpDisableOrganizationAdminAccount struct {
1498}
1499
1500func (*awsRestjson1_serializeOpDisableOrganizationAdminAccount) ID() string {
1501	return "OperationSerializer"
1502}
1503
1504func (m *awsRestjson1_serializeOpDisableOrganizationAdminAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1505	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1506) {
1507	request, ok := in.Request.(*smithyhttp.Request)
1508	if !ok {
1509		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1510	}
1511
1512	input, ok := in.Parameters.(*DisableOrganizationAdminAccountInput)
1513	_ = input
1514	if !ok {
1515		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1516	}
1517
1518	opPath, opQuery := httpbinding.SplitURI("/organization/admin/disable")
1519	request.URL.Path = opPath
1520	if len(request.URL.RawQuery) > 0 {
1521		request.URL.RawQuery = "&" + opQuery
1522	} else {
1523		request.URL.RawQuery = opQuery
1524	}
1525
1526	request.Method = "POST"
1527	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1528	if err != nil {
1529		return out, metadata, &smithy.SerializationError{Err: err}
1530	}
1531
1532	restEncoder.SetHeader("Content-Type").String("application/json")
1533
1534	jsonEncoder := smithyjson.NewEncoder()
1535	if err := awsRestjson1_serializeOpDocumentDisableOrganizationAdminAccountInput(input, jsonEncoder.Value); err != nil {
1536		return out, metadata, &smithy.SerializationError{Err: err}
1537	}
1538
1539	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1540		return out, metadata, &smithy.SerializationError{Err: err}
1541	}
1542
1543	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1544		return out, metadata, &smithy.SerializationError{Err: err}
1545	}
1546	in.Request = request
1547
1548	return next.HandleSerialize(ctx, in)
1549}
1550func awsRestjson1_serializeOpHttpBindingsDisableOrganizationAdminAccountInput(v *DisableOrganizationAdminAccountInput, encoder *httpbinding.Encoder) error {
1551	if v == nil {
1552		return fmt.Errorf("unsupported serialization of nil %T", v)
1553	}
1554
1555	return nil
1556}
1557
1558func awsRestjson1_serializeOpDocumentDisableOrganizationAdminAccountInput(v *DisableOrganizationAdminAccountInput, value smithyjson.Value) error {
1559	object := value.Object()
1560	defer object.Close()
1561
1562	if v.AdminAccountId != nil {
1563		ok := object.Key("AdminAccountId")
1564		ok.String(*v.AdminAccountId)
1565	}
1566
1567	return nil
1568}
1569
1570type awsRestjson1_serializeOpDisableSecurityHub struct {
1571}
1572
1573func (*awsRestjson1_serializeOpDisableSecurityHub) ID() string {
1574	return "OperationSerializer"
1575}
1576
1577func (m *awsRestjson1_serializeOpDisableSecurityHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1578	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1579) {
1580	request, ok := in.Request.(*smithyhttp.Request)
1581	if !ok {
1582		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1583	}
1584
1585	input, ok := in.Parameters.(*DisableSecurityHubInput)
1586	_ = input
1587	if !ok {
1588		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1589	}
1590
1591	opPath, opQuery := httpbinding.SplitURI("/accounts")
1592	request.URL.Path = opPath
1593	if len(request.URL.RawQuery) > 0 {
1594		request.URL.RawQuery = "&" + opQuery
1595	} else {
1596		request.URL.RawQuery = opQuery
1597	}
1598
1599	request.Method = "DELETE"
1600	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1601	if err != nil {
1602		return out, metadata, &smithy.SerializationError{Err: err}
1603	}
1604
1605	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1606		return out, metadata, &smithy.SerializationError{Err: err}
1607	}
1608	in.Request = request
1609
1610	return next.HandleSerialize(ctx, in)
1611}
1612func awsRestjson1_serializeOpHttpBindingsDisableSecurityHubInput(v *DisableSecurityHubInput, encoder *httpbinding.Encoder) error {
1613	if v == nil {
1614		return fmt.Errorf("unsupported serialization of nil %T", v)
1615	}
1616
1617	return nil
1618}
1619
1620type awsRestjson1_serializeOpDisassociateFromMasterAccount struct {
1621}
1622
1623func (*awsRestjson1_serializeOpDisassociateFromMasterAccount) ID() string {
1624	return "OperationSerializer"
1625}
1626
1627func (m *awsRestjson1_serializeOpDisassociateFromMasterAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1628	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1629) {
1630	request, ok := in.Request.(*smithyhttp.Request)
1631	if !ok {
1632		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1633	}
1634
1635	input, ok := in.Parameters.(*DisassociateFromMasterAccountInput)
1636	_ = input
1637	if !ok {
1638		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1639	}
1640
1641	opPath, opQuery := httpbinding.SplitURI("/master/disassociate")
1642	request.URL.Path = opPath
1643	if len(request.URL.RawQuery) > 0 {
1644		request.URL.RawQuery = "&" + opQuery
1645	} else {
1646		request.URL.RawQuery = opQuery
1647	}
1648
1649	request.Method = "POST"
1650	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1651	if err != nil {
1652		return out, metadata, &smithy.SerializationError{Err: err}
1653	}
1654
1655	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1656		return out, metadata, &smithy.SerializationError{Err: err}
1657	}
1658	in.Request = request
1659
1660	return next.HandleSerialize(ctx, in)
1661}
1662func awsRestjson1_serializeOpHttpBindingsDisassociateFromMasterAccountInput(v *DisassociateFromMasterAccountInput, encoder *httpbinding.Encoder) error {
1663	if v == nil {
1664		return fmt.Errorf("unsupported serialization of nil %T", v)
1665	}
1666
1667	return nil
1668}
1669
1670type awsRestjson1_serializeOpDisassociateMembers struct {
1671}
1672
1673func (*awsRestjson1_serializeOpDisassociateMembers) ID() string {
1674	return "OperationSerializer"
1675}
1676
1677func (m *awsRestjson1_serializeOpDisassociateMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1678	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1679) {
1680	request, ok := in.Request.(*smithyhttp.Request)
1681	if !ok {
1682		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1683	}
1684
1685	input, ok := in.Parameters.(*DisassociateMembersInput)
1686	_ = input
1687	if !ok {
1688		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1689	}
1690
1691	opPath, opQuery := httpbinding.SplitURI("/members/disassociate")
1692	request.URL.Path = opPath
1693	if len(request.URL.RawQuery) > 0 {
1694		request.URL.RawQuery = "&" + opQuery
1695	} else {
1696		request.URL.RawQuery = opQuery
1697	}
1698
1699	request.Method = "POST"
1700	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1701	if err != nil {
1702		return out, metadata, &smithy.SerializationError{Err: err}
1703	}
1704
1705	restEncoder.SetHeader("Content-Type").String("application/json")
1706
1707	jsonEncoder := smithyjson.NewEncoder()
1708	if err := awsRestjson1_serializeOpDocumentDisassociateMembersInput(input, jsonEncoder.Value); err != nil {
1709		return out, metadata, &smithy.SerializationError{Err: err}
1710	}
1711
1712	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1713		return out, metadata, &smithy.SerializationError{Err: err}
1714	}
1715
1716	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1717		return out, metadata, &smithy.SerializationError{Err: err}
1718	}
1719	in.Request = request
1720
1721	return next.HandleSerialize(ctx, in)
1722}
1723func awsRestjson1_serializeOpHttpBindingsDisassociateMembersInput(v *DisassociateMembersInput, encoder *httpbinding.Encoder) error {
1724	if v == nil {
1725		return fmt.Errorf("unsupported serialization of nil %T", v)
1726	}
1727
1728	return nil
1729}
1730
1731func awsRestjson1_serializeOpDocumentDisassociateMembersInput(v *DisassociateMembersInput, value smithyjson.Value) error {
1732	object := value.Object()
1733	defer object.Close()
1734
1735	if v.AccountIds != nil {
1736		ok := object.Key("AccountIds")
1737		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
1738			return err
1739		}
1740	}
1741
1742	return nil
1743}
1744
1745type awsRestjson1_serializeOpEnableImportFindingsForProduct struct {
1746}
1747
1748func (*awsRestjson1_serializeOpEnableImportFindingsForProduct) ID() string {
1749	return "OperationSerializer"
1750}
1751
1752func (m *awsRestjson1_serializeOpEnableImportFindingsForProduct) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1753	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1754) {
1755	request, ok := in.Request.(*smithyhttp.Request)
1756	if !ok {
1757		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1758	}
1759
1760	input, ok := in.Parameters.(*EnableImportFindingsForProductInput)
1761	_ = input
1762	if !ok {
1763		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1764	}
1765
1766	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions")
1767	request.URL.Path = opPath
1768	if len(request.URL.RawQuery) > 0 {
1769		request.URL.RawQuery = "&" + opQuery
1770	} else {
1771		request.URL.RawQuery = opQuery
1772	}
1773
1774	request.Method = "POST"
1775	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1776	if err != nil {
1777		return out, metadata, &smithy.SerializationError{Err: err}
1778	}
1779
1780	restEncoder.SetHeader("Content-Type").String("application/json")
1781
1782	jsonEncoder := smithyjson.NewEncoder()
1783	if err := awsRestjson1_serializeOpDocumentEnableImportFindingsForProductInput(input, jsonEncoder.Value); err != nil {
1784		return out, metadata, &smithy.SerializationError{Err: err}
1785	}
1786
1787	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1788		return out, metadata, &smithy.SerializationError{Err: err}
1789	}
1790
1791	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1792		return out, metadata, &smithy.SerializationError{Err: err}
1793	}
1794	in.Request = request
1795
1796	return next.HandleSerialize(ctx, in)
1797}
1798func awsRestjson1_serializeOpHttpBindingsEnableImportFindingsForProductInput(v *EnableImportFindingsForProductInput, encoder *httpbinding.Encoder) error {
1799	if v == nil {
1800		return fmt.Errorf("unsupported serialization of nil %T", v)
1801	}
1802
1803	return nil
1804}
1805
1806func awsRestjson1_serializeOpDocumentEnableImportFindingsForProductInput(v *EnableImportFindingsForProductInput, value smithyjson.Value) error {
1807	object := value.Object()
1808	defer object.Close()
1809
1810	if v.ProductArn != nil {
1811		ok := object.Key("ProductArn")
1812		ok.String(*v.ProductArn)
1813	}
1814
1815	return nil
1816}
1817
1818type awsRestjson1_serializeOpEnableOrganizationAdminAccount struct {
1819}
1820
1821func (*awsRestjson1_serializeOpEnableOrganizationAdminAccount) ID() string {
1822	return "OperationSerializer"
1823}
1824
1825func (m *awsRestjson1_serializeOpEnableOrganizationAdminAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1826	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1827) {
1828	request, ok := in.Request.(*smithyhttp.Request)
1829	if !ok {
1830		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1831	}
1832
1833	input, ok := in.Parameters.(*EnableOrganizationAdminAccountInput)
1834	_ = input
1835	if !ok {
1836		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1837	}
1838
1839	opPath, opQuery := httpbinding.SplitURI("/organization/admin/enable")
1840	request.URL.Path = opPath
1841	if len(request.URL.RawQuery) > 0 {
1842		request.URL.RawQuery = "&" + opQuery
1843	} else {
1844		request.URL.RawQuery = opQuery
1845	}
1846
1847	request.Method = "POST"
1848	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1849	if err != nil {
1850		return out, metadata, &smithy.SerializationError{Err: err}
1851	}
1852
1853	restEncoder.SetHeader("Content-Type").String("application/json")
1854
1855	jsonEncoder := smithyjson.NewEncoder()
1856	if err := awsRestjson1_serializeOpDocumentEnableOrganizationAdminAccountInput(input, jsonEncoder.Value); err != nil {
1857		return out, metadata, &smithy.SerializationError{Err: err}
1858	}
1859
1860	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1861		return out, metadata, &smithy.SerializationError{Err: err}
1862	}
1863
1864	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1865		return out, metadata, &smithy.SerializationError{Err: err}
1866	}
1867	in.Request = request
1868
1869	return next.HandleSerialize(ctx, in)
1870}
1871func awsRestjson1_serializeOpHttpBindingsEnableOrganizationAdminAccountInput(v *EnableOrganizationAdminAccountInput, encoder *httpbinding.Encoder) error {
1872	if v == nil {
1873		return fmt.Errorf("unsupported serialization of nil %T", v)
1874	}
1875
1876	return nil
1877}
1878
1879func awsRestjson1_serializeOpDocumentEnableOrganizationAdminAccountInput(v *EnableOrganizationAdminAccountInput, value smithyjson.Value) error {
1880	object := value.Object()
1881	defer object.Close()
1882
1883	if v.AdminAccountId != nil {
1884		ok := object.Key("AdminAccountId")
1885		ok.String(*v.AdminAccountId)
1886	}
1887
1888	return nil
1889}
1890
1891type awsRestjson1_serializeOpEnableSecurityHub struct {
1892}
1893
1894func (*awsRestjson1_serializeOpEnableSecurityHub) ID() string {
1895	return "OperationSerializer"
1896}
1897
1898func (m *awsRestjson1_serializeOpEnableSecurityHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1899	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1900) {
1901	request, ok := in.Request.(*smithyhttp.Request)
1902	if !ok {
1903		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1904	}
1905
1906	input, ok := in.Parameters.(*EnableSecurityHubInput)
1907	_ = input
1908	if !ok {
1909		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1910	}
1911
1912	opPath, opQuery := httpbinding.SplitURI("/accounts")
1913	request.URL.Path = opPath
1914	if len(request.URL.RawQuery) > 0 {
1915		request.URL.RawQuery = "&" + opQuery
1916	} else {
1917		request.URL.RawQuery = opQuery
1918	}
1919
1920	request.Method = "POST"
1921	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1922	if err != nil {
1923		return out, metadata, &smithy.SerializationError{Err: err}
1924	}
1925
1926	restEncoder.SetHeader("Content-Type").String("application/json")
1927
1928	jsonEncoder := smithyjson.NewEncoder()
1929	if err := awsRestjson1_serializeOpDocumentEnableSecurityHubInput(input, jsonEncoder.Value); err != nil {
1930		return out, metadata, &smithy.SerializationError{Err: err}
1931	}
1932
1933	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1934		return out, metadata, &smithy.SerializationError{Err: err}
1935	}
1936
1937	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1938		return out, metadata, &smithy.SerializationError{Err: err}
1939	}
1940	in.Request = request
1941
1942	return next.HandleSerialize(ctx, in)
1943}
1944func awsRestjson1_serializeOpHttpBindingsEnableSecurityHubInput(v *EnableSecurityHubInput, encoder *httpbinding.Encoder) error {
1945	if v == nil {
1946		return fmt.Errorf("unsupported serialization of nil %T", v)
1947	}
1948
1949	return nil
1950}
1951
1952func awsRestjson1_serializeOpDocumentEnableSecurityHubInput(v *EnableSecurityHubInput, value smithyjson.Value) error {
1953	object := value.Object()
1954	defer object.Close()
1955
1956	if v.EnableDefaultStandards {
1957		ok := object.Key("EnableDefaultStandards")
1958		ok.Boolean(v.EnableDefaultStandards)
1959	}
1960
1961	if v.Tags != nil {
1962		ok := object.Key("Tags")
1963		if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil {
1964			return err
1965		}
1966	}
1967
1968	return nil
1969}
1970
1971type awsRestjson1_serializeOpGetEnabledStandards struct {
1972}
1973
1974func (*awsRestjson1_serializeOpGetEnabledStandards) ID() string {
1975	return "OperationSerializer"
1976}
1977
1978func (m *awsRestjson1_serializeOpGetEnabledStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1979	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1980) {
1981	request, ok := in.Request.(*smithyhttp.Request)
1982	if !ok {
1983		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1984	}
1985
1986	input, ok := in.Parameters.(*GetEnabledStandardsInput)
1987	_ = input
1988	if !ok {
1989		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1990	}
1991
1992	opPath, opQuery := httpbinding.SplitURI("/standards/get")
1993	request.URL.Path = opPath
1994	if len(request.URL.RawQuery) > 0 {
1995		request.URL.RawQuery = "&" + opQuery
1996	} else {
1997		request.URL.RawQuery = opQuery
1998	}
1999
2000	request.Method = "POST"
2001	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2002	if err != nil {
2003		return out, metadata, &smithy.SerializationError{Err: err}
2004	}
2005
2006	restEncoder.SetHeader("Content-Type").String("application/json")
2007
2008	jsonEncoder := smithyjson.NewEncoder()
2009	if err := awsRestjson1_serializeOpDocumentGetEnabledStandardsInput(input, jsonEncoder.Value); err != nil {
2010		return out, metadata, &smithy.SerializationError{Err: err}
2011	}
2012
2013	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2014		return out, metadata, &smithy.SerializationError{Err: err}
2015	}
2016
2017	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2018		return out, metadata, &smithy.SerializationError{Err: err}
2019	}
2020	in.Request = request
2021
2022	return next.HandleSerialize(ctx, in)
2023}
2024func awsRestjson1_serializeOpHttpBindingsGetEnabledStandardsInput(v *GetEnabledStandardsInput, encoder *httpbinding.Encoder) error {
2025	if v == nil {
2026		return fmt.Errorf("unsupported serialization of nil %T", v)
2027	}
2028
2029	return nil
2030}
2031
2032func awsRestjson1_serializeOpDocumentGetEnabledStandardsInput(v *GetEnabledStandardsInput, value smithyjson.Value) error {
2033	object := value.Object()
2034	defer object.Close()
2035
2036	if v.MaxResults != 0 {
2037		ok := object.Key("MaxResults")
2038		ok.Integer(v.MaxResults)
2039	}
2040
2041	if v.NextToken != nil {
2042		ok := object.Key("NextToken")
2043		ok.String(*v.NextToken)
2044	}
2045
2046	if v.StandardsSubscriptionArns != nil {
2047		ok := object.Key("StandardsSubscriptionArns")
2048		if err := awsRestjson1_serializeDocumentStandardsSubscriptionArns(v.StandardsSubscriptionArns, ok); err != nil {
2049			return err
2050		}
2051	}
2052
2053	return nil
2054}
2055
2056type awsRestjson1_serializeOpGetFindings struct {
2057}
2058
2059func (*awsRestjson1_serializeOpGetFindings) ID() string {
2060	return "OperationSerializer"
2061}
2062
2063func (m *awsRestjson1_serializeOpGetFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2064	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2065) {
2066	request, ok := in.Request.(*smithyhttp.Request)
2067	if !ok {
2068		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2069	}
2070
2071	input, ok := in.Parameters.(*GetFindingsInput)
2072	_ = input
2073	if !ok {
2074		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2075	}
2076
2077	opPath, opQuery := httpbinding.SplitURI("/findings")
2078	request.URL.Path = opPath
2079	if len(request.URL.RawQuery) > 0 {
2080		request.URL.RawQuery = "&" + opQuery
2081	} else {
2082		request.URL.RawQuery = opQuery
2083	}
2084
2085	request.Method = "POST"
2086	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2087	if err != nil {
2088		return out, metadata, &smithy.SerializationError{Err: err}
2089	}
2090
2091	restEncoder.SetHeader("Content-Type").String("application/json")
2092
2093	jsonEncoder := smithyjson.NewEncoder()
2094	if err := awsRestjson1_serializeOpDocumentGetFindingsInput(input, jsonEncoder.Value); err != nil {
2095		return out, metadata, &smithy.SerializationError{Err: err}
2096	}
2097
2098	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2099		return out, metadata, &smithy.SerializationError{Err: err}
2100	}
2101
2102	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2103		return out, metadata, &smithy.SerializationError{Err: err}
2104	}
2105	in.Request = request
2106
2107	return next.HandleSerialize(ctx, in)
2108}
2109func awsRestjson1_serializeOpHttpBindingsGetFindingsInput(v *GetFindingsInput, encoder *httpbinding.Encoder) error {
2110	if v == nil {
2111		return fmt.Errorf("unsupported serialization of nil %T", v)
2112	}
2113
2114	return nil
2115}
2116
2117func awsRestjson1_serializeOpDocumentGetFindingsInput(v *GetFindingsInput, value smithyjson.Value) error {
2118	object := value.Object()
2119	defer object.Close()
2120
2121	if v.Filters != nil {
2122		ok := object.Key("Filters")
2123		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
2124			return err
2125		}
2126	}
2127
2128	if v.MaxResults != 0 {
2129		ok := object.Key("MaxResults")
2130		ok.Integer(v.MaxResults)
2131	}
2132
2133	if v.NextToken != nil {
2134		ok := object.Key("NextToken")
2135		ok.String(*v.NextToken)
2136	}
2137
2138	if v.SortCriteria != nil {
2139		ok := object.Key("SortCriteria")
2140		if err := awsRestjson1_serializeDocumentSortCriteria(v.SortCriteria, ok); err != nil {
2141			return err
2142		}
2143	}
2144
2145	return nil
2146}
2147
2148type awsRestjson1_serializeOpGetInsightResults struct {
2149}
2150
2151func (*awsRestjson1_serializeOpGetInsightResults) ID() string {
2152	return "OperationSerializer"
2153}
2154
2155func (m *awsRestjson1_serializeOpGetInsightResults) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2156	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2157) {
2158	request, ok := in.Request.(*smithyhttp.Request)
2159	if !ok {
2160		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2161	}
2162
2163	input, ok := in.Parameters.(*GetInsightResultsInput)
2164	_ = input
2165	if !ok {
2166		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2167	}
2168
2169	opPath, opQuery := httpbinding.SplitURI("/insights/results/{InsightArn+}")
2170	request.URL.Path = opPath
2171	if len(request.URL.RawQuery) > 0 {
2172		request.URL.RawQuery = "&" + opQuery
2173	} else {
2174		request.URL.RawQuery = opQuery
2175	}
2176
2177	request.Method = "GET"
2178	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2179	if err != nil {
2180		return out, metadata, &smithy.SerializationError{Err: err}
2181	}
2182
2183	if err := awsRestjson1_serializeOpHttpBindingsGetInsightResultsInput(input, restEncoder); err != nil {
2184		return out, metadata, &smithy.SerializationError{Err: err}
2185	}
2186
2187	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2188		return out, metadata, &smithy.SerializationError{Err: err}
2189	}
2190	in.Request = request
2191
2192	return next.HandleSerialize(ctx, in)
2193}
2194func awsRestjson1_serializeOpHttpBindingsGetInsightResultsInput(v *GetInsightResultsInput, encoder *httpbinding.Encoder) error {
2195	if v == nil {
2196		return fmt.Errorf("unsupported serialization of nil %T", v)
2197	}
2198
2199	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
2200		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
2201	}
2202	if v.InsightArn != nil {
2203		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
2204			return err
2205		}
2206	}
2207
2208	return nil
2209}
2210
2211type awsRestjson1_serializeOpGetInsights struct {
2212}
2213
2214func (*awsRestjson1_serializeOpGetInsights) ID() string {
2215	return "OperationSerializer"
2216}
2217
2218func (m *awsRestjson1_serializeOpGetInsights) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2219	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2220) {
2221	request, ok := in.Request.(*smithyhttp.Request)
2222	if !ok {
2223		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2224	}
2225
2226	input, ok := in.Parameters.(*GetInsightsInput)
2227	_ = input
2228	if !ok {
2229		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2230	}
2231
2232	opPath, opQuery := httpbinding.SplitURI("/insights/get")
2233	request.URL.Path = opPath
2234	if len(request.URL.RawQuery) > 0 {
2235		request.URL.RawQuery = "&" + opQuery
2236	} else {
2237		request.URL.RawQuery = opQuery
2238	}
2239
2240	request.Method = "POST"
2241	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2242	if err != nil {
2243		return out, metadata, &smithy.SerializationError{Err: err}
2244	}
2245
2246	restEncoder.SetHeader("Content-Type").String("application/json")
2247
2248	jsonEncoder := smithyjson.NewEncoder()
2249	if err := awsRestjson1_serializeOpDocumentGetInsightsInput(input, jsonEncoder.Value); err != nil {
2250		return out, metadata, &smithy.SerializationError{Err: err}
2251	}
2252
2253	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2254		return out, metadata, &smithy.SerializationError{Err: err}
2255	}
2256
2257	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2258		return out, metadata, &smithy.SerializationError{Err: err}
2259	}
2260	in.Request = request
2261
2262	return next.HandleSerialize(ctx, in)
2263}
2264func awsRestjson1_serializeOpHttpBindingsGetInsightsInput(v *GetInsightsInput, encoder *httpbinding.Encoder) error {
2265	if v == nil {
2266		return fmt.Errorf("unsupported serialization of nil %T", v)
2267	}
2268
2269	return nil
2270}
2271
2272func awsRestjson1_serializeOpDocumentGetInsightsInput(v *GetInsightsInput, value smithyjson.Value) error {
2273	object := value.Object()
2274	defer object.Close()
2275
2276	if v.InsightArns != nil {
2277		ok := object.Key("InsightArns")
2278		if err := awsRestjson1_serializeDocumentArnList(v.InsightArns, ok); err != nil {
2279			return err
2280		}
2281	}
2282
2283	if v.MaxResults != 0 {
2284		ok := object.Key("MaxResults")
2285		ok.Integer(v.MaxResults)
2286	}
2287
2288	if v.NextToken != nil {
2289		ok := object.Key("NextToken")
2290		ok.String(*v.NextToken)
2291	}
2292
2293	return nil
2294}
2295
2296type awsRestjson1_serializeOpGetInvitationsCount struct {
2297}
2298
2299func (*awsRestjson1_serializeOpGetInvitationsCount) ID() string {
2300	return "OperationSerializer"
2301}
2302
2303func (m *awsRestjson1_serializeOpGetInvitationsCount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2304	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2305) {
2306	request, ok := in.Request.(*smithyhttp.Request)
2307	if !ok {
2308		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2309	}
2310
2311	input, ok := in.Parameters.(*GetInvitationsCountInput)
2312	_ = input
2313	if !ok {
2314		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2315	}
2316
2317	opPath, opQuery := httpbinding.SplitURI("/invitations/count")
2318	request.URL.Path = opPath
2319	if len(request.URL.RawQuery) > 0 {
2320		request.URL.RawQuery = "&" + opQuery
2321	} else {
2322		request.URL.RawQuery = opQuery
2323	}
2324
2325	request.Method = "GET"
2326	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2327	if err != nil {
2328		return out, metadata, &smithy.SerializationError{Err: err}
2329	}
2330
2331	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2332		return out, metadata, &smithy.SerializationError{Err: err}
2333	}
2334	in.Request = request
2335
2336	return next.HandleSerialize(ctx, in)
2337}
2338func awsRestjson1_serializeOpHttpBindingsGetInvitationsCountInput(v *GetInvitationsCountInput, encoder *httpbinding.Encoder) error {
2339	if v == nil {
2340		return fmt.Errorf("unsupported serialization of nil %T", v)
2341	}
2342
2343	return nil
2344}
2345
2346type awsRestjson1_serializeOpGetMasterAccount struct {
2347}
2348
2349func (*awsRestjson1_serializeOpGetMasterAccount) ID() string {
2350	return "OperationSerializer"
2351}
2352
2353func (m *awsRestjson1_serializeOpGetMasterAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2354	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2355) {
2356	request, ok := in.Request.(*smithyhttp.Request)
2357	if !ok {
2358		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2359	}
2360
2361	input, ok := in.Parameters.(*GetMasterAccountInput)
2362	_ = input
2363	if !ok {
2364		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2365	}
2366
2367	opPath, opQuery := httpbinding.SplitURI("/master")
2368	request.URL.Path = opPath
2369	if len(request.URL.RawQuery) > 0 {
2370		request.URL.RawQuery = "&" + opQuery
2371	} else {
2372		request.URL.RawQuery = opQuery
2373	}
2374
2375	request.Method = "GET"
2376	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2377	if err != nil {
2378		return out, metadata, &smithy.SerializationError{Err: err}
2379	}
2380
2381	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2382		return out, metadata, &smithy.SerializationError{Err: err}
2383	}
2384	in.Request = request
2385
2386	return next.HandleSerialize(ctx, in)
2387}
2388func awsRestjson1_serializeOpHttpBindingsGetMasterAccountInput(v *GetMasterAccountInput, encoder *httpbinding.Encoder) error {
2389	if v == nil {
2390		return fmt.Errorf("unsupported serialization of nil %T", v)
2391	}
2392
2393	return nil
2394}
2395
2396type awsRestjson1_serializeOpGetMembers struct {
2397}
2398
2399func (*awsRestjson1_serializeOpGetMembers) ID() string {
2400	return "OperationSerializer"
2401}
2402
2403func (m *awsRestjson1_serializeOpGetMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2404	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2405) {
2406	request, ok := in.Request.(*smithyhttp.Request)
2407	if !ok {
2408		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2409	}
2410
2411	input, ok := in.Parameters.(*GetMembersInput)
2412	_ = input
2413	if !ok {
2414		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2415	}
2416
2417	opPath, opQuery := httpbinding.SplitURI("/members/get")
2418	request.URL.Path = opPath
2419	if len(request.URL.RawQuery) > 0 {
2420		request.URL.RawQuery = "&" + opQuery
2421	} else {
2422		request.URL.RawQuery = opQuery
2423	}
2424
2425	request.Method = "POST"
2426	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2427	if err != nil {
2428		return out, metadata, &smithy.SerializationError{Err: err}
2429	}
2430
2431	restEncoder.SetHeader("Content-Type").String("application/json")
2432
2433	jsonEncoder := smithyjson.NewEncoder()
2434	if err := awsRestjson1_serializeOpDocumentGetMembersInput(input, jsonEncoder.Value); err != nil {
2435		return out, metadata, &smithy.SerializationError{Err: err}
2436	}
2437
2438	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2439		return out, metadata, &smithy.SerializationError{Err: err}
2440	}
2441
2442	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2443		return out, metadata, &smithy.SerializationError{Err: err}
2444	}
2445	in.Request = request
2446
2447	return next.HandleSerialize(ctx, in)
2448}
2449func awsRestjson1_serializeOpHttpBindingsGetMembersInput(v *GetMembersInput, encoder *httpbinding.Encoder) error {
2450	if v == nil {
2451		return fmt.Errorf("unsupported serialization of nil %T", v)
2452	}
2453
2454	return nil
2455}
2456
2457func awsRestjson1_serializeOpDocumentGetMembersInput(v *GetMembersInput, value smithyjson.Value) error {
2458	object := value.Object()
2459	defer object.Close()
2460
2461	if v.AccountIds != nil {
2462		ok := object.Key("AccountIds")
2463		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
2464			return err
2465		}
2466	}
2467
2468	return nil
2469}
2470
2471type awsRestjson1_serializeOpInviteMembers struct {
2472}
2473
2474func (*awsRestjson1_serializeOpInviteMembers) ID() string {
2475	return "OperationSerializer"
2476}
2477
2478func (m *awsRestjson1_serializeOpInviteMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2479	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2480) {
2481	request, ok := in.Request.(*smithyhttp.Request)
2482	if !ok {
2483		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2484	}
2485
2486	input, ok := in.Parameters.(*InviteMembersInput)
2487	_ = input
2488	if !ok {
2489		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2490	}
2491
2492	opPath, opQuery := httpbinding.SplitURI("/members/invite")
2493	request.URL.Path = opPath
2494	if len(request.URL.RawQuery) > 0 {
2495		request.URL.RawQuery = "&" + opQuery
2496	} else {
2497		request.URL.RawQuery = opQuery
2498	}
2499
2500	request.Method = "POST"
2501	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2502	if err != nil {
2503		return out, metadata, &smithy.SerializationError{Err: err}
2504	}
2505
2506	restEncoder.SetHeader("Content-Type").String("application/json")
2507
2508	jsonEncoder := smithyjson.NewEncoder()
2509	if err := awsRestjson1_serializeOpDocumentInviteMembersInput(input, jsonEncoder.Value); err != nil {
2510		return out, metadata, &smithy.SerializationError{Err: err}
2511	}
2512
2513	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2514		return out, metadata, &smithy.SerializationError{Err: err}
2515	}
2516
2517	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2518		return out, metadata, &smithy.SerializationError{Err: err}
2519	}
2520	in.Request = request
2521
2522	return next.HandleSerialize(ctx, in)
2523}
2524func awsRestjson1_serializeOpHttpBindingsInviteMembersInput(v *InviteMembersInput, encoder *httpbinding.Encoder) error {
2525	if v == nil {
2526		return fmt.Errorf("unsupported serialization of nil %T", v)
2527	}
2528
2529	return nil
2530}
2531
2532func awsRestjson1_serializeOpDocumentInviteMembersInput(v *InviteMembersInput, value smithyjson.Value) error {
2533	object := value.Object()
2534	defer object.Close()
2535
2536	if v.AccountIds != nil {
2537		ok := object.Key("AccountIds")
2538		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
2539			return err
2540		}
2541	}
2542
2543	return nil
2544}
2545
2546type awsRestjson1_serializeOpListEnabledProductsForImport struct {
2547}
2548
2549func (*awsRestjson1_serializeOpListEnabledProductsForImport) ID() string {
2550	return "OperationSerializer"
2551}
2552
2553func (m *awsRestjson1_serializeOpListEnabledProductsForImport) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2554	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2555) {
2556	request, ok := in.Request.(*smithyhttp.Request)
2557	if !ok {
2558		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2559	}
2560
2561	input, ok := in.Parameters.(*ListEnabledProductsForImportInput)
2562	_ = input
2563	if !ok {
2564		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2565	}
2566
2567	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions")
2568	request.URL.Path = opPath
2569	if len(request.URL.RawQuery) > 0 {
2570		request.URL.RawQuery = "&" + opQuery
2571	} else {
2572		request.URL.RawQuery = opQuery
2573	}
2574
2575	request.Method = "GET"
2576	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2577	if err != nil {
2578		return out, metadata, &smithy.SerializationError{Err: err}
2579	}
2580
2581	if err := awsRestjson1_serializeOpHttpBindingsListEnabledProductsForImportInput(input, restEncoder); err != nil {
2582		return out, metadata, &smithy.SerializationError{Err: err}
2583	}
2584
2585	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2586		return out, metadata, &smithy.SerializationError{Err: err}
2587	}
2588	in.Request = request
2589
2590	return next.HandleSerialize(ctx, in)
2591}
2592func awsRestjson1_serializeOpHttpBindingsListEnabledProductsForImportInput(v *ListEnabledProductsForImportInput, encoder *httpbinding.Encoder) error {
2593	if v == nil {
2594		return fmt.Errorf("unsupported serialization of nil %T", v)
2595	}
2596
2597	if v.MaxResults != 0 {
2598		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2599	}
2600
2601	if v.NextToken != nil {
2602		encoder.SetQuery("NextToken").String(*v.NextToken)
2603	}
2604
2605	return nil
2606}
2607
2608type awsRestjson1_serializeOpListInvitations struct {
2609}
2610
2611func (*awsRestjson1_serializeOpListInvitations) ID() string {
2612	return "OperationSerializer"
2613}
2614
2615func (m *awsRestjson1_serializeOpListInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2616	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2617) {
2618	request, ok := in.Request.(*smithyhttp.Request)
2619	if !ok {
2620		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2621	}
2622
2623	input, ok := in.Parameters.(*ListInvitationsInput)
2624	_ = input
2625	if !ok {
2626		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2627	}
2628
2629	opPath, opQuery := httpbinding.SplitURI("/invitations")
2630	request.URL.Path = opPath
2631	if len(request.URL.RawQuery) > 0 {
2632		request.URL.RawQuery = "&" + opQuery
2633	} else {
2634		request.URL.RawQuery = opQuery
2635	}
2636
2637	request.Method = "GET"
2638	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2639	if err != nil {
2640		return out, metadata, &smithy.SerializationError{Err: err}
2641	}
2642
2643	if err := awsRestjson1_serializeOpHttpBindingsListInvitationsInput(input, restEncoder); err != nil {
2644		return out, metadata, &smithy.SerializationError{Err: err}
2645	}
2646
2647	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2648		return out, metadata, &smithy.SerializationError{Err: err}
2649	}
2650	in.Request = request
2651
2652	return next.HandleSerialize(ctx, in)
2653}
2654func awsRestjson1_serializeOpHttpBindingsListInvitationsInput(v *ListInvitationsInput, encoder *httpbinding.Encoder) error {
2655	if v == nil {
2656		return fmt.Errorf("unsupported serialization of nil %T", v)
2657	}
2658
2659	if v.MaxResults != 0 {
2660		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2661	}
2662
2663	if v.NextToken != nil {
2664		encoder.SetQuery("NextToken").String(*v.NextToken)
2665	}
2666
2667	return nil
2668}
2669
2670type awsRestjson1_serializeOpListMembers struct {
2671}
2672
2673func (*awsRestjson1_serializeOpListMembers) ID() string {
2674	return "OperationSerializer"
2675}
2676
2677func (m *awsRestjson1_serializeOpListMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2678	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2679) {
2680	request, ok := in.Request.(*smithyhttp.Request)
2681	if !ok {
2682		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2683	}
2684
2685	input, ok := in.Parameters.(*ListMembersInput)
2686	_ = input
2687	if !ok {
2688		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2689	}
2690
2691	opPath, opQuery := httpbinding.SplitURI("/members")
2692	request.URL.Path = opPath
2693	if len(request.URL.RawQuery) > 0 {
2694		request.URL.RawQuery = "&" + opQuery
2695	} else {
2696		request.URL.RawQuery = opQuery
2697	}
2698
2699	request.Method = "GET"
2700	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2701	if err != nil {
2702		return out, metadata, &smithy.SerializationError{Err: err}
2703	}
2704
2705	if err := awsRestjson1_serializeOpHttpBindingsListMembersInput(input, restEncoder); err != nil {
2706		return out, metadata, &smithy.SerializationError{Err: err}
2707	}
2708
2709	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2710		return out, metadata, &smithy.SerializationError{Err: err}
2711	}
2712	in.Request = request
2713
2714	return next.HandleSerialize(ctx, in)
2715}
2716func awsRestjson1_serializeOpHttpBindingsListMembersInput(v *ListMembersInput, encoder *httpbinding.Encoder) error {
2717	if v == nil {
2718		return fmt.Errorf("unsupported serialization of nil %T", v)
2719	}
2720
2721	if v.MaxResults != 0 {
2722		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2723	}
2724
2725	if v.NextToken != nil {
2726		encoder.SetQuery("NextToken").String(*v.NextToken)
2727	}
2728
2729	if v.OnlyAssociated {
2730		encoder.SetQuery("OnlyAssociated").Boolean(v.OnlyAssociated)
2731	}
2732
2733	return nil
2734}
2735
2736type awsRestjson1_serializeOpListOrganizationAdminAccounts struct {
2737}
2738
2739func (*awsRestjson1_serializeOpListOrganizationAdminAccounts) ID() string {
2740	return "OperationSerializer"
2741}
2742
2743func (m *awsRestjson1_serializeOpListOrganizationAdminAccounts) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2744	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2745) {
2746	request, ok := in.Request.(*smithyhttp.Request)
2747	if !ok {
2748		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2749	}
2750
2751	input, ok := in.Parameters.(*ListOrganizationAdminAccountsInput)
2752	_ = input
2753	if !ok {
2754		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2755	}
2756
2757	opPath, opQuery := httpbinding.SplitURI("/organization/admin")
2758	request.URL.Path = opPath
2759	if len(request.URL.RawQuery) > 0 {
2760		request.URL.RawQuery = "&" + opQuery
2761	} else {
2762		request.URL.RawQuery = opQuery
2763	}
2764
2765	request.Method = "GET"
2766	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2767	if err != nil {
2768		return out, metadata, &smithy.SerializationError{Err: err}
2769	}
2770
2771	if err := awsRestjson1_serializeOpHttpBindingsListOrganizationAdminAccountsInput(input, restEncoder); err != nil {
2772		return out, metadata, &smithy.SerializationError{Err: err}
2773	}
2774
2775	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2776		return out, metadata, &smithy.SerializationError{Err: err}
2777	}
2778	in.Request = request
2779
2780	return next.HandleSerialize(ctx, in)
2781}
2782func awsRestjson1_serializeOpHttpBindingsListOrganizationAdminAccountsInput(v *ListOrganizationAdminAccountsInput, encoder *httpbinding.Encoder) error {
2783	if v == nil {
2784		return fmt.Errorf("unsupported serialization of nil %T", v)
2785	}
2786
2787	if v.MaxResults != 0 {
2788		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2789	}
2790
2791	if v.NextToken != nil {
2792		encoder.SetQuery("NextToken").String(*v.NextToken)
2793	}
2794
2795	return nil
2796}
2797
2798type awsRestjson1_serializeOpListTagsForResource struct {
2799}
2800
2801func (*awsRestjson1_serializeOpListTagsForResource) ID() string {
2802	return "OperationSerializer"
2803}
2804
2805func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2806	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2807) {
2808	request, ok := in.Request.(*smithyhttp.Request)
2809	if !ok {
2810		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2811	}
2812
2813	input, ok := in.Parameters.(*ListTagsForResourceInput)
2814	_ = input
2815	if !ok {
2816		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2817	}
2818
2819	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2820	request.URL.Path = opPath
2821	if len(request.URL.RawQuery) > 0 {
2822		request.URL.RawQuery = "&" + opQuery
2823	} else {
2824		request.URL.RawQuery = opQuery
2825	}
2826
2827	request.Method = "GET"
2828	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2829	if err != nil {
2830		return out, metadata, &smithy.SerializationError{Err: err}
2831	}
2832
2833	if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil {
2834		return out, metadata, &smithy.SerializationError{Err: err}
2835	}
2836
2837	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2838		return out, metadata, &smithy.SerializationError{Err: err}
2839	}
2840	in.Request = request
2841
2842	return next.HandleSerialize(ctx, in)
2843}
2844func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error {
2845	if v == nil {
2846		return fmt.Errorf("unsupported serialization of nil %T", v)
2847	}
2848
2849	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
2850		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
2851	}
2852	if v.ResourceArn != nil {
2853		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
2854			return err
2855		}
2856	}
2857
2858	return nil
2859}
2860
2861type awsRestjson1_serializeOpTagResource struct {
2862}
2863
2864func (*awsRestjson1_serializeOpTagResource) ID() string {
2865	return "OperationSerializer"
2866}
2867
2868func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2869	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2870) {
2871	request, ok := in.Request.(*smithyhttp.Request)
2872	if !ok {
2873		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2874	}
2875
2876	input, ok := in.Parameters.(*TagResourceInput)
2877	_ = input
2878	if !ok {
2879		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2880	}
2881
2882	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2883	request.URL.Path = opPath
2884	if len(request.URL.RawQuery) > 0 {
2885		request.URL.RawQuery = "&" + opQuery
2886	} else {
2887		request.URL.RawQuery = opQuery
2888	}
2889
2890	request.Method = "POST"
2891	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2892	if err != nil {
2893		return out, metadata, &smithy.SerializationError{Err: err}
2894	}
2895
2896	if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil {
2897		return out, metadata, &smithy.SerializationError{Err: err}
2898	}
2899
2900	restEncoder.SetHeader("Content-Type").String("application/json")
2901
2902	jsonEncoder := smithyjson.NewEncoder()
2903	if err := awsRestjson1_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil {
2904		return out, metadata, &smithy.SerializationError{Err: err}
2905	}
2906
2907	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2908		return out, metadata, &smithy.SerializationError{Err: err}
2909	}
2910
2911	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2912		return out, metadata, &smithy.SerializationError{Err: err}
2913	}
2914	in.Request = request
2915
2916	return next.HandleSerialize(ctx, in)
2917}
2918func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error {
2919	if v == nil {
2920		return fmt.Errorf("unsupported serialization of nil %T", v)
2921	}
2922
2923	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
2924		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
2925	}
2926	if v.ResourceArn != nil {
2927		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
2928			return err
2929		}
2930	}
2931
2932	return nil
2933}
2934
2935func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error {
2936	object := value.Object()
2937	defer object.Close()
2938
2939	if v.Tags != nil {
2940		ok := object.Key("Tags")
2941		if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil {
2942			return err
2943		}
2944	}
2945
2946	return nil
2947}
2948
2949type awsRestjson1_serializeOpUntagResource struct {
2950}
2951
2952func (*awsRestjson1_serializeOpUntagResource) ID() string {
2953	return "OperationSerializer"
2954}
2955
2956func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2957	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2958) {
2959	request, ok := in.Request.(*smithyhttp.Request)
2960	if !ok {
2961		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2962	}
2963
2964	input, ok := in.Parameters.(*UntagResourceInput)
2965	_ = input
2966	if !ok {
2967		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2968	}
2969
2970	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2971	request.URL.Path = opPath
2972	if len(request.URL.RawQuery) > 0 {
2973		request.URL.RawQuery = "&" + opQuery
2974	} else {
2975		request.URL.RawQuery = opQuery
2976	}
2977
2978	request.Method = "DELETE"
2979	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2980	if err != nil {
2981		return out, metadata, &smithy.SerializationError{Err: err}
2982	}
2983
2984	if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(input, restEncoder); err != nil {
2985		return out, metadata, &smithy.SerializationError{Err: err}
2986	}
2987
2988	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2989		return out, metadata, &smithy.SerializationError{Err: err}
2990	}
2991	in.Request = request
2992
2993	return next.HandleSerialize(ctx, in)
2994}
2995func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error {
2996	if v == nil {
2997		return fmt.Errorf("unsupported serialization of nil %T", v)
2998	}
2999
3000	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
3001		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
3002	}
3003	if v.ResourceArn != nil {
3004		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
3005			return err
3006		}
3007	}
3008
3009	if v.TagKeys != nil {
3010		for i := range v.TagKeys {
3011			encoder.AddQuery("tagKeys").String(v.TagKeys[i])
3012		}
3013	}
3014
3015	return nil
3016}
3017
3018type awsRestjson1_serializeOpUpdateActionTarget struct {
3019}
3020
3021func (*awsRestjson1_serializeOpUpdateActionTarget) ID() string {
3022	return "OperationSerializer"
3023}
3024
3025func (m *awsRestjson1_serializeOpUpdateActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3026	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3027) {
3028	request, ok := in.Request.(*smithyhttp.Request)
3029	if !ok {
3030		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3031	}
3032
3033	input, ok := in.Parameters.(*UpdateActionTargetInput)
3034	_ = input
3035	if !ok {
3036		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3037	}
3038
3039	opPath, opQuery := httpbinding.SplitURI("/actionTargets/{ActionTargetArn+}")
3040	request.URL.Path = opPath
3041	if len(request.URL.RawQuery) > 0 {
3042		request.URL.RawQuery = "&" + opQuery
3043	} else {
3044		request.URL.RawQuery = opQuery
3045	}
3046
3047	request.Method = "PATCH"
3048	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3049	if err != nil {
3050		return out, metadata, &smithy.SerializationError{Err: err}
3051	}
3052
3053	if err := awsRestjson1_serializeOpHttpBindingsUpdateActionTargetInput(input, restEncoder); err != nil {
3054		return out, metadata, &smithy.SerializationError{Err: err}
3055	}
3056
3057	restEncoder.SetHeader("Content-Type").String("application/json")
3058
3059	jsonEncoder := smithyjson.NewEncoder()
3060	if err := awsRestjson1_serializeOpDocumentUpdateActionTargetInput(input, jsonEncoder.Value); err != nil {
3061		return out, metadata, &smithy.SerializationError{Err: err}
3062	}
3063
3064	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3065		return out, metadata, &smithy.SerializationError{Err: err}
3066	}
3067
3068	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3069		return out, metadata, &smithy.SerializationError{Err: err}
3070	}
3071	in.Request = request
3072
3073	return next.HandleSerialize(ctx, in)
3074}
3075func awsRestjson1_serializeOpHttpBindingsUpdateActionTargetInput(v *UpdateActionTargetInput, encoder *httpbinding.Encoder) error {
3076	if v == nil {
3077		return fmt.Errorf("unsupported serialization of nil %T", v)
3078	}
3079
3080	if v.ActionTargetArn == nil || len(*v.ActionTargetArn) == 0 {
3081		return &smithy.SerializationError{Err: fmt.Errorf("input member ActionTargetArn must not be empty")}
3082	}
3083	if v.ActionTargetArn != nil {
3084		if err := encoder.SetURI("ActionTargetArn").String(*v.ActionTargetArn); err != nil {
3085			return err
3086		}
3087	}
3088
3089	return nil
3090}
3091
3092func awsRestjson1_serializeOpDocumentUpdateActionTargetInput(v *UpdateActionTargetInput, value smithyjson.Value) error {
3093	object := value.Object()
3094	defer object.Close()
3095
3096	if v.Description != nil {
3097		ok := object.Key("Description")
3098		ok.String(*v.Description)
3099	}
3100
3101	if v.Name != nil {
3102		ok := object.Key("Name")
3103		ok.String(*v.Name)
3104	}
3105
3106	return nil
3107}
3108
3109type awsRestjson1_serializeOpUpdateFindings struct {
3110}
3111
3112func (*awsRestjson1_serializeOpUpdateFindings) ID() string {
3113	return "OperationSerializer"
3114}
3115
3116func (m *awsRestjson1_serializeOpUpdateFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3117	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3118) {
3119	request, ok := in.Request.(*smithyhttp.Request)
3120	if !ok {
3121		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3122	}
3123
3124	input, ok := in.Parameters.(*UpdateFindingsInput)
3125	_ = input
3126	if !ok {
3127		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3128	}
3129
3130	opPath, opQuery := httpbinding.SplitURI("/findings")
3131	request.URL.Path = opPath
3132	if len(request.URL.RawQuery) > 0 {
3133		request.URL.RawQuery = "&" + opQuery
3134	} else {
3135		request.URL.RawQuery = opQuery
3136	}
3137
3138	request.Method = "PATCH"
3139	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3140	if err != nil {
3141		return out, metadata, &smithy.SerializationError{Err: err}
3142	}
3143
3144	restEncoder.SetHeader("Content-Type").String("application/json")
3145
3146	jsonEncoder := smithyjson.NewEncoder()
3147	if err := awsRestjson1_serializeOpDocumentUpdateFindingsInput(input, jsonEncoder.Value); err != nil {
3148		return out, metadata, &smithy.SerializationError{Err: err}
3149	}
3150
3151	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3152		return out, metadata, &smithy.SerializationError{Err: err}
3153	}
3154
3155	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3156		return out, metadata, &smithy.SerializationError{Err: err}
3157	}
3158	in.Request = request
3159
3160	return next.HandleSerialize(ctx, in)
3161}
3162func awsRestjson1_serializeOpHttpBindingsUpdateFindingsInput(v *UpdateFindingsInput, encoder *httpbinding.Encoder) error {
3163	if v == nil {
3164		return fmt.Errorf("unsupported serialization of nil %T", v)
3165	}
3166
3167	return nil
3168}
3169
3170func awsRestjson1_serializeOpDocumentUpdateFindingsInput(v *UpdateFindingsInput, value smithyjson.Value) error {
3171	object := value.Object()
3172	defer object.Close()
3173
3174	if v.Filters != nil {
3175		ok := object.Key("Filters")
3176		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
3177			return err
3178		}
3179	}
3180
3181	if v.Note != nil {
3182		ok := object.Key("Note")
3183		if err := awsRestjson1_serializeDocumentNoteUpdate(v.Note, ok); err != nil {
3184			return err
3185		}
3186	}
3187
3188	if len(v.RecordState) > 0 {
3189		ok := object.Key("RecordState")
3190		ok.String(string(v.RecordState))
3191	}
3192
3193	return nil
3194}
3195
3196type awsRestjson1_serializeOpUpdateInsight struct {
3197}
3198
3199func (*awsRestjson1_serializeOpUpdateInsight) ID() string {
3200	return "OperationSerializer"
3201}
3202
3203func (m *awsRestjson1_serializeOpUpdateInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3204	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3205) {
3206	request, ok := in.Request.(*smithyhttp.Request)
3207	if !ok {
3208		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3209	}
3210
3211	input, ok := in.Parameters.(*UpdateInsightInput)
3212	_ = input
3213	if !ok {
3214		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3215	}
3216
3217	opPath, opQuery := httpbinding.SplitURI("/insights/{InsightArn+}")
3218	request.URL.Path = opPath
3219	if len(request.URL.RawQuery) > 0 {
3220		request.URL.RawQuery = "&" + opQuery
3221	} else {
3222		request.URL.RawQuery = opQuery
3223	}
3224
3225	request.Method = "PATCH"
3226	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3227	if err != nil {
3228		return out, metadata, &smithy.SerializationError{Err: err}
3229	}
3230
3231	if err := awsRestjson1_serializeOpHttpBindingsUpdateInsightInput(input, restEncoder); err != nil {
3232		return out, metadata, &smithy.SerializationError{Err: err}
3233	}
3234
3235	restEncoder.SetHeader("Content-Type").String("application/json")
3236
3237	jsonEncoder := smithyjson.NewEncoder()
3238	if err := awsRestjson1_serializeOpDocumentUpdateInsightInput(input, jsonEncoder.Value); err != nil {
3239		return out, metadata, &smithy.SerializationError{Err: err}
3240	}
3241
3242	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3243		return out, metadata, &smithy.SerializationError{Err: err}
3244	}
3245
3246	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3247		return out, metadata, &smithy.SerializationError{Err: err}
3248	}
3249	in.Request = request
3250
3251	return next.HandleSerialize(ctx, in)
3252}
3253func awsRestjson1_serializeOpHttpBindingsUpdateInsightInput(v *UpdateInsightInput, encoder *httpbinding.Encoder) error {
3254	if v == nil {
3255		return fmt.Errorf("unsupported serialization of nil %T", v)
3256	}
3257
3258	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
3259		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
3260	}
3261	if v.InsightArn != nil {
3262		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
3263			return err
3264		}
3265	}
3266
3267	return nil
3268}
3269
3270func awsRestjson1_serializeOpDocumentUpdateInsightInput(v *UpdateInsightInput, value smithyjson.Value) error {
3271	object := value.Object()
3272	defer object.Close()
3273
3274	if v.Filters != nil {
3275		ok := object.Key("Filters")
3276		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
3277			return err
3278		}
3279	}
3280
3281	if v.GroupByAttribute != nil {
3282		ok := object.Key("GroupByAttribute")
3283		ok.String(*v.GroupByAttribute)
3284	}
3285
3286	if v.Name != nil {
3287		ok := object.Key("Name")
3288		ok.String(*v.Name)
3289	}
3290
3291	return nil
3292}
3293
3294type awsRestjson1_serializeOpUpdateOrganizationConfiguration struct {
3295}
3296
3297func (*awsRestjson1_serializeOpUpdateOrganizationConfiguration) ID() string {
3298	return "OperationSerializer"
3299}
3300
3301func (m *awsRestjson1_serializeOpUpdateOrganizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3302	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3303) {
3304	request, ok := in.Request.(*smithyhttp.Request)
3305	if !ok {
3306		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3307	}
3308
3309	input, ok := in.Parameters.(*UpdateOrganizationConfigurationInput)
3310	_ = input
3311	if !ok {
3312		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3313	}
3314
3315	opPath, opQuery := httpbinding.SplitURI("/organization/configuration")
3316	request.URL.Path = opPath
3317	if len(request.URL.RawQuery) > 0 {
3318		request.URL.RawQuery = "&" + opQuery
3319	} else {
3320		request.URL.RawQuery = opQuery
3321	}
3322
3323	request.Method = "POST"
3324	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3325	if err != nil {
3326		return out, metadata, &smithy.SerializationError{Err: err}
3327	}
3328
3329	restEncoder.SetHeader("Content-Type").String("application/json")
3330
3331	jsonEncoder := smithyjson.NewEncoder()
3332	if err := awsRestjson1_serializeOpDocumentUpdateOrganizationConfigurationInput(input, jsonEncoder.Value); err != nil {
3333		return out, metadata, &smithy.SerializationError{Err: err}
3334	}
3335
3336	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3337		return out, metadata, &smithy.SerializationError{Err: err}
3338	}
3339
3340	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3341		return out, metadata, &smithy.SerializationError{Err: err}
3342	}
3343	in.Request = request
3344
3345	return next.HandleSerialize(ctx, in)
3346}
3347func awsRestjson1_serializeOpHttpBindingsUpdateOrganizationConfigurationInput(v *UpdateOrganizationConfigurationInput, encoder *httpbinding.Encoder) error {
3348	if v == nil {
3349		return fmt.Errorf("unsupported serialization of nil %T", v)
3350	}
3351
3352	return nil
3353}
3354
3355func awsRestjson1_serializeOpDocumentUpdateOrganizationConfigurationInput(v *UpdateOrganizationConfigurationInput, value smithyjson.Value) error {
3356	object := value.Object()
3357	defer object.Close()
3358
3359	if v.AutoEnable {
3360		ok := object.Key("AutoEnable")
3361		ok.Boolean(v.AutoEnable)
3362	}
3363
3364	return nil
3365}
3366
3367type awsRestjson1_serializeOpUpdateSecurityHubConfiguration struct {
3368}
3369
3370func (*awsRestjson1_serializeOpUpdateSecurityHubConfiguration) ID() string {
3371	return "OperationSerializer"
3372}
3373
3374func (m *awsRestjson1_serializeOpUpdateSecurityHubConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3375	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3376) {
3377	request, ok := in.Request.(*smithyhttp.Request)
3378	if !ok {
3379		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3380	}
3381
3382	input, ok := in.Parameters.(*UpdateSecurityHubConfigurationInput)
3383	_ = input
3384	if !ok {
3385		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3386	}
3387
3388	opPath, opQuery := httpbinding.SplitURI("/accounts")
3389	request.URL.Path = opPath
3390	if len(request.URL.RawQuery) > 0 {
3391		request.URL.RawQuery = "&" + opQuery
3392	} else {
3393		request.URL.RawQuery = opQuery
3394	}
3395
3396	request.Method = "PATCH"
3397	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3398	if err != nil {
3399		return out, metadata, &smithy.SerializationError{Err: err}
3400	}
3401
3402	restEncoder.SetHeader("Content-Type").String("application/json")
3403
3404	jsonEncoder := smithyjson.NewEncoder()
3405	if err := awsRestjson1_serializeOpDocumentUpdateSecurityHubConfigurationInput(input, jsonEncoder.Value); err != nil {
3406		return out, metadata, &smithy.SerializationError{Err: err}
3407	}
3408
3409	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3410		return out, metadata, &smithy.SerializationError{Err: err}
3411	}
3412
3413	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3414		return out, metadata, &smithy.SerializationError{Err: err}
3415	}
3416	in.Request = request
3417
3418	return next.HandleSerialize(ctx, in)
3419}
3420func awsRestjson1_serializeOpHttpBindingsUpdateSecurityHubConfigurationInput(v *UpdateSecurityHubConfigurationInput, encoder *httpbinding.Encoder) error {
3421	if v == nil {
3422		return fmt.Errorf("unsupported serialization of nil %T", v)
3423	}
3424
3425	return nil
3426}
3427
3428func awsRestjson1_serializeOpDocumentUpdateSecurityHubConfigurationInput(v *UpdateSecurityHubConfigurationInput, value smithyjson.Value) error {
3429	object := value.Object()
3430	defer object.Close()
3431
3432	if v.AutoEnableControls {
3433		ok := object.Key("AutoEnableControls")
3434		ok.Boolean(v.AutoEnableControls)
3435	}
3436
3437	return nil
3438}
3439
3440type awsRestjson1_serializeOpUpdateStandardsControl struct {
3441}
3442
3443func (*awsRestjson1_serializeOpUpdateStandardsControl) ID() string {
3444	return "OperationSerializer"
3445}
3446
3447func (m *awsRestjson1_serializeOpUpdateStandardsControl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3448	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3449) {
3450	request, ok := in.Request.(*smithyhttp.Request)
3451	if !ok {
3452		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3453	}
3454
3455	input, ok := in.Parameters.(*UpdateStandardsControlInput)
3456	_ = input
3457	if !ok {
3458		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3459	}
3460
3461	opPath, opQuery := httpbinding.SplitURI("/standards/control/{StandardsControlArn+}")
3462	request.URL.Path = opPath
3463	if len(request.URL.RawQuery) > 0 {
3464		request.URL.RawQuery = "&" + opQuery
3465	} else {
3466		request.URL.RawQuery = opQuery
3467	}
3468
3469	request.Method = "PATCH"
3470	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3471	if err != nil {
3472		return out, metadata, &smithy.SerializationError{Err: err}
3473	}
3474
3475	if err := awsRestjson1_serializeOpHttpBindingsUpdateStandardsControlInput(input, restEncoder); err != nil {
3476		return out, metadata, &smithy.SerializationError{Err: err}
3477	}
3478
3479	restEncoder.SetHeader("Content-Type").String("application/json")
3480
3481	jsonEncoder := smithyjson.NewEncoder()
3482	if err := awsRestjson1_serializeOpDocumentUpdateStandardsControlInput(input, jsonEncoder.Value); err != nil {
3483		return out, metadata, &smithy.SerializationError{Err: err}
3484	}
3485
3486	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3487		return out, metadata, &smithy.SerializationError{Err: err}
3488	}
3489
3490	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3491		return out, metadata, &smithy.SerializationError{Err: err}
3492	}
3493	in.Request = request
3494
3495	return next.HandleSerialize(ctx, in)
3496}
3497func awsRestjson1_serializeOpHttpBindingsUpdateStandardsControlInput(v *UpdateStandardsControlInput, encoder *httpbinding.Encoder) error {
3498	if v == nil {
3499		return fmt.Errorf("unsupported serialization of nil %T", v)
3500	}
3501
3502	if v.StandardsControlArn == nil || len(*v.StandardsControlArn) == 0 {
3503		return &smithy.SerializationError{Err: fmt.Errorf("input member StandardsControlArn must not be empty")}
3504	}
3505	if v.StandardsControlArn != nil {
3506		if err := encoder.SetURI("StandardsControlArn").String(*v.StandardsControlArn); err != nil {
3507			return err
3508		}
3509	}
3510
3511	return nil
3512}
3513
3514func awsRestjson1_serializeOpDocumentUpdateStandardsControlInput(v *UpdateStandardsControlInput, value smithyjson.Value) error {
3515	object := value.Object()
3516	defer object.Close()
3517
3518	if len(v.ControlStatus) > 0 {
3519		ok := object.Key("ControlStatus")
3520		ok.String(string(v.ControlStatus))
3521	}
3522
3523	if v.DisabledReason != nil {
3524		ok := object.Key("DisabledReason")
3525		ok.String(*v.DisabledReason)
3526	}
3527
3528	return nil
3529}
3530
3531func awsRestjson1_serializeDocumentAccountDetails(v *types.AccountDetails, value smithyjson.Value) error {
3532	object := value.Object()
3533	defer object.Close()
3534
3535	if v.AccountId != nil {
3536		ok := object.Key("AccountId")
3537		ok.String(*v.AccountId)
3538	}
3539
3540	if v.Email != nil {
3541		ok := object.Key("Email")
3542		ok.String(*v.Email)
3543	}
3544
3545	return nil
3546}
3547
3548func awsRestjson1_serializeDocumentAccountDetailsList(v []types.AccountDetails, value smithyjson.Value) error {
3549	array := value.Array()
3550	defer array.Close()
3551
3552	for i := range v {
3553		av := array.Value()
3554		if err := awsRestjson1_serializeDocumentAccountDetails(&v[i], av); err != nil {
3555			return err
3556		}
3557	}
3558	return nil
3559}
3560
3561func awsRestjson1_serializeDocumentAccountIdList(v []string, value smithyjson.Value) error {
3562	array := value.Array()
3563	defer array.Close()
3564
3565	for i := range v {
3566		av := array.Value()
3567		av.String(v[i])
3568	}
3569	return nil
3570}
3571
3572func awsRestjson1_serializeDocumentArnList(v []string, value smithyjson.Value) error {
3573	array := value.Array()
3574	defer array.Close()
3575
3576	for i := range v {
3577		av := array.Value()
3578		av.String(v[i])
3579	}
3580	return nil
3581}
3582
3583func awsRestjson1_serializeDocumentAvailabilityZone(v *types.AvailabilityZone, value smithyjson.Value) error {
3584	object := value.Object()
3585	defer object.Close()
3586
3587	if v.SubnetId != nil {
3588		ok := object.Key("SubnetId")
3589		ok.String(*v.SubnetId)
3590	}
3591
3592	if v.ZoneName != nil {
3593		ok := object.Key("ZoneName")
3594		ok.String(*v.ZoneName)
3595	}
3596
3597	return nil
3598}
3599
3600func awsRestjson1_serializeDocumentAvailabilityZones(v []types.AvailabilityZone, value smithyjson.Value) error {
3601	array := value.Array()
3602	defer array.Close()
3603
3604	for i := range v {
3605		av := array.Value()
3606		if err := awsRestjson1_serializeDocumentAvailabilityZone(&v[i], av); err != nil {
3607			return err
3608		}
3609	}
3610	return nil
3611}
3612
3613func awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v *types.AwsApiGatewayAccessLogSettings, value smithyjson.Value) error {
3614	object := value.Object()
3615	defer object.Close()
3616
3617	if v.DestinationArn != nil {
3618		ok := object.Key("DestinationArn")
3619		ok.String(*v.DestinationArn)
3620	}
3621
3622	if v.Format != nil {
3623		ok := object.Key("Format")
3624		ok.String(*v.Format)
3625	}
3626
3627	return nil
3628}
3629
3630func awsRestjson1_serializeDocumentAwsApiGatewayCanarySettings(v *types.AwsApiGatewayCanarySettings, value smithyjson.Value) error {
3631	object := value.Object()
3632	defer object.Close()
3633
3634	if v.DeploymentId != nil {
3635		ok := object.Key("DeploymentId")
3636		ok.String(*v.DeploymentId)
3637	}
3638
3639	if v.PercentTraffic != 0 {
3640		ok := object.Key("PercentTraffic")
3641		ok.Double(v.PercentTraffic)
3642	}
3643
3644	if v.StageVariableOverrides != nil {
3645		ok := object.Key("StageVariableOverrides")
3646		if err := awsRestjson1_serializeDocumentFieldMap(v.StageVariableOverrides, ok); err != nil {
3647			return err
3648		}
3649	}
3650
3651	if v.UseStageCache {
3652		ok := object.Key("UseStageCache")
3653		ok.Boolean(v.UseStageCache)
3654	}
3655
3656	return nil
3657}
3658
3659func awsRestjson1_serializeDocumentAwsApiGatewayEndpointConfiguration(v *types.AwsApiGatewayEndpointConfiguration, value smithyjson.Value) error {
3660	object := value.Object()
3661	defer object.Close()
3662
3663	if v.Types != nil {
3664		ok := object.Key("Types")
3665		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Types, ok); err != nil {
3666			return err
3667		}
3668	}
3669
3670	return nil
3671}
3672
3673func awsRestjson1_serializeDocumentAwsApiGatewayMethodSettings(v *types.AwsApiGatewayMethodSettings, value smithyjson.Value) error {
3674	object := value.Object()
3675	defer object.Close()
3676
3677	if v.CacheDataEncrypted {
3678		ok := object.Key("CacheDataEncrypted")
3679		ok.Boolean(v.CacheDataEncrypted)
3680	}
3681
3682	if v.CacheTtlInSeconds != 0 {
3683		ok := object.Key("CacheTtlInSeconds")
3684		ok.Integer(v.CacheTtlInSeconds)
3685	}
3686
3687	if v.CachingEnabled {
3688		ok := object.Key("CachingEnabled")
3689		ok.Boolean(v.CachingEnabled)
3690	}
3691
3692	if v.DataTraceEnabled {
3693		ok := object.Key("DataTraceEnabled")
3694		ok.Boolean(v.DataTraceEnabled)
3695	}
3696
3697	if v.HttpMethod != nil {
3698		ok := object.Key("HttpMethod")
3699		ok.String(*v.HttpMethod)
3700	}
3701
3702	if v.LoggingLevel != nil {
3703		ok := object.Key("LoggingLevel")
3704		ok.String(*v.LoggingLevel)
3705	}
3706
3707	if v.MetricsEnabled {
3708		ok := object.Key("MetricsEnabled")
3709		ok.Boolean(v.MetricsEnabled)
3710	}
3711
3712	if v.RequireAuthorizationForCacheControl {
3713		ok := object.Key("RequireAuthorizationForCacheControl")
3714		ok.Boolean(v.RequireAuthorizationForCacheControl)
3715	}
3716
3717	if v.ResourcePath != nil {
3718		ok := object.Key("ResourcePath")
3719		ok.String(*v.ResourcePath)
3720	}
3721
3722	if v.ThrottlingBurstLimit != 0 {
3723		ok := object.Key("ThrottlingBurstLimit")
3724		ok.Integer(v.ThrottlingBurstLimit)
3725	}
3726
3727	if v.ThrottlingRateLimit != 0 {
3728		ok := object.Key("ThrottlingRateLimit")
3729		ok.Double(v.ThrottlingRateLimit)
3730	}
3731
3732	if v.UnauthorizedCacheControlHeaderStrategy != nil {
3733		ok := object.Key("UnauthorizedCacheControlHeaderStrategy")
3734		ok.String(*v.UnauthorizedCacheControlHeaderStrategy)
3735	}
3736
3737	return nil
3738}
3739
3740func awsRestjson1_serializeDocumentAwsApiGatewayMethodSettingsList(v []types.AwsApiGatewayMethodSettings, value smithyjson.Value) error {
3741	array := value.Array()
3742	defer array.Close()
3743
3744	for i := range v {
3745		av := array.Value()
3746		if err := awsRestjson1_serializeDocumentAwsApiGatewayMethodSettings(&v[i], av); err != nil {
3747			return err
3748		}
3749	}
3750	return nil
3751}
3752
3753func awsRestjson1_serializeDocumentAwsApiGatewayRestApiDetails(v *types.AwsApiGatewayRestApiDetails, value smithyjson.Value) error {
3754	object := value.Object()
3755	defer object.Close()
3756
3757	if v.ApiKeySource != nil {
3758		ok := object.Key("ApiKeySource")
3759		ok.String(*v.ApiKeySource)
3760	}
3761
3762	if v.BinaryMediaTypes != nil {
3763		ok := object.Key("BinaryMediaTypes")
3764		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.BinaryMediaTypes, ok); err != nil {
3765			return err
3766		}
3767	}
3768
3769	if v.CreatedDate != nil {
3770		ok := object.Key("CreatedDate")
3771		ok.String(*v.CreatedDate)
3772	}
3773
3774	if v.Description != nil {
3775		ok := object.Key("Description")
3776		ok.String(*v.Description)
3777	}
3778
3779	if v.EndpointConfiguration != nil {
3780		ok := object.Key("EndpointConfiguration")
3781		if err := awsRestjson1_serializeDocumentAwsApiGatewayEndpointConfiguration(v.EndpointConfiguration, ok); err != nil {
3782			return err
3783		}
3784	}
3785
3786	if v.Id != nil {
3787		ok := object.Key("Id")
3788		ok.String(*v.Id)
3789	}
3790
3791	if v.MinimumCompressionSize != 0 {
3792		ok := object.Key("MinimumCompressionSize")
3793		ok.Integer(v.MinimumCompressionSize)
3794	}
3795
3796	if v.Name != nil {
3797		ok := object.Key("Name")
3798		ok.String(*v.Name)
3799	}
3800
3801	if v.Version != nil {
3802		ok := object.Key("Version")
3803		ok.String(*v.Version)
3804	}
3805
3806	return nil
3807}
3808
3809func awsRestjson1_serializeDocumentAwsApiGatewayStageDetails(v *types.AwsApiGatewayStageDetails, value smithyjson.Value) error {
3810	object := value.Object()
3811	defer object.Close()
3812
3813	if v.AccessLogSettings != nil {
3814		ok := object.Key("AccessLogSettings")
3815		if err := awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v.AccessLogSettings, ok); err != nil {
3816			return err
3817		}
3818	}
3819
3820	if v.CacheClusterEnabled {
3821		ok := object.Key("CacheClusterEnabled")
3822		ok.Boolean(v.CacheClusterEnabled)
3823	}
3824
3825	if v.CacheClusterSize != nil {
3826		ok := object.Key("CacheClusterSize")
3827		ok.String(*v.CacheClusterSize)
3828	}
3829
3830	if v.CacheClusterStatus != nil {
3831		ok := object.Key("CacheClusterStatus")
3832		ok.String(*v.CacheClusterStatus)
3833	}
3834
3835	if v.CanarySettings != nil {
3836		ok := object.Key("CanarySettings")
3837		if err := awsRestjson1_serializeDocumentAwsApiGatewayCanarySettings(v.CanarySettings, ok); err != nil {
3838			return err
3839		}
3840	}
3841
3842	if v.ClientCertificateId != nil {
3843		ok := object.Key("ClientCertificateId")
3844		ok.String(*v.ClientCertificateId)
3845	}
3846
3847	if v.CreatedDate != nil {
3848		ok := object.Key("CreatedDate")
3849		ok.String(*v.CreatedDate)
3850	}
3851
3852	if v.DeploymentId != nil {
3853		ok := object.Key("DeploymentId")
3854		ok.String(*v.DeploymentId)
3855	}
3856
3857	if v.Description != nil {
3858		ok := object.Key("Description")
3859		ok.String(*v.Description)
3860	}
3861
3862	if v.DocumentationVersion != nil {
3863		ok := object.Key("DocumentationVersion")
3864		ok.String(*v.DocumentationVersion)
3865	}
3866
3867	if v.LastUpdatedDate != nil {
3868		ok := object.Key("LastUpdatedDate")
3869		ok.String(*v.LastUpdatedDate)
3870	}
3871
3872	if v.MethodSettings != nil {
3873		ok := object.Key("MethodSettings")
3874		if err := awsRestjson1_serializeDocumentAwsApiGatewayMethodSettingsList(v.MethodSettings, ok); err != nil {
3875			return err
3876		}
3877	}
3878
3879	if v.StageName != nil {
3880		ok := object.Key("StageName")
3881		ok.String(*v.StageName)
3882	}
3883
3884	if v.TracingEnabled {
3885		ok := object.Key("TracingEnabled")
3886		ok.Boolean(v.TracingEnabled)
3887	}
3888
3889	if v.Variables != nil {
3890		ok := object.Key("Variables")
3891		if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil {
3892			return err
3893		}
3894	}
3895
3896	if v.WebAclArn != nil {
3897		ok := object.Key("WebAclArn")
3898		ok.String(*v.WebAclArn)
3899	}
3900
3901	return nil
3902}
3903
3904func awsRestjson1_serializeDocumentAwsApiGatewayV2ApiDetails(v *types.AwsApiGatewayV2ApiDetails, value smithyjson.Value) error {
3905	object := value.Object()
3906	defer object.Close()
3907
3908	if v.ApiEndpoint != nil {
3909		ok := object.Key("ApiEndpoint")
3910		ok.String(*v.ApiEndpoint)
3911	}
3912
3913	if v.ApiId != nil {
3914		ok := object.Key("ApiId")
3915		ok.String(*v.ApiId)
3916	}
3917
3918	if v.ApiKeySelectionExpression != nil {
3919		ok := object.Key("ApiKeySelectionExpression")
3920		ok.String(*v.ApiKeySelectionExpression)
3921	}
3922
3923	if v.CorsConfiguration != nil {
3924		ok := object.Key("CorsConfiguration")
3925		if err := awsRestjson1_serializeDocumentAwsCorsConfiguration(v.CorsConfiguration, ok); err != nil {
3926			return err
3927		}
3928	}
3929
3930	if v.CreatedDate != nil {
3931		ok := object.Key("CreatedDate")
3932		ok.String(*v.CreatedDate)
3933	}
3934
3935	if v.Description != nil {
3936		ok := object.Key("Description")
3937		ok.String(*v.Description)
3938	}
3939
3940	if v.Name != nil {
3941		ok := object.Key("Name")
3942		ok.String(*v.Name)
3943	}
3944
3945	if v.ProtocolType != nil {
3946		ok := object.Key("ProtocolType")
3947		ok.String(*v.ProtocolType)
3948	}
3949
3950	if v.RouteSelectionExpression != nil {
3951		ok := object.Key("RouteSelectionExpression")
3952		ok.String(*v.RouteSelectionExpression)
3953	}
3954
3955	if v.Version != nil {
3956		ok := object.Key("Version")
3957		ok.String(*v.Version)
3958	}
3959
3960	return nil
3961}
3962
3963func awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v *types.AwsApiGatewayV2RouteSettings, value smithyjson.Value) error {
3964	object := value.Object()
3965	defer object.Close()
3966
3967	if v.DataTraceEnabled {
3968		ok := object.Key("DataTraceEnabled")
3969		ok.Boolean(v.DataTraceEnabled)
3970	}
3971
3972	if v.DetailedMetricsEnabled {
3973		ok := object.Key("DetailedMetricsEnabled")
3974		ok.Boolean(v.DetailedMetricsEnabled)
3975	}
3976
3977	if v.LoggingLevel != nil {
3978		ok := object.Key("LoggingLevel")
3979		ok.String(*v.LoggingLevel)
3980	}
3981
3982	if v.ThrottlingBurstLimit != 0 {
3983		ok := object.Key("ThrottlingBurstLimit")
3984		ok.Integer(v.ThrottlingBurstLimit)
3985	}
3986
3987	if v.ThrottlingRateLimit != 0 {
3988		ok := object.Key("ThrottlingRateLimit")
3989		ok.Double(v.ThrottlingRateLimit)
3990	}
3991
3992	return nil
3993}
3994
3995func awsRestjson1_serializeDocumentAwsApiGatewayV2StageDetails(v *types.AwsApiGatewayV2StageDetails, value smithyjson.Value) error {
3996	object := value.Object()
3997	defer object.Close()
3998
3999	if v.AccessLogSettings != nil {
4000		ok := object.Key("AccessLogSettings")
4001		if err := awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v.AccessLogSettings, ok); err != nil {
4002			return err
4003		}
4004	}
4005
4006	if v.ApiGatewayManaged {
4007		ok := object.Key("ApiGatewayManaged")
4008		ok.Boolean(v.ApiGatewayManaged)
4009	}
4010
4011	if v.AutoDeploy {
4012		ok := object.Key("AutoDeploy")
4013		ok.Boolean(v.AutoDeploy)
4014	}
4015
4016	if v.CreatedDate != nil {
4017		ok := object.Key("CreatedDate")
4018		ok.String(*v.CreatedDate)
4019	}
4020
4021	if v.DefaultRouteSettings != nil {
4022		ok := object.Key("DefaultRouteSettings")
4023		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v.DefaultRouteSettings, ok); err != nil {
4024			return err
4025		}
4026	}
4027
4028	if v.DeploymentId != nil {
4029		ok := object.Key("DeploymentId")
4030		ok.String(*v.DeploymentId)
4031	}
4032
4033	if v.Description != nil {
4034		ok := object.Key("Description")
4035		ok.String(*v.Description)
4036	}
4037
4038	if v.LastDeploymentStatusMessage != nil {
4039		ok := object.Key("LastDeploymentStatusMessage")
4040		ok.String(*v.LastDeploymentStatusMessage)
4041	}
4042
4043	if v.LastUpdatedDate != nil {
4044		ok := object.Key("LastUpdatedDate")
4045		ok.String(*v.LastUpdatedDate)
4046	}
4047
4048	if v.RouteSettings != nil {
4049		ok := object.Key("RouteSettings")
4050		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v.RouteSettings, ok); err != nil {
4051			return err
4052		}
4053	}
4054
4055	if v.StageName != nil {
4056		ok := object.Key("StageName")
4057		ok.String(*v.StageName)
4058	}
4059
4060	if v.StageVariables != nil {
4061		ok := object.Key("StageVariables")
4062		if err := awsRestjson1_serializeDocumentFieldMap(v.StageVariables, ok); err != nil {
4063			return err
4064		}
4065	}
4066
4067	return nil
4068}
4069
4070func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v *types.AwsAutoScalingAutoScalingGroupDetails, value smithyjson.Value) error {
4071	object := value.Object()
4072	defer object.Close()
4073
4074	if v.CreatedTime != nil {
4075		ok := object.Key("CreatedTime")
4076		ok.String(*v.CreatedTime)
4077	}
4078
4079	if v.HealthCheckGracePeriod != 0 {
4080		ok := object.Key("HealthCheckGracePeriod")
4081		ok.Integer(v.HealthCheckGracePeriod)
4082	}
4083
4084	if v.HealthCheckType != nil {
4085		ok := object.Key("HealthCheckType")
4086		ok.String(*v.HealthCheckType)
4087	}
4088
4089	if v.LaunchConfigurationName != nil {
4090		ok := object.Key("LaunchConfigurationName")
4091		ok.String(*v.LaunchConfigurationName)
4092	}
4093
4094	if v.LoadBalancerNames != nil {
4095		ok := object.Key("LoadBalancerNames")
4096		if err := awsRestjson1_serializeDocumentStringList(v.LoadBalancerNames, ok); err != nil {
4097			return err
4098		}
4099	}
4100
4101	return nil
4102}
4103
4104func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v *types.AwsCertificateManagerCertificateDetails, value smithyjson.Value) error {
4105	object := value.Object()
4106	defer object.Close()
4107
4108	if v.CertificateAuthorityArn != nil {
4109		ok := object.Key("CertificateAuthorityArn")
4110		ok.String(*v.CertificateAuthorityArn)
4111	}
4112
4113	if v.CreatedAt != nil {
4114		ok := object.Key("CreatedAt")
4115		ok.String(*v.CreatedAt)
4116	}
4117
4118	if v.DomainName != nil {
4119		ok := object.Key("DomainName")
4120		ok.String(*v.DomainName)
4121	}
4122
4123	if v.DomainValidationOptions != nil {
4124		ok := object.Key("DomainValidationOptions")
4125		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v.DomainValidationOptions, ok); err != nil {
4126			return err
4127		}
4128	}
4129
4130	if v.ExtendedKeyUsages != nil {
4131		ok := object.Key("ExtendedKeyUsages")
4132		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v.ExtendedKeyUsages, ok); err != nil {
4133			return err
4134		}
4135	}
4136
4137	if v.FailureReason != nil {
4138		ok := object.Key("FailureReason")
4139		ok.String(*v.FailureReason)
4140	}
4141
4142	if v.ImportedAt != nil {
4143		ok := object.Key("ImportedAt")
4144		ok.String(*v.ImportedAt)
4145	}
4146
4147	if v.InUseBy != nil {
4148		ok := object.Key("InUseBy")
4149		if err := awsRestjson1_serializeDocumentStringList(v.InUseBy, ok); err != nil {
4150			return err
4151		}
4152	}
4153
4154	if v.IssuedAt != nil {
4155		ok := object.Key("IssuedAt")
4156		ok.String(*v.IssuedAt)
4157	}
4158
4159	if v.Issuer != nil {
4160		ok := object.Key("Issuer")
4161		ok.String(*v.Issuer)
4162	}
4163
4164	if v.KeyAlgorithm != nil {
4165		ok := object.Key("KeyAlgorithm")
4166		ok.String(*v.KeyAlgorithm)
4167	}
4168
4169	if v.KeyUsages != nil {
4170		ok := object.Key("KeyUsages")
4171		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsages(v.KeyUsages, ok); err != nil {
4172			return err
4173		}
4174	}
4175
4176	if v.NotAfter != nil {
4177		ok := object.Key("NotAfter")
4178		ok.String(*v.NotAfter)
4179	}
4180
4181	if v.NotBefore != nil {
4182		ok := object.Key("NotBefore")
4183		ok.String(*v.NotBefore)
4184	}
4185
4186	if v.Options != nil {
4187		ok := object.Key("Options")
4188		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateOptions(v.Options, ok); err != nil {
4189			return err
4190		}
4191	}
4192
4193	if v.RenewalEligibility != nil {
4194		ok := object.Key("RenewalEligibility")
4195		ok.String(*v.RenewalEligibility)
4196	}
4197
4198	if v.RenewalSummary != nil {
4199		ok := object.Key("RenewalSummary")
4200		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateRenewalSummary(v.RenewalSummary, ok); err != nil {
4201			return err
4202		}
4203	}
4204
4205	if v.Serial != nil {
4206		ok := object.Key("Serial")
4207		ok.String(*v.Serial)
4208	}
4209
4210	if v.SignatureAlgorithm != nil {
4211		ok := object.Key("SignatureAlgorithm")
4212		ok.String(*v.SignatureAlgorithm)
4213	}
4214
4215	if v.Status != nil {
4216		ok := object.Key("Status")
4217		ok.String(*v.Status)
4218	}
4219
4220	if v.Subject != nil {
4221		ok := object.Key("Subject")
4222		ok.String(*v.Subject)
4223	}
4224
4225	if v.SubjectAlternativeNames != nil {
4226		ok := object.Key("SubjectAlternativeNames")
4227		if err := awsRestjson1_serializeDocumentStringList(v.SubjectAlternativeNames, ok); err != nil {
4228			return err
4229		}
4230	}
4231
4232	if v.Type != nil {
4233		ok := object.Key("Type")
4234		ok.String(*v.Type)
4235	}
4236
4237	return nil
4238}
4239
4240func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v *types.AwsCertificateManagerCertificateDomainValidationOption, value smithyjson.Value) error {
4241	object := value.Object()
4242	defer object.Close()
4243
4244	if v.DomainName != nil {
4245		ok := object.Key("DomainName")
4246		ok.String(*v.DomainName)
4247	}
4248
4249	if v.ResourceRecord != nil {
4250		ok := object.Key("ResourceRecord")
4251		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateResourceRecord(v.ResourceRecord, ok); err != nil {
4252			return err
4253		}
4254	}
4255
4256	if v.ValidationDomain != nil {
4257		ok := object.Key("ValidationDomain")
4258		ok.String(*v.ValidationDomain)
4259	}
4260
4261	if v.ValidationEmails != nil {
4262		ok := object.Key("ValidationEmails")
4263		if err := awsRestjson1_serializeDocumentStringList(v.ValidationEmails, ok); err != nil {
4264			return err
4265		}
4266	}
4267
4268	if v.ValidationMethod != nil {
4269		ok := object.Key("ValidationMethod")
4270		ok.String(*v.ValidationMethod)
4271	}
4272
4273	if v.ValidationStatus != nil {
4274		ok := object.Key("ValidationStatus")
4275		ok.String(*v.ValidationStatus)
4276	}
4277
4278	return nil
4279}
4280
4281func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v []types.AwsCertificateManagerCertificateDomainValidationOption, value smithyjson.Value) error {
4282	array := value.Array()
4283	defer array.Close()
4284
4285	for i := range v {
4286		av := array.Value()
4287		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&v[i], av); err != nil {
4288			return err
4289		}
4290	}
4291	return nil
4292}
4293
4294func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v *types.AwsCertificateManagerCertificateExtendedKeyUsage, value smithyjson.Value) error {
4295	object := value.Object()
4296	defer object.Close()
4297
4298	if v.Name != nil {
4299		ok := object.Key("Name")
4300		ok.String(*v.Name)
4301	}
4302
4303	if v.OId != nil {
4304		ok := object.Key("OId")
4305		ok.String(*v.OId)
4306	}
4307
4308	return nil
4309}
4310
4311func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v []types.AwsCertificateManagerCertificateExtendedKeyUsage, value smithyjson.Value) error {
4312	array := value.Array()
4313	defer array.Close()
4314
4315	for i := range v {
4316		av := array.Value()
4317		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&v[i], av); err != nil {
4318			return err
4319		}
4320	}
4321	return nil
4322}
4323
4324func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsage(v *types.AwsCertificateManagerCertificateKeyUsage, value smithyjson.Value) error {
4325	object := value.Object()
4326	defer object.Close()
4327
4328	if v.Name != nil {
4329		ok := object.Key("Name")
4330		ok.String(*v.Name)
4331	}
4332
4333	return nil
4334}
4335
4336func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsages(v []types.AwsCertificateManagerCertificateKeyUsage, value smithyjson.Value) error {
4337	array := value.Array()
4338	defer array.Close()
4339
4340	for i := range v {
4341		av := array.Value()
4342		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsage(&v[i], av); err != nil {
4343			return err
4344		}
4345	}
4346	return nil
4347}
4348
4349func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateOptions(v *types.AwsCertificateManagerCertificateOptions, value smithyjson.Value) error {
4350	object := value.Object()
4351	defer object.Close()
4352
4353	if v.CertificateTransparencyLoggingPreference != nil {
4354		ok := object.Key("CertificateTransparencyLoggingPreference")
4355		ok.String(*v.CertificateTransparencyLoggingPreference)
4356	}
4357
4358	return nil
4359}
4360
4361func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateRenewalSummary(v *types.AwsCertificateManagerCertificateRenewalSummary, value smithyjson.Value) error {
4362	object := value.Object()
4363	defer object.Close()
4364
4365	if v.DomainValidationOptions != nil {
4366		ok := object.Key("DomainValidationOptions")
4367		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v.DomainValidationOptions, ok); err != nil {
4368			return err
4369		}
4370	}
4371
4372	if v.RenewalStatus != nil {
4373		ok := object.Key("RenewalStatus")
4374		ok.String(*v.RenewalStatus)
4375	}
4376
4377	if v.RenewalStatusReason != nil {
4378		ok := object.Key("RenewalStatusReason")
4379		ok.String(*v.RenewalStatusReason)
4380	}
4381
4382	if v.UpdatedAt != nil {
4383		ok := object.Key("UpdatedAt")
4384		ok.String(*v.UpdatedAt)
4385	}
4386
4387	return nil
4388}
4389
4390func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateResourceRecord(v *types.AwsCertificateManagerCertificateResourceRecord, value smithyjson.Value) error {
4391	object := value.Object()
4392	defer object.Close()
4393
4394	if v.Name != nil {
4395		ok := object.Key("Name")
4396		ok.String(*v.Name)
4397	}
4398
4399	if v.Type != nil {
4400		ok := object.Key("Type")
4401		ok.String(*v.Type)
4402	}
4403
4404	if v.Value != nil {
4405		ok := object.Key("Value")
4406		ok.String(*v.Value)
4407	}
4408
4409	return nil
4410}
4411
4412func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehavior(v *types.AwsCloudFrontDistributionCacheBehavior, value smithyjson.Value) error {
4413	object := value.Object()
4414	defer object.Close()
4415
4416	if v.ViewerProtocolPolicy != nil {
4417		ok := object.Key("ViewerProtocolPolicy")
4418		ok.String(*v.ViewerProtocolPolicy)
4419	}
4420
4421	return nil
4422}
4423
4424func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviors(v *types.AwsCloudFrontDistributionCacheBehaviors, value smithyjson.Value) error {
4425	object := value.Object()
4426	defer object.Close()
4427
4428	if v.Items != nil {
4429		ok := object.Key("Items")
4430		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v.Items, ok); err != nil {
4431			return err
4432		}
4433	}
4434
4435	return nil
4436}
4437
4438func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v []types.AwsCloudFrontDistributionCacheBehavior, value smithyjson.Value) error {
4439	array := value.Array()
4440	defer array.Close()
4441
4442	for i := range v {
4443		av := array.Value()
4444		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehavior(&v[i], av); err != nil {
4445			return err
4446		}
4447	}
4448	return nil
4449}
4450
4451func awsRestjson1_serializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v *types.AwsCloudFrontDistributionDefaultCacheBehavior, value smithyjson.Value) error {
4452	object := value.Object()
4453	defer object.Close()
4454
4455	if v.ViewerProtocolPolicy != nil {
4456		ok := object.Key("ViewerProtocolPolicy")
4457		ok.String(*v.ViewerProtocolPolicy)
4458	}
4459
4460	return nil
4461}
4462
4463func awsRestjson1_serializeDocumentAwsCloudFrontDistributionDetails(v *types.AwsCloudFrontDistributionDetails, value smithyjson.Value) error {
4464	object := value.Object()
4465	defer object.Close()
4466
4467	if v.CacheBehaviors != nil {
4468		ok := object.Key("CacheBehaviors")
4469		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviors(v.CacheBehaviors, ok); err != nil {
4470			return err
4471		}
4472	}
4473
4474	if v.DefaultCacheBehavior != nil {
4475		ok := object.Key("DefaultCacheBehavior")
4476		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v.DefaultCacheBehavior, ok); err != nil {
4477			return err
4478		}
4479	}
4480
4481	if v.DefaultRootObject != nil {
4482		ok := object.Key("DefaultRootObject")
4483		ok.String(*v.DefaultRootObject)
4484	}
4485
4486	if v.DomainName != nil {
4487		ok := object.Key("DomainName")
4488		ok.String(*v.DomainName)
4489	}
4490
4491	if v.ETag != nil {
4492		ok := object.Key("ETag")
4493		ok.String(*v.ETag)
4494	}
4495
4496	if v.LastModifiedTime != nil {
4497		ok := object.Key("LastModifiedTime")
4498		ok.String(*v.LastModifiedTime)
4499	}
4500
4501	if v.Logging != nil {
4502		ok := object.Key("Logging")
4503		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionLogging(v.Logging, ok); err != nil {
4504			return err
4505		}
4506	}
4507
4508	if v.OriginGroups != nil {
4509		ok := object.Key("OriginGroups")
4510		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroups(v.OriginGroups, ok); err != nil {
4511			return err
4512		}
4513	}
4514
4515	if v.Origins != nil {
4516		ok := object.Key("Origins")
4517		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOrigins(v.Origins, ok); err != nil {
4518			return err
4519		}
4520	}
4521
4522	if v.Status != nil {
4523		ok := object.Key("Status")
4524		ok.String(*v.Status)
4525	}
4526
4527	if v.WebAclId != nil {
4528		ok := object.Key("WebAclId")
4529		ok.String(*v.WebAclId)
4530	}
4531
4532	return nil
4533}
4534
4535func awsRestjson1_serializeDocumentAwsCloudFrontDistributionLogging(v *types.AwsCloudFrontDistributionLogging, value smithyjson.Value) error {
4536	object := value.Object()
4537	defer object.Close()
4538
4539	if v.Bucket != nil {
4540		ok := object.Key("Bucket")
4541		ok.String(*v.Bucket)
4542	}
4543
4544	if v.Enabled {
4545		ok := object.Key("Enabled")
4546		ok.Boolean(v.Enabled)
4547	}
4548
4549	if v.IncludeCookies {
4550		ok := object.Key("IncludeCookies")
4551		ok.Boolean(v.IncludeCookies)
4552	}
4553
4554	if v.Prefix != nil {
4555		ok := object.Key("Prefix")
4556		ok.String(*v.Prefix)
4557	}
4558
4559	return nil
4560}
4561
4562func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroup(v *types.AwsCloudFrontDistributionOriginGroup, value smithyjson.Value) error {
4563	object := value.Object()
4564	defer object.Close()
4565
4566	if v.FailoverCriteria != nil {
4567		ok := object.Key("FailoverCriteria")
4568		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v.FailoverCriteria, ok); err != nil {
4569			return err
4570		}
4571	}
4572
4573	return nil
4574}
4575
4576func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v *types.AwsCloudFrontDistributionOriginGroupFailover, value smithyjson.Value) error {
4577	object := value.Object()
4578	defer object.Close()
4579
4580	if v.StatusCodes != nil {
4581		ok := object.Key("StatusCodes")
4582		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v.StatusCodes, ok); err != nil {
4583			return err
4584		}
4585	}
4586
4587	return nil
4588}
4589
4590func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value smithyjson.Value) error {
4591	object := value.Object()
4592	defer object.Close()
4593
4594	if v.Items != nil {
4595		ok := object.Key("Items")
4596		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v.Items, ok); err != nil {
4597			return err
4598		}
4599	}
4600
4601	if v.Quantity != 0 {
4602		ok := object.Key("Quantity")
4603		ok.Integer(v.Quantity)
4604	}
4605
4606	return nil
4607}
4608
4609func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v []int32, value smithyjson.Value) error {
4610	array := value.Array()
4611	defer array.Close()
4612
4613	for i := range v {
4614		av := array.Value()
4615		av.Integer(v[i])
4616	}
4617	return nil
4618}
4619
4620func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroups(v *types.AwsCloudFrontDistributionOriginGroups, value smithyjson.Value) error {
4621	object := value.Object()
4622	defer object.Close()
4623
4624	if v.Items != nil {
4625		ok := object.Key("Items")
4626		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v.Items, ok); err != nil {
4627			return err
4628		}
4629	}
4630
4631	return nil
4632}
4633
4634func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v []types.AwsCloudFrontDistributionOriginGroup, value smithyjson.Value) error {
4635	array := value.Array()
4636	defer array.Close()
4637
4638	for i := range v {
4639		av := array.Value()
4640		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroup(&v[i], av); err != nil {
4641			return err
4642		}
4643	}
4644	return nil
4645}
4646
4647func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItem(v *types.AwsCloudFrontDistributionOriginItem, value smithyjson.Value) error {
4648	object := value.Object()
4649	defer object.Close()
4650
4651	if v.DomainName != nil {
4652		ok := object.Key("DomainName")
4653		ok.String(*v.DomainName)
4654	}
4655
4656	if v.Id != nil {
4657		ok := object.Key("Id")
4658		ok.String(*v.Id)
4659	}
4660
4661	if v.OriginPath != nil {
4662		ok := object.Key("OriginPath")
4663		ok.String(*v.OriginPath)
4664	}
4665
4666	if v.S3OriginConfig != nil {
4667		ok := object.Key("S3OriginConfig")
4668		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v.S3OriginConfig, ok); err != nil {
4669			return err
4670		}
4671	}
4672
4673	return nil
4674}
4675
4676func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItemList(v []types.AwsCloudFrontDistributionOriginItem, value smithyjson.Value) error {
4677	array := value.Array()
4678	defer array.Close()
4679
4680	for i := range v {
4681		av := array.Value()
4682		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItem(&v[i], av); err != nil {
4683			return err
4684		}
4685	}
4686	return nil
4687}
4688
4689func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOrigins(v *types.AwsCloudFrontDistributionOrigins, value smithyjson.Value) error {
4690	object := value.Object()
4691	defer object.Close()
4692
4693	if v.Items != nil {
4694		ok := object.Key("Items")
4695		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItemList(v.Items, ok); err != nil {
4696			return err
4697		}
4698	}
4699
4700	return nil
4701}
4702
4703func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v *types.AwsCloudFrontDistributionOriginS3OriginConfig, value smithyjson.Value) error {
4704	object := value.Object()
4705	defer object.Close()
4706
4707	if v.OriginAccessIdentity != nil {
4708		ok := object.Key("OriginAccessIdentity")
4709		ok.String(*v.OriginAccessIdentity)
4710	}
4711
4712	return nil
4713}
4714
4715func awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v *types.AwsCloudTrailTrailDetails, value smithyjson.Value) error {
4716	object := value.Object()
4717	defer object.Close()
4718
4719	if v.CloudWatchLogsLogGroupArn != nil {
4720		ok := object.Key("CloudWatchLogsLogGroupArn")
4721		ok.String(*v.CloudWatchLogsLogGroupArn)
4722	}
4723
4724	if v.CloudWatchLogsRoleArn != nil {
4725		ok := object.Key("CloudWatchLogsRoleArn")
4726		ok.String(*v.CloudWatchLogsRoleArn)
4727	}
4728
4729	if v.HasCustomEventSelectors {
4730		ok := object.Key("HasCustomEventSelectors")
4731		ok.Boolean(v.HasCustomEventSelectors)
4732	}
4733
4734	if v.HomeRegion != nil {
4735		ok := object.Key("HomeRegion")
4736		ok.String(*v.HomeRegion)
4737	}
4738
4739	if v.IncludeGlobalServiceEvents {
4740		ok := object.Key("IncludeGlobalServiceEvents")
4741		ok.Boolean(v.IncludeGlobalServiceEvents)
4742	}
4743
4744	if v.IsMultiRegionTrail {
4745		ok := object.Key("IsMultiRegionTrail")
4746		ok.Boolean(v.IsMultiRegionTrail)
4747	}
4748
4749	if v.IsOrganizationTrail {
4750		ok := object.Key("IsOrganizationTrail")
4751		ok.Boolean(v.IsOrganizationTrail)
4752	}
4753
4754	if v.KmsKeyId != nil {
4755		ok := object.Key("KmsKeyId")
4756		ok.String(*v.KmsKeyId)
4757	}
4758
4759	if v.LogFileValidationEnabled {
4760		ok := object.Key("LogFileValidationEnabled")
4761		ok.Boolean(v.LogFileValidationEnabled)
4762	}
4763
4764	if v.Name != nil {
4765		ok := object.Key("Name")
4766		ok.String(*v.Name)
4767	}
4768
4769	if v.S3BucketName != nil {
4770		ok := object.Key("S3BucketName")
4771		ok.String(*v.S3BucketName)
4772	}
4773
4774	if v.S3KeyPrefix != nil {
4775		ok := object.Key("S3KeyPrefix")
4776		ok.String(*v.S3KeyPrefix)
4777	}
4778
4779	if v.SnsTopicArn != nil {
4780		ok := object.Key("SnsTopicArn")
4781		ok.String(*v.SnsTopicArn)
4782	}
4783
4784	if v.SnsTopicName != nil {
4785		ok := object.Key("SnsTopicName")
4786		ok.String(*v.SnsTopicName)
4787	}
4788
4789	if v.TrailArn != nil {
4790		ok := object.Key("TrailArn")
4791		ok.String(*v.TrailArn)
4792	}
4793
4794	return nil
4795}
4796
4797func awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v *types.AwsCodeBuildProjectDetails, value smithyjson.Value) error {
4798	object := value.Object()
4799	defer object.Close()
4800
4801	if v.EncryptionKey != nil {
4802		ok := object.Key("EncryptionKey")
4803		ok.String(*v.EncryptionKey)
4804	}
4805
4806	if v.Environment != nil {
4807		ok := object.Key("Environment")
4808		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v.Environment, ok); err != nil {
4809			return err
4810		}
4811	}
4812
4813	if v.Name != nil {
4814		ok := object.Key("Name")
4815		ok.String(*v.Name)
4816	}
4817
4818	if v.ServiceRole != nil {
4819		ok := object.Key("ServiceRole")
4820		ok.String(*v.ServiceRole)
4821	}
4822
4823	if v.Source != nil {
4824		ok := object.Key("Source")
4825		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectSource(v.Source, ok); err != nil {
4826			return err
4827		}
4828	}
4829
4830	if v.VpcConfig != nil {
4831		ok := object.Key("VpcConfig")
4832		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectVpcConfig(v.VpcConfig, ok); err != nil {
4833			return err
4834		}
4835	}
4836
4837	return nil
4838}
4839
4840func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v *types.AwsCodeBuildProjectEnvironment, value smithyjson.Value) error {
4841	object := value.Object()
4842	defer object.Close()
4843
4844	if v.Certificate != nil {
4845		ok := object.Key("Certificate")
4846		ok.String(*v.Certificate)
4847	}
4848
4849	if v.ImagePullCredentialsType != nil {
4850		ok := object.Key("ImagePullCredentialsType")
4851		ok.String(*v.ImagePullCredentialsType)
4852	}
4853
4854	if v.RegistryCredential != nil {
4855		ok := object.Key("RegistryCredential")
4856		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v.RegistryCredential, ok); err != nil {
4857			return err
4858		}
4859	}
4860
4861	if v.Type != nil {
4862		ok := object.Key("Type")
4863		ok.String(*v.Type)
4864	}
4865
4866	return nil
4867}
4868
4869func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v *types.AwsCodeBuildProjectEnvironmentRegistryCredential, value smithyjson.Value) error {
4870	object := value.Object()
4871	defer object.Close()
4872
4873	if v.Credential != nil {
4874		ok := object.Key("Credential")
4875		ok.String(*v.Credential)
4876	}
4877
4878	if v.CredentialProvider != nil {
4879		ok := object.Key("CredentialProvider")
4880		ok.String(*v.CredentialProvider)
4881	}
4882
4883	return nil
4884}
4885
4886func awsRestjson1_serializeDocumentAwsCodeBuildProjectSource(v *types.AwsCodeBuildProjectSource, value smithyjson.Value) error {
4887	object := value.Object()
4888	defer object.Close()
4889
4890	if v.GitCloneDepth != 0 {
4891		ok := object.Key("GitCloneDepth")
4892		ok.Integer(v.GitCloneDepth)
4893	}
4894
4895	if v.InsecureSsl {
4896		ok := object.Key("InsecureSsl")
4897		ok.Boolean(v.InsecureSsl)
4898	}
4899
4900	if v.Location != nil {
4901		ok := object.Key("Location")
4902		ok.String(*v.Location)
4903	}
4904
4905	if v.Type != nil {
4906		ok := object.Key("Type")
4907		ok.String(*v.Type)
4908	}
4909
4910	return nil
4911}
4912
4913func awsRestjson1_serializeDocumentAwsCodeBuildProjectVpcConfig(v *types.AwsCodeBuildProjectVpcConfig, value smithyjson.Value) error {
4914	object := value.Object()
4915	defer object.Close()
4916
4917	if v.SecurityGroupIds != nil {
4918		ok := object.Key("SecurityGroupIds")
4919		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
4920			return err
4921		}
4922	}
4923
4924	if v.Subnets != nil {
4925		ok := object.Key("Subnets")
4926		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Subnets, ok); err != nil {
4927			return err
4928		}
4929	}
4930
4931	if v.VpcId != nil {
4932		ok := object.Key("VpcId")
4933		ok.String(*v.VpcId)
4934	}
4935
4936	return nil
4937}
4938
4939func awsRestjson1_serializeDocumentAwsCorsConfiguration(v *types.AwsCorsConfiguration, value smithyjson.Value) error {
4940	object := value.Object()
4941	defer object.Close()
4942
4943	if v.AllowCredentials {
4944		ok := object.Key("AllowCredentials")
4945		ok.Boolean(v.AllowCredentials)
4946	}
4947
4948	if v.AllowHeaders != nil {
4949		ok := object.Key("AllowHeaders")
4950		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowHeaders, ok); err != nil {
4951			return err
4952		}
4953	}
4954
4955	if v.AllowMethods != nil {
4956		ok := object.Key("AllowMethods")
4957		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowMethods, ok); err != nil {
4958			return err
4959		}
4960	}
4961
4962	if v.AllowOrigins != nil {
4963		ok := object.Key("AllowOrigins")
4964		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowOrigins, ok); err != nil {
4965			return err
4966		}
4967	}
4968
4969	if v.ExposeHeaders != nil {
4970		ok := object.Key("ExposeHeaders")
4971		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ExposeHeaders, ok); err != nil {
4972			return err
4973		}
4974	}
4975
4976	if v.MaxAge != 0 {
4977		ok := object.Key("MaxAge")
4978		ok.Integer(v.MaxAge)
4979	}
4980
4981	return nil
4982}
4983
4984func awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinition(v *types.AwsDynamoDbTableAttributeDefinition, value smithyjson.Value) error {
4985	object := value.Object()
4986	defer object.Close()
4987
4988	if v.AttributeName != nil {
4989		ok := object.Key("AttributeName")
4990		ok.String(*v.AttributeName)
4991	}
4992
4993	if v.AttributeType != nil {
4994		ok := object.Key("AttributeType")
4995		ok.String(*v.AttributeType)
4996	}
4997
4998	return nil
4999}
5000
5001func awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinitionList(v []types.AwsDynamoDbTableAttributeDefinition, value smithyjson.Value) error {
5002	array := value.Array()
5003	defer array.Close()
5004
5005	for i := range v {
5006		av := array.Value()
5007		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinition(&v[i], av); err != nil {
5008			return err
5009		}
5010	}
5011	return nil
5012}
5013
5014func awsRestjson1_serializeDocumentAwsDynamoDbTableBillingModeSummary(v *types.AwsDynamoDbTableBillingModeSummary, value smithyjson.Value) error {
5015	object := value.Object()
5016	defer object.Close()
5017
5018	if v.BillingMode != nil {
5019		ok := object.Key("BillingMode")
5020		ok.String(*v.BillingMode)
5021	}
5022
5023	if v.LastUpdateToPayPerRequestDateTime != nil {
5024		ok := object.Key("LastUpdateToPayPerRequestDateTime")
5025		ok.String(*v.LastUpdateToPayPerRequestDateTime)
5026	}
5027
5028	return nil
5029}
5030
5031func awsRestjson1_serializeDocumentAwsDynamoDbTableDetails(v *types.AwsDynamoDbTableDetails, value smithyjson.Value) error {
5032	object := value.Object()
5033	defer object.Close()
5034
5035	if v.AttributeDefinitions != nil {
5036		ok := object.Key("AttributeDefinitions")
5037		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinitionList(v.AttributeDefinitions, ok); err != nil {
5038			return err
5039		}
5040	}
5041
5042	if v.BillingModeSummary != nil {
5043		ok := object.Key("BillingModeSummary")
5044		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableBillingModeSummary(v.BillingModeSummary, ok); err != nil {
5045			return err
5046		}
5047	}
5048
5049	if v.CreationDateTime != nil {
5050		ok := object.Key("CreationDateTime")
5051		ok.String(*v.CreationDateTime)
5052	}
5053
5054	if v.GlobalSecondaryIndexes != nil {
5055		ok := object.Key("GlobalSecondaryIndexes")
5056		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v.GlobalSecondaryIndexes, ok); err != nil {
5057			return err
5058		}
5059	}
5060
5061	if v.GlobalTableVersion != nil {
5062		ok := object.Key("GlobalTableVersion")
5063		ok.String(*v.GlobalTableVersion)
5064	}
5065
5066	if v.ItemCount != 0 {
5067		ok := object.Key("ItemCount")
5068		ok.Integer(v.ItemCount)
5069	}
5070
5071	if v.KeySchema != nil {
5072		ok := object.Key("KeySchema")
5073		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5074			return err
5075		}
5076	}
5077
5078	if v.LatestStreamArn != nil {
5079		ok := object.Key("LatestStreamArn")
5080		ok.String(*v.LatestStreamArn)
5081	}
5082
5083	if v.LatestStreamLabel != nil {
5084		ok := object.Key("LatestStreamLabel")
5085		ok.String(*v.LatestStreamLabel)
5086	}
5087
5088	if v.LocalSecondaryIndexes != nil {
5089		ok := object.Key("LocalSecondaryIndexes")
5090		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v.LocalSecondaryIndexes, ok); err != nil {
5091			return err
5092		}
5093	}
5094
5095	if v.ProvisionedThroughput != nil {
5096		ok := object.Key("ProvisionedThroughput")
5097		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v.ProvisionedThroughput, ok); err != nil {
5098			return err
5099		}
5100	}
5101
5102	if v.Replicas != nil {
5103		ok := object.Key("Replicas")
5104		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaList(v.Replicas, ok); err != nil {
5105			return err
5106		}
5107	}
5108
5109	if v.RestoreSummary != nil {
5110		ok := object.Key("RestoreSummary")
5111		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableRestoreSummary(v.RestoreSummary, ok); err != nil {
5112			return err
5113		}
5114	}
5115
5116	if v.SseDescription != nil {
5117		ok := object.Key("SseDescription")
5118		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableSseDescription(v.SseDescription, ok); err != nil {
5119			return err
5120		}
5121	}
5122
5123	if v.StreamSpecification != nil {
5124		ok := object.Key("StreamSpecification")
5125		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableStreamSpecification(v.StreamSpecification, ok); err != nil {
5126			return err
5127		}
5128	}
5129
5130	if v.TableId != nil {
5131		ok := object.Key("TableId")
5132		ok.String(*v.TableId)
5133	}
5134
5135	if v.TableName != nil {
5136		ok := object.Key("TableName")
5137		ok.String(*v.TableName)
5138	}
5139
5140	if v.TableSizeBytes != 0 {
5141		ok := object.Key("TableSizeBytes")
5142		ok.Long(v.TableSizeBytes)
5143	}
5144
5145	if v.TableStatus != nil {
5146		ok := object.Key("TableStatus")
5147		ok.String(*v.TableStatus)
5148	}
5149
5150	return nil
5151}
5152
5153func awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v *types.AwsDynamoDbTableGlobalSecondaryIndex, value smithyjson.Value) error {
5154	object := value.Object()
5155	defer object.Close()
5156
5157	if v.Backfilling {
5158		ok := object.Key("Backfilling")
5159		ok.Boolean(v.Backfilling)
5160	}
5161
5162	if v.IndexArn != nil {
5163		ok := object.Key("IndexArn")
5164		ok.String(*v.IndexArn)
5165	}
5166
5167	if v.IndexName != nil {
5168		ok := object.Key("IndexName")
5169		ok.String(*v.IndexName)
5170	}
5171
5172	if v.IndexSizeBytes != 0 {
5173		ok := object.Key("IndexSizeBytes")
5174		ok.Long(v.IndexSizeBytes)
5175	}
5176
5177	if v.IndexStatus != nil {
5178		ok := object.Key("IndexStatus")
5179		ok.String(*v.IndexStatus)
5180	}
5181
5182	if v.ItemCount != 0 {
5183		ok := object.Key("ItemCount")
5184		ok.Integer(v.ItemCount)
5185	}
5186
5187	if v.KeySchema != nil {
5188		ok := object.Key("KeySchema")
5189		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5190			return err
5191		}
5192	}
5193
5194	if v.Projection != nil {
5195		ok := object.Key("Projection")
5196		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v.Projection, ok); err != nil {
5197			return err
5198		}
5199	}
5200
5201	if v.ProvisionedThroughput != nil {
5202		ok := object.Key("ProvisionedThroughput")
5203		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v.ProvisionedThroughput, ok); err != nil {
5204			return err
5205		}
5206	}
5207
5208	return nil
5209}
5210
5211func awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v []types.AwsDynamoDbTableGlobalSecondaryIndex, value smithyjson.Value) error {
5212	array := value.Array()
5213	defer array.Close()
5214
5215	for i := range v {
5216		av := array.Value()
5217		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(&v[i], av); err != nil {
5218			return err
5219		}
5220	}
5221	return nil
5222}
5223
5224func awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchema(v *types.AwsDynamoDbTableKeySchema, value smithyjson.Value) error {
5225	object := value.Object()
5226	defer object.Close()
5227
5228	if v.AttributeName != nil {
5229		ok := object.Key("AttributeName")
5230		ok.String(*v.AttributeName)
5231	}
5232
5233	if v.KeyType != nil {
5234		ok := object.Key("KeyType")
5235		ok.String(*v.KeyType)
5236	}
5237
5238	return nil
5239}
5240
5241func awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v []types.AwsDynamoDbTableKeySchema, value smithyjson.Value) error {
5242	array := value.Array()
5243	defer array.Close()
5244
5245	for i := range v {
5246		av := array.Value()
5247		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchema(&v[i], av); err != nil {
5248			return err
5249		}
5250	}
5251	return nil
5252}
5253
5254func awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v *types.AwsDynamoDbTableLocalSecondaryIndex, value smithyjson.Value) error {
5255	object := value.Object()
5256	defer object.Close()
5257
5258	if v.IndexArn != nil {
5259		ok := object.Key("IndexArn")
5260		ok.String(*v.IndexArn)
5261	}
5262
5263	if v.IndexName != nil {
5264		ok := object.Key("IndexName")
5265		ok.String(*v.IndexName)
5266	}
5267
5268	if v.KeySchema != nil {
5269		ok := object.Key("KeySchema")
5270		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5271			return err
5272		}
5273	}
5274
5275	if v.Projection != nil {
5276		ok := object.Key("Projection")
5277		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v.Projection, ok); err != nil {
5278			return err
5279		}
5280	}
5281
5282	return nil
5283}
5284
5285func awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v []types.AwsDynamoDbTableLocalSecondaryIndex, value smithyjson.Value) error {
5286	array := value.Array()
5287	defer array.Close()
5288
5289	for i := range v {
5290		av := array.Value()
5291		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndex(&v[i], av); err != nil {
5292			return err
5293		}
5294	}
5295	return nil
5296}
5297
5298func awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v *types.AwsDynamoDbTableProjection, value smithyjson.Value) error {
5299	object := value.Object()
5300	defer object.Close()
5301
5302	if v.NonKeyAttributes != nil {
5303		ok := object.Key("NonKeyAttributes")
5304		if err := awsRestjson1_serializeDocumentStringList(v.NonKeyAttributes, ok); err != nil {
5305			return err
5306		}
5307	}
5308
5309	if v.ProjectionType != nil {
5310		ok := object.Key("ProjectionType")
5311		ok.String(*v.ProjectionType)
5312	}
5313
5314	return nil
5315}
5316
5317func awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v *types.AwsDynamoDbTableProvisionedThroughput, value smithyjson.Value) error {
5318	object := value.Object()
5319	defer object.Close()
5320
5321	if v.LastDecreaseDateTime != nil {
5322		ok := object.Key("LastDecreaseDateTime")
5323		ok.String(*v.LastDecreaseDateTime)
5324	}
5325
5326	if v.LastIncreaseDateTime != nil {
5327		ok := object.Key("LastIncreaseDateTime")
5328		ok.String(*v.LastIncreaseDateTime)
5329	}
5330
5331	if v.NumberOfDecreasesToday != 0 {
5332		ok := object.Key("NumberOfDecreasesToday")
5333		ok.Integer(v.NumberOfDecreasesToday)
5334	}
5335
5336	if v.ReadCapacityUnits != 0 {
5337		ok := object.Key("ReadCapacityUnits")
5338		ok.Integer(v.ReadCapacityUnits)
5339	}
5340
5341	if v.WriteCapacityUnits != 0 {
5342		ok := object.Key("WriteCapacityUnits")
5343		ok.Integer(v.WriteCapacityUnits)
5344	}
5345
5346	return nil
5347}
5348
5349func awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v *types.AwsDynamoDbTableProvisionedThroughputOverride, value smithyjson.Value) error {
5350	object := value.Object()
5351	defer object.Close()
5352
5353	if v.ReadCapacityUnits != 0 {
5354		ok := object.Key("ReadCapacityUnits")
5355		ok.Integer(v.ReadCapacityUnits)
5356	}
5357
5358	return nil
5359}
5360
5361func awsRestjson1_serializeDocumentAwsDynamoDbTableReplica(v *types.AwsDynamoDbTableReplica, value smithyjson.Value) error {
5362	object := value.Object()
5363	defer object.Close()
5364
5365	if v.GlobalSecondaryIndexes != nil {
5366		ok := object.Key("GlobalSecondaryIndexes")
5367		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v.GlobalSecondaryIndexes, ok); err != nil {
5368			return err
5369		}
5370	}
5371
5372	if v.KmsMasterKeyId != nil {
5373		ok := object.Key("KmsMasterKeyId")
5374		ok.String(*v.KmsMasterKeyId)
5375	}
5376
5377	if v.ProvisionedThroughputOverride != nil {
5378		ok := object.Key("ProvisionedThroughputOverride")
5379		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v.ProvisionedThroughputOverride, ok); err != nil {
5380			return err
5381		}
5382	}
5383
5384	if v.RegionName != nil {
5385		ok := object.Key("RegionName")
5386		ok.String(*v.RegionName)
5387	}
5388
5389	if v.ReplicaStatus != nil {
5390		ok := object.Key("ReplicaStatus")
5391		ok.String(*v.ReplicaStatus)
5392	}
5393
5394	if v.ReplicaStatusDescription != nil {
5395		ok := object.Key("ReplicaStatusDescription")
5396		ok.String(*v.ReplicaStatusDescription)
5397	}
5398
5399	return nil
5400}
5401
5402func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(v *types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value smithyjson.Value) error {
5403	object := value.Object()
5404	defer object.Close()
5405
5406	if v.IndexName != nil {
5407		ok := object.Key("IndexName")
5408		ok.String(*v.IndexName)
5409	}
5410
5411	if v.ProvisionedThroughputOverride != nil {
5412		ok := object.Key("ProvisionedThroughputOverride")
5413		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v.ProvisionedThroughputOverride, ok); err != nil {
5414			return err
5415		}
5416	}
5417
5418	return nil
5419}
5420
5421func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value smithyjson.Value) error {
5422	array := value.Array()
5423	defer array.Close()
5424
5425	for i := range v {
5426		av := array.Value()
5427		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(&v[i], av); err != nil {
5428			return err
5429		}
5430	}
5431	return nil
5432}
5433
5434func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaList(v []types.AwsDynamoDbTableReplica, value smithyjson.Value) error {
5435	array := value.Array()
5436	defer array.Close()
5437
5438	for i := range v {
5439		av := array.Value()
5440		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplica(&v[i], av); err != nil {
5441			return err
5442		}
5443	}
5444	return nil
5445}
5446
5447func awsRestjson1_serializeDocumentAwsDynamoDbTableRestoreSummary(v *types.AwsDynamoDbTableRestoreSummary, value smithyjson.Value) error {
5448	object := value.Object()
5449	defer object.Close()
5450
5451	if v.RestoreDateTime != nil {
5452		ok := object.Key("RestoreDateTime")
5453		ok.String(*v.RestoreDateTime)
5454	}
5455
5456	if v.RestoreInProgress {
5457		ok := object.Key("RestoreInProgress")
5458		ok.Boolean(v.RestoreInProgress)
5459	}
5460
5461	if v.SourceBackupArn != nil {
5462		ok := object.Key("SourceBackupArn")
5463		ok.String(*v.SourceBackupArn)
5464	}
5465
5466	if v.SourceTableArn != nil {
5467		ok := object.Key("SourceTableArn")
5468		ok.String(*v.SourceTableArn)
5469	}
5470
5471	return nil
5472}
5473
5474func awsRestjson1_serializeDocumentAwsDynamoDbTableSseDescription(v *types.AwsDynamoDbTableSseDescription, value smithyjson.Value) error {
5475	object := value.Object()
5476	defer object.Close()
5477
5478	if v.InaccessibleEncryptionDateTime != nil {
5479		ok := object.Key("InaccessibleEncryptionDateTime")
5480		ok.String(*v.InaccessibleEncryptionDateTime)
5481	}
5482
5483	if v.KmsMasterKeyArn != nil {
5484		ok := object.Key("KmsMasterKeyArn")
5485		ok.String(*v.KmsMasterKeyArn)
5486	}
5487
5488	if v.SseType != nil {
5489		ok := object.Key("SseType")
5490		ok.String(*v.SseType)
5491	}
5492
5493	if v.Status != nil {
5494		ok := object.Key("Status")
5495		ok.String(*v.Status)
5496	}
5497
5498	return nil
5499}
5500
5501func awsRestjson1_serializeDocumentAwsDynamoDbTableStreamSpecification(v *types.AwsDynamoDbTableStreamSpecification, value smithyjson.Value) error {
5502	object := value.Object()
5503	defer object.Close()
5504
5505	if v.StreamEnabled {
5506		ok := object.Key("StreamEnabled")
5507		ok.Boolean(v.StreamEnabled)
5508	}
5509
5510	if v.StreamViewType != nil {
5511		ok := object.Key("StreamViewType")
5512		ok.String(*v.StreamViewType)
5513	}
5514
5515	return nil
5516}
5517
5518func awsRestjson1_serializeDocumentAwsEc2EipDetails(v *types.AwsEc2EipDetails, value smithyjson.Value) error {
5519	object := value.Object()
5520	defer object.Close()
5521
5522	if v.AllocationId != nil {
5523		ok := object.Key("AllocationId")
5524		ok.String(*v.AllocationId)
5525	}
5526
5527	if v.AssociationId != nil {
5528		ok := object.Key("AssociationId")
5529		ok.String(*v.AssociationId)
5530	}
5531
5532	if v.Domain != nil {
5533		ok := object.Key("Domain")
5534		ok.String(*v.Domain)
5535	}
5536
5537	if v.InstanceId != nil {
5538		ok := object.Key("InstanceId")
5539		ok.String(*v.InstanceId)
5540	}
5541
5542	if v.NetworkBorderGroup != nil {
5543		ok := object.Key("NetworkBorderGroup")
5544		ok.String(*v.NetworkBorderGroup)
5545	}
5546
5547	if v.NetworkInterfaceId != nil {
5548		ok := object.Key("NetworkInterfaceId")
5549		ok.String(*v.NetworkInterfaceId)
5550	}
5551
5552	if v.NetworkInterfaceOwnerId != nil {
5553		ok := object.Key("NetworkInterfaceOwnerId")
5554		ok.String(*v.NetworkInterfaceOwnerId)
5555	}
5556
5557	if v.PrivateIpAddress != nil {
5558		ok := object.Key("PrivateIpAddress")
5559		ok.String(*v.PrivateIpAddress)
5560	}
5561
5562	if v.PublicIp != nil {
5563		ok := object.Key("PublicIp")
5564		ok.String(*v.PublicIp)
5565	}
5566
5567	if v.PublicIpv4Pool != nil {
5568		ok := object.Key("PublicIpv4Pool")
5569		ok.String(*v.PublicIpv4Pool)
5570	}
5571
5572	return nil
5573}
5574
5575func awsRestjson1_serializeDocumentAwsEc2InstanceDetails(v *types.AwsEc2InstanceDetails, value smithyjson.Value) error {
5576	object := value.Object()
5577	defer object.Close()
5578
5579	if v.IamInstanceProfileArn != nil {
5580		ok := object.Key("IamInstanceProfileArn")
5581		ok.String(*v.IamInstanceProfileArn)
5582	}
5583
5584	if v.ImageId != nil {
5585		ok := object.Key("ImageId")
5586		ok.String(*v.ImageId)
5587	}
5588
5589	if v.IpV4Addresses != nil {
5590		ok := object.Key("IpV4Addresses")
5591		if err := awsRestjson1_serializeDocumentStringList(v.IpV4Addresses, ok); err != nil {
5592			return err
5593		}
5594	}
5595
5596	if v.IpV6Addresses != nil {
5597		ok := object.Key("IpV6Addresses")
5598		if err := awsRestjson1_serializeDocumentStringList(v.IpV6Addresses, ok); err != nil {
5599			return err
5600		}
5601	}
5602
5603	if v.KeyName != nil {
5604		ok := object.Key("KeyName")
5605		ok.String(*v.KeyName)
5606	}
5607
5608	if v.LaunchedAt != nil {
5609		ok := object.Key("LaunchedAt")
5610		ok.String(*v.LaunchedAt)
5611	}
5612
5613	if v.SubnetId != nil {
5614		ok := object.Key("SubnetId")
5615		ok.String(*v.SubnetId)
5616	}
5617
5618	if v.Type != nil {
5619		ok := object.Key("Type")
5620		ok.String(*v.Type)
5621	}
5622
5623	if v.VpcId != nil {
5624		ok := object.Key("VpcId")
5625		ok.String(*v.VpcId)
5626	}
5627
5628	return nil
5629}
5630
5631func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceAttachment(v *types.AwsEc2NetworkInterfaceAttachment, value smithyjson.Value) error {
5632	object := value.Object()
5633	defer object.Close()
5634
5635	if v.AttachmentId != nil {
5636		ok := object.Key("AttachmentId")
5637		ok.String(*v.AttachmentId)
5638	}
5639
5640	if v.AttachTime != nil {
5641		ok := object.Key("AttachTime")
5642		ok.String(*v.AttachTime)
5643	}
5644
5645	if v.DeleteOnTermination {
5646		ok := object.Key("DeleteOnTermination")
5647		ok.Boolean(v.DeleteOnTermination)
5648	}
5649
5650	if v.DeviceIndex != 0 {
5651		ok := object.Key("DeviceIndex")
5652		ok.Integer(v.DeviceIndex)
5653	}
5654
5655	if v.InstanceId != nil {
5656		ok := object.Key("InstanceId")
5657		ok.String(*v.InstanceId)
5658	}
5659
5660	if v.InstanceOwnerId != nil {
5661		ok := object.Key("InstanceOwnerId")
5662		ok.String(*v.InstanceOwnerId)
5663	}
5664
5665	if v.Status != nil {
5666		ok := object.Key("Status")
5667		ok.String(*v.Status)
5668	}
5669
5670	return nil
5671}
5672
5673func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceDetails(v *types.AwsEc2NetworkInterfaceDetails, value smithyjson.Value) error {
5674	object := value.Object()
5675	defer object.Close()
5676
5677	if v.Attachment != nil {
5678		ok := object.Key("Attachment")
5679		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceAttachment(v.Attachment, ok); err != nil {
5680			return err
5681		}
5682	}
5683
5684	if v.NetworkInterfaceId != nil {
5685		ok := object.Key("NetworkInterfaceId")
5686		ok.String(*v.NetworkInterfaceId)
5687	}
5688
5689	if v.SecurityGroups != nil {
5690		ok := object.Key("SecurityGroups")
5691		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v.SecurityGroups, ok); err != nil {
5692			return err
5693		}
5694	}
5695
5696	if v.SourceDestCheck {
5697		ok := object.Key("SourceDestCheck")
5698		ok.Boolean(v.SourceDestCheck)
5699	}
5700
5701	return nil
5702}
5703
5704func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v *types.AwsEc2NetworkInterfaceSecurityGroup, value smithyjson.Value) error {
5705	object := value.Object()
5706	defer object.Close()
5707
5708	if v.GroupId != nil {
5709		ok := object.Key("GroupId")
5710		ok.String(*v.GroupId)
5711	}
5712
5713	if v.GroupName != nil {
5714		ok := object.Key("GroupName")
5715		ok.String(*v.GroupName)
5716	}
5717
5718	return nil
5719}
5720
5721func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v []types.AwsEc2NetworkInterfaceSecurityGroup, value smithyjson.Value) error {
5722	array := value.Array()
5723	defer array.Close()
5724
5725	for i := range v {
5726		av := array.Value()
5727		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroup(&v[i], av); err != nil {
5728			return err
5729		}
5730	}
5731	return nil
5732}
5733
5734func awsRestjson1_serializeDocumentAwsEc2SecurityGroupDetails(v *types.AwsEc2SecurityGroupDetails, value smithyjson.Value) error {
5735	object := value.Object()
5736	defer object.Close()
5737
5738	if v.GroupId != nil {
5739		ok := object.Key("GroupId")
5740		ok.String(*v.GroupId)
5741	}
5742
5743	if v.GroupName != nil {
5744		ok := object.Key("GroupName")
5745		ok.String(*v.GroupName)
5746	}
5747
5748	if v.IpPermissions != nil {
5749		ok := object.Key("IpPermissions")
5750		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v.IpPermissions, ok); err != nil {
5751			return err
5752		}
5753	}
5754
5755	if v.IpPermissionsEgress != nil {
5756		ok := object.Key("IpPermissionsEgress")
5757		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v.IpPermissionsEgress, ok); err != nil {
5758			return err
5759		}
5760	}
5761
5762	if v.OwnerId != nil {
5763		ok := object.Key("OwnerId")
5764		ok.String(*v.OwnerId)
5765	}
5766
5767	if v.VpcId != nil {
5768		ok := object.Key("VpcId")
5769		ok.String(*v.VpcId)
5770	}
5771
5772	return nil
5773}
5774
5775func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermission(v *types.AwsEc2SecurityGroupIpPermission, value smithyjson.Value) error {
5776	object := value.Object()
5777	defer object.Close()
5778
5779	if v.FromPort != 0 {
5780		ok := object.Key("FromPort")
5781		ok.Integer(v.FromPort)
5782	}
5783
5784	if v.IpProtocol != nil {
5785		ok := object.Key("IpProtocol")
5786		ok.String(*v.IpProtocol)
5787	}
5788
5789	if v.IpRanges != nil {
5790		ok := object.Key("IpRanges")
5791		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRangeList(v.IpRanges, ok); err != nil {
5792			return err
5793		}
5794	}
5795
5796	if v.Ipv6Ranges != nil {
5797		ok := object.Key("Ipv6Ranges")
5798		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6RangeList(v.Ipv6Ranges, ok); err != nil {
5799			return err
5800		}
5801	}
5802
5803	if v.PrefixListIds != nil {
5804		ok := object.Key("PrefixListIds")
5805		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListIdList(v.PrefixListIds, ok); err != nil {
5806			return err
5807		}
5808	}
5809
5810	if v.ToPort != 0 {
5811		ok := object.Key("ToPort")
5812		ok.Integer(v.ToPort)
5813	}
5814
5815	if v.UserIdGroupPairs != nil {
5816		ok := object.Key("UserIdGroupPairs")
5817		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v.UserIdGroupPairs, ok); err != nil {
5818			return err
5819		}
5820	}
5821
5822	return nil
5823}
5824
5825func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v []types.AwsEc2SecurityGroupIpPermission, value smithyjson.Value) error {
5826	array := value.Array()
5827	defer array.Close()
5828
5829	for i := range v {
5830		av := array.Value()
5831		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermission(&v[i], av); err != nil {
5832			return err
5833		}
5834	}
5835	return nil
5836}
5837
5838func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRange(v *types.AwsEc2SecurityGroupIpRange, value smithyjson.Value) error {
5839	object := value.Object()
5840	defer object.Close()
5841
5842	if v.CidrIp != nil {
5843		ok := object.Key("CidrIp")
5844		ok.String(*v.CidrIp)
5845	}
5846
5847	return nil
5848}
5849
5850func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRangeList(v []types.AwsEc2SecurityGroupIpRange, value smithyjson.Value) error {
5851	array := value.Array()
5852	defer array.Close()
5853
5854	for i := range v {
5855		av := array.Value()
5856		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRange(&v[i], av); err != nil {
5857			return err
5858		}
5859	}
5860	return nil
5861}
5862
5863func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6Range(v *types.AwsEc2SecurityGroupIpv6Range, value smithyjson.Value) error {
5864	object := value.Object()
5865	defer object.Close()
5866
5867	if v.CidrIpv6 != nil {
5868		ok := object.Key("CidrIpv6")
5869		ok.String(*v.CidrIpv6)
5870	}
5871
5872	return nil
5873}
5874
5875func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6RangeList(v []types.AwsEc2SecurityGroupIpv6Range, value smithyjson.Value) error {
5876	array := value.Array()
5877	defer array.Close()
5878
5879	for i := range v {
5880		av := array.Value()
5881		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6Range(&v[i], av); err != nil {
5882			return err
5883		}
5884	}
5885	return nil
5886}
5887
5888func awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListId(v *types.AwsEc2SecurityGroupPrefixListId, value smithyjson.Value) error {
5889	object := value.Object()
5890	defer object.Close()
5891
5892	if v.PrefixListId != nil {
5893		ok := object.Key("PrefixListId")
5894		ok.String(*v.PrefixListId)
5895	}
5896
5897	return nil
5898}
5899
5900func awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListIdList(v []types.AwsEc2SecurityGroupPrefixListId, value smithyjson.Value) error {
5901	array := value.Array()
5902	defer array.Close()
5903
5904	for i := range v {
5905		av := array.Value()
5906		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListId(&v[i], av); err != nil {
5907			return err
5908		}
5909	}
5910	return nil
5911}
5912
5913func awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v *types.AwsEc2SecurityGroupUserIdGroupPair, value smithyjson.Value) error {
5914	object := value.Object()
5915	defer object.Close()
5916
5917	if v.GroupId != nil {
5918		ok := object.Key("GroupId")
5919		ok.String(*v.GroupId)
5920	}
5921
5922	if v.GroupName != nil {
5923		ok := object.Key("GroupName")
5924		ok.String(*v.GroupName)
5925	}
5926
5927	if v.PeeringStatus != nil {
5928		ok := object.Key("PeeringStatus")
5929		ok.String(*v.PeeringStatus)
5930	}
5931
5932	if v.UserId != nil {
5933		ok := object.Key("UserId")
5934		ok.String(*v.UserId)
5935	}
5936
5937	if v.VpcId != nil {
5938		ok := object.Key("VpcId")
5939		ok.String(*v.VpcId)
5940	}
5941
5942	if v.VpcPeeringConnectionId != nil {
5943		ok := object.Key("VpcPeeringConnectionId")
5944		ok.String(*v.VpcPeeringConnectionId)
5945	}
5946
5947	return nil
5948}
5949
5950func awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v []types.AwsEc2SecurityGroupUserIdGroupPair, value smithyjson.Value) error {
5951	array := value.Array()
5952	defer array.Close()
5953
5954	for i := range v {
5955		av := array.Value()
5956		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPair(&v[i], av); err != nil {
5957			return err
5958		}
5959	}
5960	return nil
5961}
5962
5963func awsRestjson1_serializeDocumentAwsEc2VolumeAttachment(v *types.AwsEc2VolumeAttachment, value smithyjson.Value) error {
5964	object := value.Object()
5965	defer object.Close()
5966
5967	if v.AttachTime != nil {
5968		ok := object.Key("AttachTime")
5969		ok.String(*v.AttachTime)
5970	}
5971
5972	if v.DeleteOnTermination {
5973		ok := object.Key("DeleteOnTermination")
5974		ok.Boolean(v.DeleteOnTermination)
5975	}
5976
5977	if v.InstanceId != nil {
5978		ok := object.Key("InstanceId")
5979		ok.String(*v.InstanceId)
5980	}
5981
5982	if v.Status != nil {
5983		ok := object.Key("Status")
5984		ok.String(*v.Status)
5985	}
5986
5987	return nil
5988}
5989
5990func awsRestjson1_serializeDocumentAwsEc2VolumeAttachmentList(v []types.AwsEc2VolumeAttachment, value smithyjson.Value) error {
5991	array := value.Array()
5992	defer array.Close()
5993
5994	for i := range v {
5995		av := array.Value()
5996		if err := awsRestjson1_serializeDocumentAwsEc2VolumeAttachment(&v[i], av); err != nil {
5997			return err
5998		}
5999	}
6000	return nil
6001}
6002
6003func awsRestjson1_serializeDocumentAwsEc2VolumeDetails(v *types.AwsEc2VolumeDetails, value smithyjson.Value) error {
6004	object := value.Object()
6005	defer object.Close()
6006
6007	if v.Attachments != nil {
6008		ok := object.Key("Attachments")
6009		if err := awsRestjson1_serializeDocumentAwsEc2VolumeAttachmentList(v.Attachments, ok); err != nil {
6010			return err
6011		}
6012	}
6013
6014	if v.CreateTime != nil {
6015		ok := object.Key("CreateTime")
6016		ok.String(*v.CreateTime)
6017	}
6018
6019	if v.Encrypted {
6020		ok := object.Key("Encrypted")
6021		ok.Boolean(v.Encrypted)
6022	}
6023
6024	if v.KmsKeyId != nil {
6025		ok := object.Key("KmsKeyId")
6026		ok.String(*v.KmsKeyId)
6027	}
6028
6029	if v.Size != 0 {
6030		ok := object.Key("Size")
6031		ok.Integer(v.Size)
6032	}
6033
6034	if v.SnapshotId != nil {
6035		ok := object.Key("SnapshotId")
6036		ok.String(*v.SnapshotId)
6037	}
6038
6039	if v.Status != nil {
6040		ok := object.Key("Status")
6041		ok.String(*v.Status)
6042	}
6043
6044	return nil
6045}
6046
6047func awsRestjson1_serializeDocumentAwsEc2VpcDetails(v *types.AwsEc2VpcDetails, value smithyjson.Value) error {
6048	object := value.Object()
6049	defer object.Close()
6050
6051	if v.CidrBlockAssociationSet != nil {
6052		ok := object.Key("CidrBlockAssociationSet")
6053		if err := awsRestjson1_serializeDocumentCidrBlockAssociationList(v.CidrBlockAssociationSet, ok); err != nil {
6054			return err
6055		}
6056	}
6057
6058	if v.DhcpOptionsId != nil {
6059		ok := object.Key("DhcpOptionsId")
6060		ok.String(*v.DhcpOptionsId)
6061	}
6062
6063	if v.Ipv6CidrBlockAssociationSet != nil {
6064		ok := object.Key("Ipv6CidrBlockAssociationSet")
6065		if err := awsRestjson1_serializeDocumentIpv6CidrBlockAssociationList(v.Ipv6CidrBlockAssociationSet, ok); err != nil {
6066			return err
6067		}
6068	}
6069
6070	if v.State != nil {
6071		ok := object.Key("State")
6072		ok.String(*v.State)
6073	}
6074
6075	return nil
6076}
6077
6078func awsRestjson1_serializeDocumentAwsElasticsearchDomainDetails(v *types.AwsElasticsearchDomainDetails, value smithyjson.Value) error {
6079	object := value.Object()
6080	defer object.Close()
6081
6082	if v.AccessPolicies != nil {
6083		ok := object.Key("AccessPolicies")
6084		ok.String(*v.AccessPolicies)
6085	}
6086
6087	if v.DomainEndpointOptions != nil {
6088		ok := object.Key("DomainEndpointOptions")
6089		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v.DomainEndpointOptions, ok); err != nil {
6090			return err
6091		}
6092	}
6093
6094	if v.DomainId != nil {
6095		ok := object.Key("DomainId")
6096		ok.String(*v.DomainId)
6097	}
6098
6099	if v.DomainName != nil {
6100		ok := object.Key("DomainName")
6101		ok.String(*v.DomainName)
6102	}
6103
6104	if v.ElasticsearchVersion != nil {
6105		ok := object.Key("ElasticsearchVersion")
6106		ok.String(*v.ElasticsearchVersion)
6107	}
6108
6109	if v.EncryptionAtRestOptions != nil {
6110		ok := object.Key("EncryptionAtRestOptions")
6111		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v.EncryptionAtRestOptions, ok); err != nil {
6112			return err
6113		}
6114	}
6115
6116	if v.Endpoint != nil {
6117		ok := object.Key("Endpoint")
6118		ok.String(*v.Endpoint)
6119	}
6120
6121	if v.Endpoints != nil {
6122		ok := object.Key("Endpoints")
6123		if err := awsRestjson1_serializeDocumentFieldMap(v.Endpoints, ok); err != nil {
6124			return err
6125		}
6126	}
6127
6128	if v.NodeToNodeEncryptionOptions != nil {
6129		ok := object.Key("NodeToNodeEncryptionOptions")
6130		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v.NodeToNodeEncryptionOptions, ok); err != nil {
6131			return err
6132		}
6133	}
6134
6135	if v.VPCOptions != nil {
6136		ok := object.Key("VPCOptions")
6137		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainVPCOptions(v.VPCOptions, ok); err != nil {
6138			return err
6139		}
6140	}
6141
6142	return nil
6143}
6144
6145func awsRestjson1_serializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v *types.AwsElasticsearchDomainDomainEndpointOptions, value smithyjson.Value) error {
6146	object := value.Object()
6147	defer object.Close()
6148
6149	if v.EnforceHTTPS {
6150		ok := object.Key("EnforceHTTPS")
6151		ok.Boolean(v.EnforceHTTPS)
6152	}
6153
6154	if v.TLSSecurityPolicy != nil {
6155		ok := object.Key("TLSSecurityPolicy")
6156		ok.String(*v.TLSSecurityPolicy)
6157	}
6158
6159	return nil
6160}
6161
6162func awsRestjson1_serializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v *types.AwsElasticsearchDomainEncryptionAtRestOptions, value smithyjson.Value) error {
6163	object := value.Object()
6164	defer object.Close()
6165
6166	if v.Enabled {
6167		ok := object.Key("Enabled")
6168		ok.Boolean(v.Enabled)
6169	}
6170
6171	if v.KmsKeyId != nil {
6172		ok := object.Key("KmsKeyId")
6173		ok.String(*v.KmsKeyId)
6174	}
6175
6176	return nil
6177}
6178
6179func awsRestjson1_serializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value smithyjson.Value) error {
6180	object := value.Object()
6181	defer object.Close()
6182
6183	if v.Enabled {
6184		ok := object.Key("Enabled")
6185		ok.Boolean(v.Enabled)
6186	}
6187
6188	return nil
6189}
6190
6191func awsRestjson1_serializeDocumentAwsElasticsearchDomainVPCOptions(v *types.AwsElasticsearchDomainVPCOptions, value smithyjson.Value) error {
6192	object := value.Object()
6193	defer object.Close()
6194
6195	if v.AvailabilityZones != nil {
6196		ok := object.Key("AvailabilityZones")
6197		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AvailabilityZones, ok); err != nil {
6198			return err
6199		}
6200	}
6201
6202	if v.SecurityGroupIds != nil {
6203		ok := object.Key("SecurityGroupIds")
6204		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
6205			return err
6206		}
6207	}
6208
6209	if v.SubnetIds != nil {
6210		ok := object.Key("SubnetIds")
6211		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil {
6212			return err
6213		}
6214	}
6215
6216	if v.VPCId != nil {
6217		ok := object.Key("VPCId")
6218		ok.String(*v.VPCId)
6219	}
6220
6221	return nil
6222}
6223
6224func awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicies(v []types.AwsElbAppCookieStickinessPolicy, value smithyjson.Value) error {
6225	array := value.Array()
6226	defer array.Close()
6227
6228	for i := range v {
6229		av := array.Value()
6230		if err := awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicy(&v[i], av); err != nil {
6231			return err
6232		}
6233	}
6234	return nil
6235}
6236
6237func awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicy(v *types.AwsElbAppCookieStickinessPolicy, value smithyjson.Value) error {
6238	object := value.Object()
6239	defer object.Close()
6240
6241	if v.CookieName != nil {
6242		ok := object.Key("CookieName")
6243		ok.String(*v.CookieName)
6244	}
6245
6246	if v.PolicyName != nil {
6247		ok := object.Key("PolicyName")
6248		ok.String(*v.PolicyName)
6249	}
6250
6251	return nil
6252}
6253
6254func awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicies(v []types.AwsElbLbCookieStickinessPolicy, value smithyjson.Value) error {
6255	array := value.Array()
6256	defer array.Close()
6257
6258	for i := range v {
6259		av := array.Value()
6260		if err := awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicy(&v[i], av); err != nil {
6261			return err
6262		}
6263	}
6264	return nil
6265}
6266
6267func awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicy(v *types.AwsElbLbCookieStickinessPolicy, value smithyjson.Value) error {
6268	object := value.Object()
6269	defer object.Close()
6270
6271	if v.CookieExpirationPeriod != 0 {
6272		ok := object.Key("CookieExpirationPeriod")
6273		ok.Long(v.CookieExpirationPeriod)
6274	}
6275
6276	if v.PolicyName != nil {
6277		ok := object.Key("PolicyName")
6278		ok.String(*v.PolicyName)
6279	}
6280
6281	return nil
6282}
6283
6284func awsRestjson1_serializeDocumentAwsElbLoadBalancerAccessLog(v *types.AwsElbLoadBalancerAccessLog, value smithyjson.Value) error {
6285	object := value.Object()
6286	defer object.Close()
6287
6288	if v.EmitInterval != 0 {
6289		ok := object.Key("EmitInterval")
6290		ok.Integer(v.EmitInterval)
6291	}
6292
6293	if v.Enabled {
6294		ok := object.Key("Enabled")
6295		ok.Boolean(v.Enabled)
6296	}
6297
6298	if v.S3BucketName != nil {
6299		ok := object.Key("S3BucketName")
6300		ok.String(*v.S3BucketName)
6301	}
6302
6303	if v.S3BucketPrefix != nil {
6304		ok := object.Key("S3BucketPrefix")
6305		ok.String(*v.S3BucketPrefix)
6306	}
6307
6308	return nil
6309}
6310
6311func awsRestjson1_serializeDocumentAwsElbLoadBalancerAttributes(v *types.AwsElbLoadBalancerAttributes, value smithyjson.Value) error {
6312	object := value.Object()
6313	defer object.Close()
6314
6315	if v.AccessLog != nil {
6316		ok := object.Key("AccessLog")
6317		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerAccessLog(v.AccessLog, ok); err != nil {
6318			return err
6319		}
6320	}
6321
6322	if v.ConnectionDraining != nil {
6323		ok := object.Key("ConnectionDraining")
6324		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionDraining(v.ConnectionDraining, ok); err != nil {
6325			return err
6326		}
6327	}
6328
6329	if v.ConnectionSettings != nil {
6330		ok := object.Key("ConnectionSettings")
6331		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionSettings(v.ConnectionSettings, ok); err != nil {
6332			return err
6333		}
6334	}
6335
6336	if v.CrossZoneLoadBalancing != nil {
6337		ok := object.Key("CrossZoneLoadBalancing")
6338		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v.CrossZoneLoadBalancing, ok); err != nil {
6339			return err
6340		}
6341	}
6342
6343	return nil
6344}
6345
6346func awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescription(v *types.AwsElbLoadBalancerBackendServerDescription, value smithyjson.Value) error {
6347	object := value.Object()
6348	defer object.Close()
6349
6350	if v.InstancePort != 0 {
6351		ok := object.Key("InstancePort")
6352		ok.Integer(v.InstancePort)
6353	}
6354
6355	if v.PolicyNames != nil {
6356		ok := object.Key("PolicyNames")
6357		if err := awsRestjson1_serializeDocumentStringList(v.PolicyNames, ok); err != nil {
6358			return err
6359		}
6360	}
6361
6362	return nil
6363}
6364
6365func awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v []types.AwsElbLoadBalancerBackendServerDescription, value smithyjson.Value) error {
6366	array := value.Array()
6367	defer array.Close()
6368
6369	for i := range v {
6370		av := array.Value()
6371		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescription(&v[i], av); err != nil {
6372			return err
6373		}
6374	}
6375	return nil
6376}
6377
6378func awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionDraining(v *types.AwsElbLoadBalancerConnectionDraining, value smithyjson.Value) error {
6379	object := value.Object()
6380	defer object.Close()
6381
6382	if v.Enabled {
6383		ok := object.Key("Enabled")
6384		ok.Boolean(v.Enabled)
6385	}
6386
6387	if v.Timeout != 0 {
6388		ok := object.Key("Timeout")
6389		ok.Integer(v.Timeout)
6390	}
6391
6392	return nil
6393}
6394
6395func awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionSettings(v *types.AwsElbLoadBalancerConnectionSettings, value smithyjson.Value) error {
6396	object := value.Object()
6397	defer object.Close()
6398
6399	if v.IdleTimeout != 0 {
6400		ok := object.Key("IdleTimeout")
6401		ok.Integer(v.IdleTimeout)
6402	}
6403
6404	return nil
6405}
6406
6407func awsRestjson1_serializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v *types.AwsElbLoadBalancerCrossZoneLoadBalancing, value smithyjson.Value) error {
6408	object := value.Object()
6409	defer object.Close()
6410
6411	if v.Enabled {
6412		ok := object.Key("Enabled")
6413		ok.Boolean(v.Enabled)
6414	}
6415
6416	return nil
6417}
6418
6419func awsRestjson1_serializeDocumentAwsElbLoadBalancerDetails(v *types.AwsElbLoadBalancerDetails, value smithyjson.Value) error {
6420	object := value.Object()
6421	defer object.Close()
6422
6423	if v.AvailabilityZones != nil {
6424		ok := object.Key("AvailabilityZones")
6425		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
6426			return err
6427		}
6428	}
6429
6430	if v.BackendServerDescriptions != nil {
6431		ok := object.Key("BackendServerDescriptions")
6432		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v.BackendServerDescriptions, ok); err != nil {
6433			return err
6434		}
6435	}
6436
6437	if v.CanonicalHostedZoneName != nil {
6438		ok := object.Key("CanonicalHostedZoneName")
6439		ok.String(*v.CanonicalHostedZoneName)
6440	}
6441
6442	if v.CanonicalHostedZoneNameID != nil {
6443		ok := object.Key("CanonicalHostedZoneNameID")
6444		ok.String(*v.CanonicalHostedZoneNameID)
6445	}
6446
6447	if v.CreatedTime != nil {
6448		ok := object.Key("CreatedTime")
6449		ok.String(*v.CreatedTime)
6450	}
6451
6452	if v.DnsName != nil {
6453		ok := object.Key("DnsName")
6454		ok.String(*v.DnsName)
6455	}
6456
6457	if v.HealthCheck != nil {
6458		ok := object.Key("HealthCheck")
6459		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerHealthCheck(v.HealthCheck, ok); err != nil {
6460			return err
6461		}
6462	}
6463
6464	if v.Instances != nil {
6465		ok := object.Key("Instances")
6466		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerInstances(v.Instances, ok); err != nil {
6467			return err
6468		}
6469	}
6470
6471	if v.ListenerDescriptions != nil {
6472		ok := object.Key("ListenerDescriptions")
6473		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescriptions(v.ListenerDescriptions, ok); err != nil {
6474			return err
6475		}
6476	}
6477
6478	if v.LoadBalancerAttributes != nil {
6479		ok := object.Key("LoadBalancerAttributes")
6480		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerAttributes(v.LoadBalancerAttributes, ok); err != nil {
6481			return err
6482		}
6483	}
6484
6485	if v.LoadBalancerName != nil {
6486		ok := object.Key("LoadBalancerName")
6487		ok.String(*v.LoadBalancerName)
6488	}
6489
6490	if v.Policies != nil {
6491		ok := object.Key("Policies")
6492		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerPolicies(v.Policies, ok); err != nil {
6493			return err
6494		}
6495	}
6496
6497	if v.Scheme != nil {
6498		ok := object.Key("Scheme")
6499		ok.String(*v.Scheme)
6500	}
6501
6502	if v.SecurityGroups != nil {
6503		ok := object.Key("SecurityGroups")
6504		if err := awsRestjson1_serializeDocumentStringList(v.SecurityGroups, ok); err != nil {
6505			return err
6506		}
6507	}
6508
6509	if v.SourceSecurityGroup != nil {
6510		ok := object.Key("SourceSecurityGroup")
6511		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v.SourceSecurityGroup, ok); err != nil {
6512			return err
6513		}
6514	}
6515
6516	if v.Subnets != nil {
6517		ok := object.Key("Subnets")
6518		if err := awsRestjson1_serializeDocumentStringList(v.Subnets, ok); err != nil {
6519			return err
6520		}
6521	}
6522
6523	if v.VpcId != nil {
6524		ok := object.Key("VpcId")
6525		ok.String(*v.VpcId)
6526	}
6527
6528	return nil
6529}
6530
6531func awsRestjson1_serializeDocumentAwsElbLoadBalancerHealthCheck(v *types.AwsElbLoadBalancerHealthCheck, value smithyjson.Value) error {
6532	object := value.Object()
6533	defer object.Close()
6534
6535	if v.HealthyThreshold != 0 {
6536		ok := object.Key("HealthyThreshold")
6537		ok.Integer(v.HealthyThreshold)
6538	}
6539
6540	if v.Interval != 0 {
6541		ok := object.Key("Interval")
6542		ok.Integer(v.Interval)
6543	}
6544
6545	if v.Target != nil {
6546		ok := object.Key("Target")
6547		ok.String(*v.Target)
6548	}
6549
6550	if v.Timeout != 0 {
6551		ok := object.Key("Timeout")
6552		ok.Integer(v.Timeout)
6553	}
6554
6555	if v.UnhealthyThreshold != 0 {
6556		ok := object.Key("UnhealthyThreshold")
6557		ok.Integer(v.UnhealthyThreshold)
6558	}
6559
6560	return nil
6561}
6562
6563func awsRestjson1_serializeDocumentAwsElbLoadBalancerInstance(v *types.AwsElbLoadBalancerInstance, value smithyjson.Value) error {
6564	object := value.Object()
6565	defer object.Close()
6566
6567	if v.InstanceId != nil {
6568		ok := object.Key("InstanceId")
6569		ok.String(*v.InstanceId)
6570	}
6571
6572	return nil
6573}
6574
6575func awsRestjson1_serializeDocumentAwsElbLoadBalancerInstances(v []types.AwsElbLoadBalancerInstance, value smithyjson.Value) error {
6576	array := value.Array()
6577	defer array.Close()
6578
6579	for i := range v {
6580		av := array.Value()
6581		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerInstance(&v[i], av); err != nil {
6582			return err
6583		}
6584	}
6585	return nil
6586}
6587
6588func awsRestjson1_serializeDocumentAwsElbLoadBalancerListener(v *types.AwsElbLoadBalancerListener, value smithyjson.Value) error {
6589	object := value.Object()
6590	defer object.Close()
6591
6592	if v.InstancePort != 0 {
6593		ok := object.Key("InstancePort")
6594		ok.Integer(v.InstancePort)
6595	}
6596
6597	if v.InstanceProtocol != nil {
6598		ok := object.Key("InstanceProtocol")
6599		ok.String(*v.InstanceProtocol)
6600	}
6601
6602	if v.LoadBalancerPort != 0 {
6603		ok := object.Key("LoadBalancerPort")
6604		ok.Integer(v.LoadBalancerPort)
6605	}
6606
6607	if v.Protocol != nil {
6608		ok := object.Key("Protocol")
6609		ok.String(*v.Protocol)
6610	}
6611
6612	if v.SslCertificateId != nil {
6613		ok := object.Key("SslCertificateId")
6614		ok.String(*v.SslCertificateId)
6615	}
6616
6617	return nil
6618}
6619
6620func awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescription(v *types.AwsElbLoadBalancerListenerDescription, value smithyjson.Value) error {
6621	object := value.Object()
6622	defer object.Close()
6623
6624	if v.Listener != nil {
6625		ok := object.Key("Listener")
6626		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListener(v.Listener, ok); err != nil {
6627			return err
6628		}
6629	}
6630
6631	if v.PolicyNames != nil {
6632		ok := object.Key("PolicyNames")
6633		if err := awsRestjson1_serializeDocumentStringList(v.PolicyNames, ok); err != nil {
6634			return err
6635		}
6636	}
6637
6638	return nil
6639}
6640
6641func awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescriptions(v []types.AwsElbLoadBalancerListenerDescription, value smithyjson.Value) error {
6642	array := value.Array()
6643	defer array.Close()
6644
6645	for i := range v {
6646		av := array.Value()
6647		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescription(&v[i], av); err != nil {
6648			return err
6649		}
6650	}
6651	return nil
6652}
6653
6654func awsRestjson1_serializeDocumentAwsElbLoadBalancerPolicies(v *types.AwsElbLoadBalancerPolicies, value smithyjson.Value) error {
6655	object := value.Object()
6656	defer object.Close()
6657
6658	if v.AppCookieStickinessPolicies != nil {
6659		ok := object.Key("AppCookieStickinessPolicies")
6660		if err := awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicies(v.AppCookieStickinessPolicies, ok); err != nil {
6661			return err
6662		}
6663	}
6664
6665	if v.LbCookieStickinessPolicies != nil {
6666		ok := object.Key("LbCookieStickinessPolicies")
6667		if err := awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicies(v.LbCookieStickinessPolicies, ok); err != nil {
6668			return err
6669		}
6670	}
6671
6672	if v.OtherPolicies != nil {
6673		ok := object.Key("OtherPolicies")
6674		if err := awsRestjson1_serializeDocumentStringList(v.OtherPolicies, ok); err != nil {
6675			return err
6676		}
6677	}
6678
6679	return nil
6680}
6681
6682func awsRestjson1_serializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v *types.AwsElbLoadBalancerSourceSecurityGroup, value smithyjson.Value) error {
6683	object := value.Object()
6684	defer object.Close()
6685
6686	if v.GroupName != nil {
6687		ok := object.Key("GroupName")
6688		ok.String(*v.GroupName)
6689	}
6690
6691	if v.OwnerAlias != nil {
6692		ok := object.Key("OwnerAlias")
6693		ok.String(*v.OwnerAlias)
6694	}
6695
6696	return nil
6697}
6698
6699func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v *types.AwsElbv2LoadBalancerDetails, value smithyjson.Value) error {
6700	object := value.Object()
6701	defer object.Close()
6702
6703	if v.AvailabilityZones != nil {
6704		ok := object.Key("AvailabilityZones")
6705		if err := awsRestjson1_serializeDocumentAvailabilityZones(v.AvailabilityZones, ok); err != nil {
6706			return err
6707		}
6708	}
6709
6710	if v.CanonicalHostedZoneId != nil {
6711		ok := object.Key("CanonicalHostedZoneId")
6712		ok.String(*v.CanonicalHostedZoneId)
6713	}
6714
6715	if v.CreatedTime != nil {
6716		ok := object.Key("CreatedTime")
6717		ok.String(*v.CreatedTime)
6718	}
6719
6720	if v.DNSName != nil {
6721		ok := object.Key("DNSName")
6722		ok.String(*v.DNSName)
6723	}
6724
6725	if v.IpAddressType != nil {
6726		ok := object.Key("IpAddressType")
6727		ok.String(*v.IpAddressType)
6728	}
6729
6730	if v.Scheme != nil {
6731		ok := object.Key("Scheme")
6732		ok.String(*v.Scheme)
6733	}
6734
6735	if v.SecurityGroups != nil {
6736		ok := object.Key("SecurityGroups")
6737		if err := awsRestjson1_serializeDocumentSecurityGroups(v.SecurityGroups, ok); err != nil {
6738			return err
6739		}
6740	}
6741
6742	if v.State != nil {
6743		ok := object.Key("State")
6744		if err := awsRestjson1_serializeDocumentLoadBalancerState(v.State, ok); err != nil {
6745			return err
6746		}
6747	}
6748
6749	if v.Type != nil {
6750		ok := object.Key("Type")
6751		ok.String(*v.Type)
6752	}
6753
6754	if v.VpcId != nil {
6755		ok := object.Key("VpcId")
6756		ok.String(*v.VpcId)
6757	}
6758
6759	return nil
6760}
6761
6762func awsRestjson1_serializeDocumentAwsIamAccessKeyDetails(v *types.AwsIamAccessKeyDetails, value smithyjson.Value) error {
6763	object := value.Object()
6764	defer object.Close()
6765
6766	if v.AccessKeyId != nil {
6767		ok := object.Key("AccessKeyId")
6768		ok.String(*v.AccessKeyId)
6769	}
6770
6771	if v.AccountId != nil {
6772		ok := object.Key("AccountId")
6773		ok.String(*v.AccountId)
6774	}
6775
6776	if v.CreatedAt != nil {
6777		ok := object.Key("CreatedAt")
6778		ok.String(*v.CreatedAt)
6779	}
6780
6781	if v.PrincipalId != nil {
6782		ok := object.Key("PrincipalId")
6783		ok.String(*v.PrincipalId)
6784	}
6785
6786	if v.PrincipalName != nil {
6787		ok := object.Key("PrincipalName")
6788		ok.String(*v.PrincipalName)
6789	}
6790
6791	if v.PrincipalType != nil {
6792		ok := object.Key("PrincipalType")
6793		ok.String(*v.PrincipalType)
6794	}
6795
6796	if v.SessionContext != nil {
6797		ok := object.Key("SessionContext")
6798		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContext(v.SessionContext, ok); err != nil {
6799			return err
6800		}
6801	}
6802
6803	if len(v.Status) > 0 {
6804		ok := object.Key("Status")
6805		ok.String(string(v.Status))
6806	}
6807
6808	if v.UserName != nil {
6809		ok := object.Key("UserName")
6810		ok.String(*v.UserName)
6811	}
6812
6813	return nil
6814}
6815
6816func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContext(v *types.AwsIamAccessKeySessionContext, value smithyjson.Value) error {
6817	object := value.Object()
6818	defer object.Close()
6819
6820	if v.Attributes != nil {
6821		ok := object.Key("Attributes")
6822		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextAttributes(v.Attributes, ok); err != nil {
6823			return err
6824		}
6825	}
6826
6827	if v.SessionIssuer != nil {
6828		ok := object.Key("SessionIssuer")
6829		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v.SessionIssuer, ok); err != nil {
6830			return err
6831		}
6832	}
6833
6834	return nil
6835}
6836
6837func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextAttributes(v *types.AwsIamAccessKeySessionContextAttributes, value smithyjson.Value) error {
6838	object := value.Object()
6839	defer object.Close()
6840
6841	if v.CreationDate != nil {
6842		ok := object.Key("CreationDate")
6843		ok.String(*v.CreationDate)
6844	}
6845
6846	if v.MfaAuthenticated {
6847		ok := object.Key("MfaAuthenticated")
6848		ok.Boolean(v.MfaAuthenticated)
6849	}
6850
6851	return nil
6852}
6853
6854func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v *types.AwsIamAccessKeySessionContextSessionIssuer, value smithyjson.Value) error {
6855	object := value.Object()
6856	defer object.Close()
6857
6858	if v.AccountId != nil {
6859		ok := object.Key("AccountId")
6860		ok.String(*v.AccountId)
6861	}
6862
6863	if v.Arn != nil {
6864		ok := object.Key("Arn")
6865		ok.String(*v.Arn)
6866	}
6867
6868	if v.PrincipalId != nil {
6869		ok := object.Key("PrincipalId")
6870		ok.String(*v.PrincipalId)
6871	}
6872
6873	if v.Type != nil {
6874		ok := object.Key("Type")
6875		ok.String(*v.Type)
6876	}
6877
6878	if v.UserName != nil {
6879		ok := object.Key("UserName")
6880		ok.String(*v.UserName)
6881	}
6882
6883	return nil
6884}
6885
6886func awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicy(v *types.AwsIamAttachedManagedPolicy, value smithyjson.Value) error {
6887	object := value.Object()
6888	defer object.Close()
6889
6890	if v.PolicyArn != nil {
6891		ok := object.Key("PolicyArn")
6892		ok.String(*v.PolicyArn)
6893	}
6894
6895	if v.PolicyName != nil {
6896		ok := object.Key("PolicyName")
6897		ok.String(*v.PolicyName)
6898	}
6899
6900	return nil
6901}
6902
6903func awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v []types.AwsIamAttachedManagedPolicy, value smithyjson.Value) error {
6904	array := value.Array()
6905	defer array.Close()
6906
6907	for i := range v {
6908		av := array.Value()
6909		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicy(&v[i], av); err != nil {
6910			return err
6911		}
6912	}
6913	return nil
6914}
6915
6916func awsRestjson1_serializeDocumentAwsIamGroupDetails(v *types.AwsIamGroupDetails, value smithyjson.Value) error {
6917	object := value.Object()
6918	defer object.Close()
6919
6920	if v.AttachedManagedPolicies != nil {
6921		ok := object.Key("AttachedManagedPolicies")
6922		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
6923			return err
6924		}
6925	}
6926
6927	if v.CreateDate != nil {
6928		ok := object.Key("CreateDate")
6929		ok.String(*v.CreateDate)
6930	}
6931
6932	if v.GroupId != nil {
6933		ok := object.Key("GroupId")
6934		ok.String(*v.GroupId)
6935	}
6936
6937	if v.GroupName != nil {
6938		ok := object.Key("GroupName")
6939		ok.String(*v.GroupName)
6940	}
6941
6942	if v.GroupPolicyList != nil {
6943		ok := object.Key("GroupPolicyList")
6944		if err := awsRestjson1_serializeDocumentAwsIamGroupPolicyList(v.GroupPolicyList, ok); err != nil {
6945			return err
6946		}
6947	}
6948
6949	if v.Path != nil {
6950		ok := object.Key("Path")
6951		ok.String(*v.Path)
6952	}
6953
6954	return nil
6955}
6956
6957func awsRestjson1_serializeDocumentAwsIamGroupPolicy(v *types.AwsIamGroupPolicy, value smithyjson.Value) error {
6958	object := value.Object()
6959	defer object.Close()
6960
6961	if v.PolicyName != nil {
6962		ok := object.Key("PolicyName")
6963		ok.String(*v.PolicyName)
6964	}
6965
6966	return nil
6967}
6968
6969func awsRestjson1_serializeDocumentAwsIamGroupPolicyList(v []types.AwsIamGroupPolicy, value smithyjson.Value) error {
6970	array := value.Array()
6971	defer array.Close()
6972
6973	for i := range v {
6974		av := array.Value()
6975		if err := awsRestjson1_serializeDocumentAwsIamGroupPolicy(&v[i], av); err != nil {
6976			return err
6977		}
6978	}
6979	return nil
6980}
6981
6982func awsRestjson1_serializeDocumentAwsIamInstanceProfile(v *types.AwsIamInstanceProfile, value smithyjson.Value) error {
6983	object := value.Object()
6984	defer object.Close()
6985
6986	if v.Arn != nil {
6987		ok := object.Key("Arn")
6988		ok.String(*v.Arn)
6989	}
6990
6991	if v.CreateDate != nil {
6992		ok := object.Key("CreateDate")
6993		ok.String(*v.CreateDate)
6994	}
6995
6996	if v.InstanceProfileId != nil {
6997		ok := object.Key("InstanceProfileId")
6998		ok.String(*v.InstanceProfileId)
6999	}
7000
7001	if v.InstanceProfileName != nil {
7002		ok := object.Key("InstanceProfileName")
7003		ok.String(*v.InstanceProfileName)
7004	}
7005
7006	if v.Path != nil {
7007		ok := object.Key("Path")
7008		ok.String(*v.Path)
7009	}
7010
7011	if v.Roles != nil {
7012		ok := object.Key("Roles")
7013		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileRoles(v.Roles, ok); err != nil {
7014			return err
7015		}
7016	}
7017
7018	return nil
7019}
7020
7021func awsRestjson1_serializeDocumentAwsIamInstanceProfileList(v []types.AwsIamInstanceProfile, value smithyjson.Value) error {
7022	array := value.Array()
7023	defer array.Close()
7024
7025	for i := range v {
7026		av := array.Value()
7027		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfile(&v[i], av); err != nil {
7028			return err
7029		}
7030	}
7031	return nil
7032}
7033
7034func awsRestjson1_serializeDocumentAwsIamInstanceProfileRole(v *types.AwsIamInstanceProfileRole, value smithyjson.Value) error {
7035	object := value.Object()
7036	defer object.Close()
7037
7038	if v.Arn != nil {
7039		ok := object.Key("Arn")
7040		ok.String(*v.Arn)
7041	}
7042
7043	if v.AssumeRolePolicyDocument != nil {
7044		ok := object.Key("AssumeRolePolicyDocument")
7045		ok.String(*v.AssumeRolePolicyDocument)
7046	}
7047
7048	if v.CreateDate != nil {
7049		ok := object.Key("CreateDate")
7050		ok.String(*v.CreateDate)
7051	}
7052
7053	if v.Path != nil {
7054		ok := object.Key("Path")
7055		ok.String(*v.Path)
7056	}
7057
7058	if v.RoleId != nil {
7059		ok := object.Key("RoleId")
7060		ok.String(*v.RoleId)
7061	}
7062
7063	if v.RoleName != nil {
7064		ok := object.Key("RoleName")
7065		ok.String(*v.RoleName)
7066	}
7067
7068	return nil
7069}
7070
7071func awsRestjson1_serializeDocumentAwsIamInstanceProfileRoles(v []types.AwsIamInstanceProfileRole, value smithyjson.Value) error {
7072	array := value.Array()
7073	defer array.Close()
7074
7075	for i := range v {
7076		av := array.Value()
7077		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileRole(&v[i], av); err != nil {
7078			return err
7079		}
7080	}
7081	return nil
7082}
7083
7084func awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v *types.AwsIamPermissionsBoundary, value smithyjson.Value) error {
7085	object := value.Object()
7086	defer object.Close()
7087
7088	if v.PermissionsBoundaryArn != nil {
7089		ok := object.Key("PermissionsBoundaryArn")
7090		ok.String(*v.PermissionsBoundaryArn)
7091	}
7092
7093	if v.PermissionsBoundaryType != nil {
7094		ok := object.Key("PermissionsBoundaryType")
7095		ok.String(*v.PermissionsBoundaryType)
7096	}
7097
7098	return nil
7099}
7100
7101func awsRestjson1_serializeDocumentAwsIamPolicyDetails(v *types.AwsIamPolicyDetails, value smithyjson.Value) error {
7102	object := value.Object()
7103	defer object.Close()
7104
7105	if v.AttachmentCount != 0 {
7106		ok := object.Key("AttachmentCount")
7107		ok.Integer(v.AttachmentCount)
7108	}
7109
7110	if v.CreateDate != nil {
7111		ok := object.Key("CreateDate")
7112		ok.String(*v.CreateDate)
7113	}
7114
7115	if v.DefaultVersionId != nil {
7116		ok := object.Key("DefaultVersionId")
7117		ok.String(*v.DefaultVersionId)
7118	}
7119
7120	if v.Description != nil {
7121		ok := object.Key("Description")
7122		ok.String(*v.Description)
7123	}
7124
7125	if v.IsAttachable {
7126		ok := object.Key("IsAttachable")
7127		ok.Boolean(v.IsAttachable)
7128	}
7129
7130	if v.Path != nil {
7131		ok := object.Key("Path")
7132		ok.String(*v.Path)
7133	}
7134
7135	if v.PermissionsBoundaryUsageCount != 0 {
7136		ok := object.Key("PermissionsBoundaryUsageCount")
7137		ok.Integer(v.PermissionsBoundaryUsageCount)
7138	}
7139
7140	if v.PolicyId != nil {
7141		ok := object.Key("PolicyId")
7142		ok.String(*v.PolicyId)
7143	}
7144
7145	if v.PolicyName != nil {
7146		ok := object.Key("PolicyName")
7147		ok.String(*v.PolicyName)
7148	}
7149
7150	if v.PolicyVersionList != nil {
7151		ok := object.Key("PolicyVersionList")
7152		if err := awsRestjson1_serializeDocumentAwsIamPolicyVersionList(v.PolicyVersionList, ok); err != nil {
7153			return err
7154		}
7155	}
7156
7157	if v.UpdateDate != nil {
7158		ok := object.Key("UpdateDate")
7159		ok.String(*v.UpdateDate)
7160	}
7161
7162	return nil
7163}
7164
7165func awsRestjson1_serializeDocumentAwsIamPolicyVersion(v *types.AwsIamPolicyVersion, value smithyjson.Value) error {
7166	object := value.Object()
7167	defer object.Close()
7168
7169	if v.CreateDate != nil {
7170		ok := object.Key("CreateDate")
7171		ok.String(*v.CreateDate)
7172	}
7173
7174	if v.IsDefaultVersion {
7175		ok := object.Key("IsDefaultVersion")
7176		ok.Boolean(v.IsDefaultVersion)
7177	}
7178
7179	if v.VersionId != nil {
7180		ok := object.Key("VersionId")
7181		ok.String(*v.VersionId)
7182	}
7183
7184	return nil
7185}
7186
7187func awsRestjson1_serializeDocumentAwsIamPolicyVersionList(v []types.AwsIamPolicyVersion, value smithyjson.Value) error {
7188	array := value.Array()
7189	defer array.Close()
7190
7191	for i := range v {
7192		av := array.Value()
7193		if err := awsRestjson1_serializeDocumentAwsIamPolicyVersion(&v[i], av); err != nil {
7194			return err
7195		}
7196	}
7197	return nil
7198}
7199
7200func awsRestjson1_serializeDocumentAwsIamRoleDetails(v *types.AwsIamRoleDetails, value smithyjson.Value) error {
7201	object := value.Object()
7202	defer object.Close()
7203
7204	if v.AssumeRolePolicyDocument != nil {
7205		ok := object.Key("AssumeRolePolicyDocument")
7206		ok.String(*v.AssumeRolePolicyDocument)
7207	}
7208
7209	if v.AttachedManagedPolicies != nil {
7210		ok := object.Key("AttachedManagedPolicies")
7211		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
7212			return err
7213		}
7214	}
7215
7216	if v.CreateDate != nil {
7217		ok := object.Key("CreateDate")
7218		ok.String(*v.CreateDate)
7219	}
7220
7221	if v.InstanceProfileList != nil {
7222		ok := object.Key("InstanceProfileList")
7223		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileList(v.InstanceProfileList, ok); err != nil {
7224			return err
7225		}
7226	}
7227
7228	if v.MaxSessionDuration != 0 {
7229		ok := object.Key("MaxSessionDuration")
7230		ok.Integer(v.MaxSessionDuration)
7231	}
7232
7233	if v.Path != nil {
7234		ok := object.Key("Path")
7235		ok.String(*v.Path)
7236	}
7237
7238	if v.PermissionsBoundary != nil {
7239		ok := object.Key("PermissionsBoundary")
7240		if err := awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v.PermissionsBoundary, ok); err != nil {
7241			return err
7242		}
7243	}
7244
7245	if v.RoleId != nil {
7246		ok := object.Key("RoleId")
7247		ok.String(*v.RoleId)
7248	}
7249
7250	if v.RoleName != nil {
7251		ok := object.Key("RoleName")
7252		ok.String(*v.RoleName)
7253	}
7254
7255	if v.RolePolicyList != nil {
7256		ok := object.Key("RolePolicyList")
7257		if err := awsRestjson1_serializeDocumentAwsIamRolePolicyList(v.RolePolicyList, ok); err != nil {
7258			return err
7259		}
7260	}
7261
7262	return nil
7263}
7264
7265func awsRestjson1_serializeDocumentAwsIamRolePolicy(v *types.AwsIamRolePolicy, value smithyjson.Value) error {
7266	object := value.Object()
7267	defer object.Close()
7268
7269	if v.PolicyName != nil {
7270		ok := object.Key("PolicyName")
7271		ok.String(*v.PolicyName)
7272	}
7273
7274	return nil
7275}
7276
7277func awsRestjson1_serializeDocumentAwsIamRolePolicyList(v []types.AwsIamRolePolicy, value smithyjson.Value) error {
7278	array := value.Array()
7279	defer array.Close()
7280
7281	for i := range v {
7282		av := array.Value()
7283		if err := awsRestjson1_serializeDocumentAwsIamRolePolicy(&v[i], av); err != nil {
7284			return err
7285		}
7286	}
7287	return nil
7288}
7289
7290func awsRestjson1_serializeDocumentAwsIamUserDetails(v *types.AwsIamUserDetails, value smithyjson.Value) error {
7291	object := value.Object()
7292	defer object.Close()
7293
7294	if v.AttachedManagedPolicies != nil {
7295		ok := object.Key("AttachedManagedPolicies")
7296		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
7297			return err
7298		}
7299	}
7300
7301	if v.CreateDate != nil {
7302		ok := object.Key("CreateDate")
7303		ok.String(*v.CreateDate)
7304	}
7305
7306	if v.GroupList != nil {
7307		ok := object.Key("GroupList")
7308		if err := awsRestjson1_serializeDocumentStringList(v.GroupList, ok); err != nil {
7309			return err
7310		}
7311	}
7312
7313	if v.Path != nil {
7314		ok := object.Key("Path")
7315		ok.String(*v.Path)
7316	}
7317
7318	if v.PermissionsBoundary != nil {
7319		ok := object.Key("PermissionsBoundary")
7320		if err := awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v.PermissionsBoundary, ok); err != nil {
7321			return err
7322		}
7323	}
7324
7325	if v.UserId != nil {
7326		ok := object.Key("UserId")
7327		ok.String(*v.UserId)
7328	}
7329
7330	if v.UserName != nil {
7331		ok := object.Key("UserName")
7332		ok.String(*v.UserName)
7333	}
7334
7335	if v.UserPolicyList != nil {
7336		ok := object.Key("UserPolicyList")
7337		if err := awsRestjson1_serializeDocumentAwsIamUserPolicyList(v.UserPolicyList, ok); err != nil {
7338			return err
7339		}
7340	}
7341
7342	return nil
7343}
7344
7345func awsRestjson1_serializeDocumentAwsIamUserPolicy(v *types.AwsIamUserPolicy, value smithyjson.Value) error {
7346	object := value.Object()
7347	defer object.Close()
7348
7349	if v.PolicyName != nil {
7350		ok := object.Key("PolicyName")
7351		ok.String(*v.PolicyName)
7352	}
7353
7354	return nil
7355}
7356
7357func awsRestjson1_serializeDocumentAwsIamUserPolicyList(v []types.AwsIamUserPolicy, value smithyjson.Value) error {
7358	array := value.Array()
7359	defer array.Close()
7360
7361	for i := range v {
7362		av := array.Value()
7363		if err := awsRestjson1_serializeDocumentAwsIamUserPolicy(&v[i], av); err != nil {
7364			return err
7365		}
7366	}
7367	return nil
7368}
7369
7370func awsRestjson1_serializeDocumentAwsKmsKeyDetails(v *types.AwsKmsKeyDetails, value smithyjson.Value) error {
7371	object := value.Object()
7372	defer object.Close()
7373
7374	if v.AWSAccountId != nil {
7375		ok := object.Key("AWSAccountId")
7376		ok.String(*v.AWSAccountId)
7377	}
7378
7379	if v.CreationDate != 0 {
7380		ok := object.Key("CreationDate")
7381		ok.Double(v.CreationDate)
7382	}
7383
7384	if v.Description != nil {
7385		ok := object.Key("Description")
7386		ok.String(*v.Description)
7387	}
7388
7389	if v.KeyId != nil {
7390		ok := object.Key("KeyId")
7391		ok.String(*v.KeyId)
7392	}
7393
7394	if v.KeyManager != nil {
7395		ok := object.Key("KeyManager")
7396		ok.String(*v.KeyManager)
7397	}
7398
7399	if v.KeyState != nil {
7400		ok := object.Key("KeyState")
7401		ok.String(*v.KeyState)
7402	}
7403
7404	if v.Origin != nil {
7405		ok := object.Key("Origin")
7406		ok.String(*v.Origin)
7407	}
7408
7409	return nil
7410}
7411
7412func awsRestjson1_serializeDocumentAwsLambdaFunctionCode(v *types.AwsLambdaFunctionCode, value smithyjson.Value) error {
7413	object := value.Object()
7414	defer object.Close()
7415
7416	if v.S3Bucket != nil {
7417		ok := object.Key("S3Bucket")
7418		ok.String(*v.S3Bucket)
7419	}
7420
7421	if v.S3Key != nil {
7422		ok := object.Key("S3Key")
7423		ok.String(*v.S3Key)
7424	}
7425
7426	if v.S3ObjectVersion != nil {
7427		ok := object.Key("S3ObjectVersion")
7428		ok.String(*v.S3ObjectVersion)
7429	}
7430
7431	if v.ZipFile != nil {
7432		ok := object.Key("ZipFile")
7433		ok.String(*v.ZipFile)
7434	}
7435
7436	return nil
7437}
7438
7439func awsRestjson1_serializeDocumentAwsLambdaFunctionDeadLetterConfig(v *types.AwsLambdaFunctionDeadLetterConfig, value smithyjson.Value) error {
7440	object := value.Object()
7441	defer object.Close()
7442
7443	if v.TargetArn != nil {
7444		ok := object.Key("TargetArn")
7445		ok.String(*v.TargetArn)
7446	}
7447
7448	return nil
7449}
7450
7451func awsRestjson1_serializeDocumentAwsLambdaFunctionDetails(v *types.AwsLambdaFunctionDetails, value smithyjson.Value) error {
7452	object := value.Object()
7453	defer object.Close()
7454
7455	if v.Code != nil {
7456		ok := object.Key("Code")
7457		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionCode(v.Code, ok); err != nil {
7458			return err
7459		}
7460	}
7461
7462	if v.CodeSha256 != nil {
7463		ok := object.Key("CodeSha256")
7464		ok.String(*v.CodeSha256)
7465	}
7466
7467	if v.DeadLetterConfig != nil {
7468		ok := object.Key("DeadLetterConfig")
7469		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionDeadLetterConfig(v.DeadLetterConfig, ok); err != nil {
7470			return err
7471		}
7472	}
7473
7474	if v.Environment != nil {
7475		ok := object.Key("Environment")
7476		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v.Environment, ok); err != nil {
7477			return err
7478		}
7479	}
7480
7481	if v.FunctionName != nil {
7482		ok := object.Key("FunctionName")
7483		ok.String(*v.FunctionName)
7484	}
7485
7486	if v.Handler != nil {
7487		ok := object.Key("Handler")
7488		ok.String(*v.Handler)
7489	}
7490
7491	if v.KmsKeyArn != nil {
7492		ok := object.Key("KmsKeyArn")
7493		ok.String(*v.KmsKeyArn)
7494	}
7495
7496	if v.LastModified != nil {
7497		ok := object.Key("LastModified")
7498		ok.String(*v.LastModified)
7499	}
7500
7501	if v.Layers != nil {
7502		ok := object.Key("Layers")
7503		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v.Layers, ok); err != nil {
7504			return err
7505		}
7506	}
7507
7508	if v.MasterArn != nil {
7509		ok := object.Key("MasterArn")
7510		ok.String(*v.MasterArn)
7511	}
7512
7513	if v.MemorySize != 0 {
7514		ok := object.Key("MemorySize")
7515		ok.Integer(v.MemorySize)
7516	}
7517
7518	if v.RevisionId != nil {
7519		ok := object.Key("RevisionId")
7520		ok.String(*v.RevisionId)
7521	}
7522
7523	if v.Role != nil {
7524		ok := object.Key("Role")
7525		ok.String(*v.Role)
7526	}
7527
7528	if v.Runtime != nil {
7529		ok := object.Key("Runtime")
7530		ok.String(*v.Runtime)
7531	}
7532
7533	if v.Timeout != 0 {
7534		ok := object.Key("Timeout")
7535		ok.Integer(v.Timeout)
7536	}
7537
7538	if v.TracingConfig != nil {
7539		ok := object.Key("TracingConfig")
7540		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v.TracingConfig, ok); err != nil {
7541			return err
7542		}
7543	}
7544
7545	if v.Version != nil {
7546		ok := object.Key("Version")
7547		ok.String(*v.Version)
7548	}
7549
7550	if v.VpcConfig != nil {
7551		ok := object.Key("VpcConfig")
7552		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v.VpcConfig, ok); err != nil {
7553			return err
7554		}
7555	}
7556
7557	return nil
7558}
7559
7560func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v *types.AwsLambdaFunctionEnvironment, value smithyjson.Value) error {
7561	object := value.Object()
7562	defer object.Close()
7563
7564	if v.Error != nil {
7565		ok := object.Key("Error")
7566		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v.Error, ok); err != nil {
7567			return err
7568		}
7569	}
7570
7571	if v.Variables != nil {
7572		ok := object.Key("Variables")
7573		if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil {
7574			return err
7575		}
7576	}
7577
7578	return nil
7579}
7580
7581func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v *types.AwsLambdaFunctionEnvironmentError, value smithyjson.Value) error {
7582	object := value.Object()
7583	defer object.Close()
7584
7585	if v.ErrorCode != nil {
7586		ok := object.Key("ErrorCode")
7587		ok.String(*v.ErrorCode)
7588	}
7589
7590	if v.Message != nil {
7591		ok := object.Key("Message")
7592		ok.String(*v.Message)
7593	}
7594
7595	return nil
7596}
7597
7598func awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(v *types.AwsLambdaFunctionLayer, value smithyjson.Value) error {
7599	object := value.Object()
7600	defer object.Close()
7601
7602	if v.Arn != nil {
7603		ok := object.Key("Arn")
7604		ok.String(*v.Arn)
7605	}
7606
7607	if v.CodeSize != 0 {
7608		ok := object.Key("CodeSize")
7609		ok.Integer(v.CodeSize)
7610	}
7611
7612	return nil
7613}
7614
7615func awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v []types.AwsLambdaFunctionLayer, value smithyjson.Value) error {
7616	array := value.Array()
7617	defer array.Close()
7618
7619	for i := range v {
7620		av := array.Value()
7621		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(&v[i], av); err != nil {
7622			return err
7623		}
7624	}
7625	return nil
7626}
7627
7628func awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v *types.AwsLambdaFunctionTracingConfig, value smithyjson.Value) error {
7629	object := value.Object()
7630	defer object.Close()
7631
7632	if v.Mode != nil {
7633		ok := object.Key("Mode")
7634		ok.String(*v.Mode)
7635	}
7636
7637	return nil
7638}
7639
7640func awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v *types.AwsLambdaFunctionVpcConfig, value smithyjson.Value) error {
7641	object := value.Object()
7642	defer object.Close()
7643
7644	if v.SecurityGroupIds != nil {
7645		ok := object.Key("SecurityGroupIds")
7646		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
7647			return err
7648		}
7649	}
7650
7651	if v.SubnetIds != nil {
7652		ok := object.Key("SubnetIds")
7653		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil {
7654			return err
7655		}
7656	}
7657
7658	if v.VpcId != nil {
7659		ok := object.Key("VpcId")
7660		ok.String(*v.VpcId)
7661	}
7662
7663	return nil
7664}
7665
7666func awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v *types.AwsLambdaLayerVersionDetails, value smithyjson.Value) error {
7667	object := value.Object()
7668	defer object.Close()
7669
7670	if v.CompatibleRuntimes != nil {
7671		ok := object.Key("CompatibleRuntimes")
7672		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.CompatibleRuntimes, ok); err != nil {
7673			return err
7674		}
7675	}
7676
7677	if v.CreatedDate != nil {
7678		ok := object.Key("CreatedDate")
7679		ok.String(*v.CreatedDate)
7680	}
7681
7682	if v.Version != 0 {
7683		ok := object.Key("Version")
7684		ok.Long(v.Version)
7685	}
7686
7687	return nil
7688}
7689
7690func awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRole(v *types.AwsRdsDbClusterAssociatedRole, value smithyjson.Value) error {
7691	object := value.Object()
7692	defer object.Close()
7693
7694	if v.RoleArn != nil {
7695		ok := object.Key("RoleArn")
7696		ok.String(*v.RoleArn)
7697	}
7698
7699	if v.Status != nil {
7700		ok := object.Key("Status")
7701		ok.String(*v.Status)
7702	}
7703
7704	return nil
7705}
7706
7707func awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRoles(v []types.AwsRdsDbClusterAssociatedRole, value smithyjson.Value) error {
7708	array := value.Array()
7709	defer array.Close()
7710
7711	for i := range v {
7712		av := array.Value()
7713		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRole(&v[i], av); err != nil {
7714			return err
7715		}
7716	}
7717	return nil
7718}
7719
7720func awsRestjson1_serializeDocumentAwsRdsDbClusterDetails(v *types.AwsRdsDbClusterDetails, value smithyjson.Value) error {
7721	object := value.Object()
7722	defer object.Close()
7723
7724	if v.ActivityStreamStatus != nil {
7725		ok := object.Key("ActivityStreamStatus")
7726		ok.String(*v.ActivityStreamStatus)
7727	}
7728
7729	if v.AllocatedStorage != 0 {
7730		ok := object.Key("AllocatedStorage")
7731		ok.Integer(v.AllocatedStorage)
7732	}
7733
7734	if v.AssociatedRoles != nil {
7735		ok := object.Key("AssociatedRoles")
7736		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRoles(v.AssociatedRoles, ok); err != nil {
7737			return err
7738		}
7739	}
7740
7741	if v.AvailabilityZones != nil {
7742		ok := object.Key("AvailabilityZones")
7743		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
7744			return err
7745		}
7746	}
7747
7748	if v.BackupRetentionPeriod != 0 {
7749		ok := object.Key("BackupRetentionPeriod")
7750		ok.Integer(v.BackupRetentionPeriod)
7751	}
7752
7753	if v.ClusterCreateTime != nil {
7754		ok := object.Key("ClusterCreateTime")
7755		ok.String(*v.ClusterCreateTime)
7756	}
7757
7758	if v.CopyTagsToSnapshot {
7759		ok := object.Key("CopyTagsToSnapshot")
7760		ok.Boolean(v.CopyTagsToSnapshot)
7761	}
7762
7763	if v.CrossAccountClone {
7764		ok := object.Key("CrossAccountClone")
7765		ok.Boolean(v.CrossAccountClone)
7766	}
7767
7768	if v.CustomEndpoints != nil {
7769		ok := object.Key("CustomEndpoints")
7770		if err := awsRestjson1_serializeDocumentStringList(v.CustomEndpoints, ok); err != nil {
7771			return err
7772		}
7773	}
7774
7775	if v.DatabaseName != nil {
7776		ok := object.Key("DatabaseName")
7777		ok.String(*v.DatabaseName)
7778	}
7779
7780	if v.DbClusterIdentifier != nil {
7781		ok := object.Key("DbClusterIdentifier")
7782		ok.String(*v.DbClusterIdentifier)
7783	}
7784
7785	if v.DbClusterMembers != nil {
7786		ok := object.Key("DbClusterMembers")
7787		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterMembers(v.DbClusterMembers, ok); err != nil {
7788			return err
7789		}
7790	}
7791
7792	if v.DbClusterOptionGroupMemberships != nil {
7793		ok := object.Key("DbClusterOptionGroupMemberships")
7794		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMemberships(v.DbClusterOptionGroupMemberships, ok); err != nil {
7795			return err
7796		}
7797	}
7798
7799	if v.DbClusterParameterGroup != nil {
7800		ok := object.Key("DbClusterParameterGroup")
7801		ok.String(*v.DbClusterParameterGroup)
7802	}
7803
7804	if v.DbClusterResourceId != nil {
7805		ok := object.Key("DbClusterResourceId")
7806		ok.String(*v.DbClusterResourceId)
7807	}
7808
7809	if v.DbSubnetGroup != nil {
7810		ok := object.Key("DbSubnetGroup")
7811		ok.String(*v.DbSubnetGroup)
7812	}
7813
7814	if v.DeletionProtection {
7815		ok := object.Key("DeletionProtection")
7816		ok.Boolean(v.DeletionProtection)
7817	}
7818
7819	if v.DomainMemberships != nil {
7820		ok := object.Key("DomainMemberships")
7821		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v.DomainMemberships, ok); err != nil {
7822			return err
7823		}
7824	}
7825
7826	if v.EnabledCloudWatchLogsExports != nil {
7827		ok := object.Key("EnabledCloudWatchLogsExports")
7828		if err := awsRestjson1_serializeDocumentStringList(v.EnabledCloudWatchLogsExports, ok); err != nil {
7829			return err
7830		}
7831	}
7832
7833	if v.Endpoint != nil {
7834		ok := object.Key("Endpoint")
7835		ok.String(*v.Endpoint)
7836	}
7837
7838	if v.Engine != nil {
7839		ok := object.Key("Engine")
7840		ok.String(*v.Engine)
7841	}
7842
7843	if v.EngineMode != nil {
7844		ok := object.Key("EngineMode")
7845		ok.String(*v.EngineMode)
7846	}
7847
7848	if v.EngineVersion != nil {
7849		ok := object.Key("EngineVersion")
7850		ok.String(*v.EngineVersion)
7851	}
7852
7853	if v.HostedZoneId != nil {
7854		ok := object.Key("HostedZoneId")
7855		ok.String(*v.HostedZoneId)
7856	}
7857
7858	if v.HttpEndpointEnabled {
7859		ok := object.Key("HttpEndpointEnabled")
7860		ok.Boolean(v.HttpEndpointEnabled)
7861	}
7862
7863	if v.IamDatabaseAuthenticationEnabled {
7864		ok := object.Key("IamDatabaseAuthenticationEnabled")
7865		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
7866	}
7867
7868	if v.KmsKeyId != nil {
7869		ok := object.Key("KmsKeyId")
7870		ok.String(*v.KmsKeyId)
7871	}
7872
7873	if v.MasterUsername != nil {
7874		ok := object.Key("MasterUsername")
7875		ok.String(*v.MasterUsername)
7876	}
7877
7878	if v.MultiAz {
7879		ok := object.Key("MultiAz")
7880		ok.Boolean(v.MultiAz)
7881	}
7882
7883	if v.Port != 0 {
7884		ok := object.Key("Port")
7885		ok.Integer(v.Port)
7886	}
7887
7888	if v.PreferredBackupWindow != nil {
7889		ok := object.Key("PreferredBackupWindow")
7890		ok.String(*v.PreferredBackupWindow)
7891	}
7892
7893	if v.PreferredMaintenanceWindow != nil {
7894		ok := object.Key("PreferredMaintenanceWindow")
7895		ok.String(*v.PreferredMaintenanceWindow)
7896	}
7897
7898	if v.ReaderEndpoint != nil {
7899		ok := object.Key("ReaderEndpoint")
7900		ok.String(*v.ReaderEndpoint)
7901	}
7902
7903	if v.ReadReplicaIdentifiers != nil {
7904		ok := object.Key("ReadReplicaIdentifiers")
7905		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaIdentifiers, ok); err != nil {
7906			return err
7907		}
7908	}
7909
7910	if v.Status != nil {
7911		ok := object.Key("Status")
7912		ok.String(*v.Status)
7913	}
7914
7915	if v.StorageEncrypted {
7916		ok := object.Key("StorageEncrypted")
7917		ok.Boolean(v.StorageEncrypted)
7918	}
7919
7920	if v.VpcSecurityGroups != nil {
7921		ok := object.Key("VpcSecurityGroups")
7922		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
7923			return err
7924		}
7925	}
7926
7927	return nil
7928}
7929
7930func awsRestjson1_serializeDocumentAwsRdsDbClusterMember(v *types.AwsRdsDbClusterMember, value smithyjson.Value) error {
7931	object := value.Object()
7932	defer object.Close()
7933
7934	if v.DbClusterParameterGroupStatus != nil {
7935		ok := object.Key("DbClusterParameterGroupStatus")
7936		ok.String(*v.DbClusterParameterGroupStatus)
7937	}
7938
7939	if v.DbInstanceIdentifier != nil {
7940		ok := object.Key("DbInstanceIdentifier")
7941		ok.String(*v.DbInstanceIdentifier)
7942	}
7943
7944	if v.IsClusterWriter {
7945		ok := object.Key("IsClusterWriter")
7946		ok.Boolean(v.IsClusterWriter)
7947	}
7948
7949	if v.PromotionTier != 0 {
7950		ok := object.Key("PromotionTier")
7951		ok.Integer(v.PromotionTier)
7952	}
7953
7954	return nil
7955}
7956
7957func awsRestjson1_serializeDocumentAwsRdsDbClusterMembers(v []types.AwsRdsDbClusterMember, value smithyjson.Value) error {
7958	array := value.Array()
7959	defer array.Close()
7960
7961	for i := range v {
7962		av := array.Value()
7963		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterMember(&v[i], av); err != nil {
7964			return err
7965		}
7966	}
7967	return nil
7968}
7969
7970func awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMembership(v *types.AwsRdsDbClusterOptionGroupMembership, value smithyjson.Value) error {
7971	object := value.Object()
7972	defer object.Close()
7973
7974	if v.DbClusterOptionGroupName != nil {
7975		ok := object.Key("DbClusterOptionGroupName")
7976		ok.String(*v.DbClusterOptionGroupName)
7977	}
7978
7979	if v.Status != nil {
7980		ok := object.Key("Status")
7981		ok.String(*v.Status)
7982	}
7983
7984	return nil
7985}
7986
7987func awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMemberships(v []types.AwsRdsDbClusterOptionGroupMembership, value smithyjson.Value) error {
7988	array := value.Array()
7989	defer array.Close()
7990
7991	for i := range v {
7992		av := array.Value()
7993		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMembership(&v[i], av); err != nil {
7994			return err
7995		}
7996	}
7997	return nil
7998}
7999
8000func awsRestjson1_serializeDocumentAwsRdsDbClusterSnapshotDetails(v *types.AwsRdsDbClusterSnapshotDetails, value smithyjson.Value) error {
8001	object := value.Object()
8002	defer object.Close()
8003
8004	if v.AllocatedStorage != 0 {
8005		ok := object.Key("AllocatedStorage")
8006		ok.Integer(v.AllocatedStorage)
8007	}
8008
8009	if v.AvailabilityZones != nil {
8010		ok := object.Key("AvailabilityZones")
8011		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
8012			return err
8013		}
8014	}
8015
8016	if v.ClusterCreateTime != nil {
8017		ok := object.Key("ClusterCreateTime")
8018		ok.String(*v.ClusterCreateTime)
8019	}
8020
8021	if v.DbClusterIdentifier != nil {
8022		ok := object.Key("DbClusterIdentifier")
8023		ok.String(*v.DbClusterIdentifier)
8024	}
8025
8026	if v.DbClusterSnapshotIdentifier != nil {
8027		ok := object.Key("DbClusterSnapshotIdentifier")
8028		ok.String(*v.DbClusterSnapshotIdentifier)
8029	}
8030
8031	if v.Engine != nil {
8032		ok := object.Key("Engine")
8033		ok.String(*v.Engine)
8034	}
8035
8036	if v.EngineVersion != nil {
8037		ok := object.Key("EngineVersion")
8038		ok.String(*v.EngineVersion)
8039	}
8040
8041	if v.IamDatabaseAuthenticationEnabled {
8042		ok := object.Key("IamDatabaseAuthenticationEnabled")
8043		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
8044	}
8045
8046	if v.KmsKeyId != nil {
8047		ok := object.Key("KmsKeyId")
8048		ok.String(*v.KmsKeyId)
8049	}
8050
8051	if v.LicenseModel != nil {
8052		ok := object.Key("LicenseModel")
8053		ok.String(*v.LicenseModel)
8054	}
8055
8056	if v.MasterUsername != nil {
8057		ok := object.Key("MasterUsername")
8058		ok.String(*v.MasterUsername)
8059	}
8060
8061	if v.PercentProgress != 0 {
8062		ok := object.Key("PercentProgress")
8063		ok.Integer(v.PercentProgress)
8064	}
8065
8066	if v.Port != 0 {
8067		ok := object.Key("Port")
8068		ok.Integer(v.Port)
8069	}
8070
8071	if v.SnapshotCreateTime != nil {
8072		ok := object.Key("SnapshotCreateTime")
8073		ok.String(*v.SnapshotCreateTime)
8074	}
8075
8076	if v.SnapshotType != nil {
8077		ok := object.Key("SnapshotType")
8078		ok.String(*v.SnapshotType)
8079	}
8080
8081	if v.Status != nil {
8082		ok := object.Key("Status")
8083		ok.String(*v.Status)
8084	}
8085
8086	if v.StorageEncrypted {
8087		ok := object.Key("StorageEncrypted")
8088		ok.Boolean(v.StorageEncrypted)
8089	}
8090
8091	if v.VpcId != nil {
8092		ok := object.Key("VpcId")
8093		ok.String(*v.VpcId)
8094	}
8095
8096	return nil
8097}
8098
8099func awsRestjson1_serializeDocumentAwsRdsDbDomainMembership(v *types.AwsRdsDbDomainMembership, value smithyjson.Value) error {
8100	object := value.Object()
8101	defer object.Close()
8102
8103	if v.Domain != nil {
8104		ok := object.Key("Domain")
8105		ok.String(*v.Domain)
8106	}
8107
8108	if v.Fqdn != nil {
8109		ok := object.Key("Fqdn")
8110		ok.String(*v.Fqdn)
8111	}
8112
8113	if v.IamRoleName != nil {
8114		ok := object.Key("IamRoleName")
8115		ok.String(*v.IamRoleName)
8116	}
8117
8118	if v.Status != nil {
8119		ok := object.Key("Status")
8120		ok.String(*v.Status)
8121	}
8122
8123	return nil
8124}
8125
8126func awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v []types.AwsRdsDbDomainMembership, value smithyjson.Value) error {
8127	array := value.Array()
8128	defer array.Close()
8129
8130	for i := range v {
8131		av := array.Value()
8132		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMembership(&v[i], av); err != nil {
8133			return err
8134		}
8135	}
8136	return nil
8137}
8138
8139func awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRole(v *types.AwsRdsDbInstanceAssociatedRole, value smithyjson.Value) error {
8140	object := value.Object()
8141	defer object.Close()
8142
8143	if v.FeatureName != nil {
8144		ok := object.Key("FeatureName")
8145		ok.String(*v.FeatureName)
8146	}
8147
8148	if v.RoleArn != nil {
8149		ok := object.Key("RoleArn")
8150		ok.String(*v.RoleArn)
8151	}
8152
8153	if v.Status != nil {
8154		ok := object.Key("Status")
8155		ok.String(*v.Status)
8156	}
8157
8158	return nil
8159}
8160
8161func awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRoles(v []types.AwsRdsDbInstanceAssociatedRole, value smithyjson.Value) error {
8162	array := value.Array()
8163	defer array.Close()
8164
8165	for i := range v {
8166		av := array.Value()
8167		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRole(&v[i], av); err != nil {
8168			return err
8169		}
8170	}
8171	return nil
8172}
8173
8174func awsRestjson1_serializeDocumentAwsRdsDbInstanceDetails(v *types.AwsRdsDbInstanceDetails, value smithyjson.Value) error {
8175	object := value.Object()
8176	defer object.Close()
8177
8178	if v.AllocatedStorage != 0 {
8179		ok := object.Key("AllocatedStorage")
8180		ok.Integer(v.AllocatedStorage)
8181	}
8182
8183	if v.AssociatedRoles != nil {
8184		ok := object.Key("AssociatedRoles")
8185		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRoles(v.AssociatedRoles, ok); err != nil {
8186			return err
8187		}
8188	}
8189
8190	if v.AutoMinorVersionUpgrade {
8191		ok := object.Key("AutoMinorVersionUpgrade")
8192		ok.Boolean(v.AutoMinorVersionUpgrade)
8193	}
8194
8195	if v.AvailabilityZone != nil {
8196		ok := object.Key("AvailabilityZone")
8197		ok.String(*v.AvailabilityZone)
8198	}
8199
8200	if v.BackupRetentionPeriod != 0 {
8201		ok := object.Key("BackupRetentionPeriod")
8202		ok.Integer(v.BackupRetentionPeriod)
8203	}
8204
8205	if v.CACertificateIdentifier != nil {
8206		ok := object.Key("CACertificateIdentifier")
8207		ok.String(*v.CACertificateIdentifier)
8208	}
8209
8210	if v.CharacterSetName != nil {
8211		ok := object.Key("CharacterSetName")
8212		ok.String(*v.CharacterSetName)
8213	}
8214
8215	if v.CopyTagsToSnapshot {
8216		ok := object.Key("CopyTagsToSnapshot")
8217		ok.Boolean(v.CopyTagsToSnapshot)
8218	}
8219
8220	if v.DBClusterIdentifier != nil {
8221		ok := object.Key("DBClusterIdentifier")
8222		ok.String(*v.DBClusterIdentifier)
8223	}
8224
8225	if v.DBInstanceClass != nil {
8226		ok := object.Key("DBInstanceClass")
8227		ok.String(*v.DBInstanceClass)
8228	}
8229
8230	if v.DBInstanceIdentifier != nil {
8231		ok := object.Key("DBInstanceIdentifier")
8232		ok.String(*v.DBInstanceIdentifier)
8233	}
8234
8235	if v.DbInstancePort != 0 {
8236		ok := object.Key("DbInstancePort")
8237		ok.Integer(v.DbInstancePort)
8238	}
8239
8240	if v.DbInstanceStatus != nil {
8241		ok := object.Key("DbInstanceStatus")
8242		ok.String(*v.DbInstanceStatus)
8243	}
8244
8245	if v.DbiResourceId != nil {
8246		ok := object.Key("DbiResourceId")
8247		ok.String(*v.DbiResourceId)
8248	}
8249
8250	if v.DBName != nil {
8251		ok := object.Key("DBName")
8252		ok.String(*v.DBName)
8253	}
8254
8255	if v.DbParameterGroups != nil {
8256		ok := object.Key("DbParameterGroups")
8257		if err := awsRestjson1_serializeDocumentAwsRdsDbParameterGroups(v.DbParameterGroups, ok); err != nil {
8258			return err
8259		}
8260	}
8261
8262	if v.DbSecurityGroups != nil {
8263		ok := object.Key("DbSecurityGroups")
8264		if err := awsRestjson1_serializeDocumentStringList(v.DbSecurityGroups, ok); err != nil {
8265			return err
8266		}
8267	}
8268
8269	if v.DbSubnetGroup != nil {
8270		ok := object.Key("DbSubnetGroup")
8271		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroup(v.DbSubnetGroup, ok); err != nil {
8272			return err
8273		}
8274	}
8275
8276	if v.DeletionProtection {
8277		ok := object.Key("DeletionProtection")
8278		ok.Boolean(v.DeletionProtection)
8279	}
8280
8281	if v.DomainMemberships != nil {
8282		ok := object.Key("DomainMemberships")
8283		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v.DomainMemberships, ok); err != nil {
8284			return err
8285		}
8286	}
8287
8288	if v.EnabledCloudWatchLogsExports != nil {
8289		ok := object.Key("EnabledCloudWatchLogsExports")
8290		if err := awsRestjson1_serializeDocumentStringList(v.EnabledCloudWatchLogsExports, ok); err != nil {
8291			return err
8292		}
8293	}
8294
8295	if v.Endpoint != nil {
8296		ok := object.Key("Endpoint")
8297		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v.Endpoint, ok); err != nil {
8298			return err
8299		}
8300	}
8301
8302	if v.Engine != nil {
8303		ok := object.Key("Engine")
8304		ok.String(*v.Engine)
8305	}
8306
8307	if v.EngineVersion != nil {
8308		ok := object.Key("EngineVersion")
8309		ok.String(*v.EngineVersion)
8310	}
8311
8312	if v.EnhancedMonitoringResourceArn != nil {
8313		ok := object.Key("EnhancedMonitoringResourceArn")
8314		ok.String(*v.EnhancedMonitoringResourceArn)
8315	}
8316
8317	if v.IAMDatabaseAuthenticationEnabled {
8318		ok := object.Key("IAMDatabaseAuthenticationEnabled")
8319		ok.Boolean(v.IAMDatabaseAuthenticationEnabled)
8320	}
8321
8322	if v.InstanceCreateTime != nil {
8323		ok := object.Key("InstanceCreateTime")
8324		ok.String(*v.InstanceCreateTime)
8325	}
8326
8327	if v.Iops != 0 {
8328		ok := object.Key("Iops")
8329		ok.Integer(v.Iops)
8330	}
8331
8332	if v.KmsKeyId != nil {
8333		ok := object.Key("KmsKeyId")
8334		ok.String(*v.KmsKeyId)
8335	}
8336
8337	if v.LatestRestorableTime != nil {
8338		ok := object.Key("LatestRestorableTime")
8339		ok.String(*v.LatestRestorableTime)
8340	}
8341
8342	if v.LicenseModel != nil {
8343		ok := object.Key("LicenseModel")
8344		ok.String(*v.LicenseModel)
8345	}
8346
8347	if v.ListenerEndpoint != nil {
8348		ok := object.Key("ListenerEndpoint")
8349		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v.ListenerEndpoint, ok); err != nil {
8350			return err
8351		}
8352	}
8353
8354	if v.MasterUsername != nil {
8355		ok := object.Key("MasterUsername")
8356		ok.String(*v.MasterUsername)
8357	}
8358
8359	if v.MaxAllocatedStorage != 0 {
8360		ok := object.Key("MaxAllocatedStorage")
8361		ok.Integer(v.MaxAllocatedStorage)
8362	}
8363
8364	if v.MonitoringInterval != 0 {
8365		ok := object.Key("MonitoringInterval")
8366		ok.Integer(v.MonitoringInterval)
8367	}
8368
8369	if v.MonitoringRoleArn != nil {
8370		ok := object.Key("MonitoringRoleArn")
8371		ok.String(*v.MonitoringRoleArn)
8372	}
8373
8374	if v.MultiAz {
8375		ok := object.Key("MultiAz")
8376		ok.Boolean(v.MultiAz)
8377	}
8378
8379	if v.OptionGroupMemberships != nil {
8380		ok := object.Key("OptionGroupMemberships")
8381		if err := awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMemberships(v.OptionGroupMemberships, ok); err != nil {
8382			return err
8383		}
8384	}
8385
8386	if v.PendingModifiedValues != nil {
8387		ok := object.Key("PendingModifiedValues")
8388		if err := awsRestjson1_serializeDocumentAwsRdsDbPendingModifiedValues(v.PendingModifiedValues, ok); err != nil {
8389			return err
8390		}
8391	}
8392
8393	if v.PerformanceInsightsEnabled {
8394		ok := object.Key("PerformanceInsightsEnabled")
8395		ok.Boolean(v.PerformanceInsightsEnabled)
8396	}
8397
8398	if v.PerformanceInsightsKmsKeyId != nil {
8399		ok := object.Key("PerformanceInsightsKmsKeyId")
8400		ok.String(*v.PerformanceInsightsKmsKeyId)
8401	}
8402
8403	if v.PerformanceInsightsRetentionPeriod != 0 {
8404		ok := object.Key("PerformanceInsightsRetentionPeriod")
8405		ok.Integer(v.PerformanceInsightsRetentionPeriod)
8406	}
8407
8408	if v.PreferredBackupWindow != nil {
8409		ok := object.Key("PreferredBackupWindow")
8410		ok.String(*v.PreferredBackupWindow)
8411	}
8412
8413	if v.PreferredMaintenanceWindow != nil {
8414		ok := object.Key("PreferredMaintenanceWindow")
8415		ok.String(*v.PreferredMaintenanceWindow)
8416	}
8417
8418	if v.ProcessorFeatures != nil {
8419		ok := object.Key("ProcessorFeatures")
8420		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
8421			return err
8422		}
8423	}
8424
8425	if v.PromotionTier != 0 {
8426		ok := object.Key("PromotionTier")
8427		ok.Integer(v.PromotionTier)
8428	}
8429
8430	if v.PubliclyAccessible {
8431		ok := object.Key("PubliclyAccessible")
8432		ok.Boolean(v.PubliclyAccessible)
8433	}
8434
8435	if v.ReadReplicaDBClusterIdentifiers != nil {
8436		ok := object.Key("ReadReplicaDBClusterIdentifiers")
8437		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaDBClusterIdentifiers, ok); err != nil {
8438			return err
8439		}
8440	}
8441
8442	if v.ReadReplicaDBInstanceIdentifiers != nil {
8443		ok := object.Key("ReadReplicaDBInstanceIdentifiers")
8444		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaDBInstanceIdentifiers, ok); err != nil {
8445			return err
8446		}
8447	}
8448
8449	if v.ReadReplicaSourceDBInstanceIdentifier != nil {
8450		ok := object.Key("ReadReplicaSourceDBInstanceIdentifier")
8451		ok.String(*v.ReadReplicaSourceDBInstanceIdentifier)
8452	}
8453
8454	if v.SecondaryAvailabilityZone != nil {
8455		ok := object.Key("SecondaryAvailabilityZone")
8456		ok.String(*v.SecondaryAvailabilityZone)
8457	}
8458
8459	if v.StatusInfos != nil {
8460		ok := object.Key("StatusInfos")
8461		if err := awsRestjson1_serializeDocumentAwsRdsDbStatusInfos(v.StatusInfos, ok); err != nil {
8462			return err
8463		}
8464	}
8465
8466	if v.StorageEncrypted {
8467		ok := object.Key("StorageEncrypted")
8468		ok.Boolean(v.StorageEncrypted)
8469	}
8470
8471	if v.StorageType != nil {
8472		ok := object.Key("StorageType")
8473		ok.String(*v.StorageType)
8474	}
8475
8476	if v.TdeCredentialArn != nil {
8477		ok := object.Key("TdeCredentialArn")
8478		ok.String(*v.TdeCredentialArn)
8479	}
8480
8481	if v.Timezone != nil {
8482		ok := object.Key("Timezone")
8483		ok.String(*v.Timezone)
8484	}
8485
8486	if v.VpcSecurityGroups != nil {
8487		ok := object.Key("VpcSecurityGroups")
8488		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
8489			return err
8490		}
8491	}
8492
8493	return nil
8494}
8495
8496func awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v *types.AwsRdsDbInstanceEndpoint, value smithyjson.Value) error {
8497	object := value.Object()
8498	defer object.Close()
8499
8500	if v.Address != nil {
8501		ok := object.Key("Address")
8502		ok.String(*v.Address)
8503	}
8504
8505	if v.HostedZoneId != nil {
8506		ok := object.Key("HostedZoneId")
8507		ok.String(*v.HostedZoneId)
8508	}
8509
8510	if v.Port != 0 {
8511		ok := object.Key("Port")
8512		ok.Integer(v.Port)
8513	}
8514
8515	return nil
8516}
8517
8518func awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroup(v *types.AwsRdsDbInstanceVpcSecurityGroup, value smithyjson.Value) error {
8519	object := value.Object()
8520	defer object.Close()
8521
8522	if v.Status != nil {
8523		ok := object.Key("Status")
8524		ok.String(*v.Status)
8525	}
8526
8527	if v.VpcSecurityGroupId != nil {
8528		ok := object.Key("VpcSecurityGroupId")
8529		ok.String(*v.VpcSecurityGroupId)
8530	}
8531
8532	return nil
8533}
8534
8535func awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v []types.AwsRdsDbInstanceVpcSecurityGroup, value smithyjson.Value) error {
8536	array := value.Array()
8537	defer array.Close()
8538
8539	for i := range v {
8540		av := array.Value()
8541		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroup(&v[i], av); err != nil {
8542			return err
8543		}
8544	}
8545	return nil
8546}
8547
8548func awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMembership(v *types.AwsRdsDbOptionGroupMembership, value smithyjson.Value) error {
8549	object := value.Object()
8550	defer object.Close()
8551
8552	if v.OptionGroupName != nil {
8553		ok := object.Key("OptionGroupName")
8554		ok.String(*v.OptionGroupName)
8555	}
8556
8557	if v.Status != nil {
8558		ok := object.Key("Status")
8559		ok.String(*v.Status)
8560	}
8561
8562	return nil
8563}
8564
8565func awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMemberships(v []types.AwsRdsDbOptionGroupMembership, value smithyjson.Value) error {
8566	array := value.Array()
8567	defer array.Close()
8568
8569	for i := range v {
8570		av := array.Value()
8571		if err := awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMembership(&v[i], av); err != nil {
8572			return err
8573		}
8574	}
8575	return nil
8576}
8577
8578func awsRestjson1_serializeDocumentAwsRdsDbParameterGroup(v *types.AwsRdsDbParameterGroup, value smithyjson.Value) error {
8579	object := value.Object()
8580	defer object.Close()
8581
8582	if v.DbParameterGroupName != nil {
8583		ok := object.Key("DbParameterGroupName")
8584		ok.String(*v.DbParameterGroupName)
8585	}
8586
8587	if v.ParameterApplyStatus != nil {
8588		ok := object.Key("ParameterApplyStatus")
8589		ok.String(*v.ParameterApplyStatus)
8590	}
8591
8592	return nil
8593}
8594
8595func awsRestjson1_serializeDocumentAwsRdsDbParameterGroups(v []types.AwsRdsDbParameterGroup, value smithyjson.Value) error {
8596	array := value.Array()
8597	defer array.Close()
8598
8599	for i := range v {
8600		av := array.Value()
8601		if err := awsRestjson1_serializeDocumentAwsRdsDbParameterGroup(&v[i], av); err != nil {
8602			return err
8603		}
8604	}
8605	return nil
8606}
8607
8608func awsRestjson1_serializeDocumentAwsRdsDbPendingModifiedValues(v *types.AwsRdsDbPendingModifiedValues, value smithyjson.Value) error {
8609	object := value.Object()
8610	defer object.Close()
8611
8612	if v.AllocatedStorage != 0 {
8613		ok := object.Key("AllocatedStorage")
8614		ok.Integer(v.AllocatedStorage)
8615	}
8616
8617	if v.BackupRetentionPeriod != 0 {
8618		ok := object.Key("BackupRetentionPeriod")
8619		ok.Integer(v.BackupRetentionPeriod)
8620	}
8621
8622	if v.CaCertificateIdentifier != nil {
8623		ok := object.Key("CaCertificateIdentifier")
8624		ok.String(*v.CaCertificateIdentifier)
8625	}
8626
8627	if v.DbInstanceClass != nil {
8628		ok := object.Key("DbInstanceClass")
8629		ok.String(*v.DbInstanceClass)
8630	}
8631
8632	if v.DbInstanceIdentifier != nil {
8633		ok := object.Key("DbInstanceIdentifier")
8634		ok.String(*v.DbInstanceIdentifier)
8635	}
8636
8637	if v.DbSubnetGroupName != nil {
8638		ok := object.Key("DbSubnetGroupName")
8639		ok.String(*v.DbSubnetGroupName)
8640	}
8641
8642	if v.EngineVersion != nil {
8643		ok := object.Key("EngineVersion")
8644		ok.String(*v.EngineVersion)
8645	}
8646
8647	if v.Iops != 0 {
8648		ok := object.Key("Iops")
8649		ok.Integer(v.Iops)
8650	}
8651
8652	if v.LicenseModel != nil {
8653		ok := object.Key("LicenseModel")
8654		ok.String(*v.LicenseModel)
8655	}
8656
8657	if v.MasterUserPassword != nil {
8658		ok := object.Key("MasterUserPassword")
8659		ok.String(*v.MasterUserPassword)
8660	}
8661
8662	if v.MultiAZ {
8663		ok := object.Key("MultiAZ")
8664		ok.Boolean(v.MultiAZ)
8665	}
8666
8667	if v.PendingCloudWatchLogsExports != nil {
8668		ok := object.Key("PendingCloudWatchLogsExports")
8669		if err := awsRestjson1_serializeDocumentAwsRdsPendingCloudWatchLogsExports(v.PendingCloudWatchLogsExports, ok); err != nil {
8670			return err
8671		}
8672	}
8673
8674	if v.Port != 0 {
8675		ok := object.Key("Port")
8676		ok.Integer(v.Port)
8677	}
8678
8679	if v.ProcessorFeatures != nil {
8680		ok := object.Key("ProcessorFeatures")
8681		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
8682			return err
8683		}
8684	}
8685
8686	if v.StorageType != nil {
8687		ok := object.Key("StorageType")
8688		ok.String(*v.StorageType)
8689	}
8690
8691	return nil
8692}
8693
8694func awsRestjson1_serializeDocumentAwsRdsDbProcessorFeature(v *types.AwsRdsDbProcessorFeature, value smithyjson.Value) error {
8695	object := value.Object()
8696	defer object.Close()
8697
8698	if v.Name != nil {
8699		ok := object.Key("Name")
8700		ok.String(*v.Name)
8701	}
8702
8703	if v.Value != nil {
8704		ok := object.Key("Value")
8705		ok.String(*v.Value)
8706	}
8707
8708	return nil
8709}
8710
8711func awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v []types.AwsRdsDbProcessorFeature, value smithyjson.Value) error {
8712	array := value.Array()
8713	defer array.Close()
8714
8715	for i := range v {
8716		av := array.Value()
8717		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeature(&v[i], av); err != nil {
8718			return err
8719		}
8720	}
8721	return nil
8722}
8723
8724func awsRestjson1_serializeDocumentAwsRdsDbSnapshotDetails(v *types.AwsRdsDbSnapshotDetails, value smithyjson.Value) error {
8725	object := value.Object()
8726	defer object.Close()
8727
8728	if v.AllocatedStorage != 0 {
8729		ok := object.Key("AllocatedStorage")
8730		ok.Integer(v.AllocatedStorage)
8731	}
8732
8733	if v.AvailabilityZone != nil {
8734		ok := object.Key("AvailabilityZone")
8735		ok.String(*v.AvailabilityZone)
8736	}
8737
8738	if v.DbInstanceIdentifier != nil {
8739		ok := object.Key("DbInstanceIdentifier")
8740		ok.String(*v.DbInstanceIdentifier)
8741	}
8742
8743	if v.DbiResourceId != nil {
8744		ok := object.Key("DbiResourceId")
8745		ok.String(*v.DbiResourceId)
8746	}
8747
8748	if v.DbSnapshotIdentifier != nil {
8749		ok := object.Key("DbSnapshotIdentifier")
8750		ok.String(*v.DbSnapshotIdentifier)
8751	}
8752
8753	if v.Encrypted {
8754		ok := object.Key("Encrypted")
8755		ok.Boolean(v.Encrypted)
8756	}
8757
8758	if v.Engine != nil {
8759		ok := object.Key("Engine")
8760		ok.String(*v.Engine)
8761	}
8762
8763	if v.EngineVersion != nil {
8764		ok := object.Key("EngineVersion")
8765		ok.String(*v.EngineVersion)
8766	}
8767
8768	if v.IamDatabaseAuthenticationEnabled {
8769		ok := object.Key("IamDatabaseAuthenticationEnabled")
8770		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
8771	}
8772
8773	if v.InstanceCreateTime != nil {
8774		ok := object.Key("InstanceCreateTime")
8775		ok.String(*v.InstanceCreateTime)
8776	}
8777
8778	if v.Iops != 0 {
8779		ok := object.Key("Iops")
8780		ok.Integer(v.Iops)
8781	}
8782
8783	if v.KmsKeyId != nil {
8784		ok := object.Key("KmsKeyId")
8785		ok.String(*v.KmsKeyId)
8786	}
8787
8788	if v.LicenseModel != nil {
8789		ok := object.Key("LicenseModel")
8790		ok.String(*v.LicenseModel)
8791	}
8792
8793	if v.MasterUsername != nil {
8794		ok := object.Key("MasterUsername")
8795		ok.String(*v.MasterUsername)
8796	}
8797
8798	if v.OptionGroupName != nil {
8799		ok := object.Key("OptionGroupName")
8800		ok.String(*v.OptionGroupName)
8801	}
8802
8803	if v.PercentProgress != 0 {
8804		ok := object.Key("PercentProgress")
8805		ok.Integer(v.PercentProgress)
8806	}
8807
8808	if v.Port != 0 {
8809		ok := object.Key("Port")
8810		ok.Integer(v.Port)
8811	}
8812
8813	if v.ProcessorFeatures != nil {
8814		ok := object.Key("ProcessorFeatures")
8815		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
8816			return err
8817		}
8818	}
8819
8820	if v.SnapshotCreateTime != nil {
8821		ok := object.Key("SnapshotCreateTime")
8822		ok.String(*v.SnapshotCreateTime)
8823	}
8824
8825	if v.SnapshotType != nil {
8826		ok := object.Key("SnapshotType")
8827		ok.String(*v.SnapshotType)
8828	}
8829
8830	if v.SourceDbSnapshotIdentifier != nil {
8831		ok := object.Key("SourceDbSnapshotIdentifier")
8832		ok.String(*v.SourceDbSnapshotIdentifier)
8833	}
8834
8835	if v.SourceRegion != nil {
8836		ok := object.Key("SourceRegion")
8837		ok.String(*v.SourceRegion)
8838	}
8839
8840	if v.Status != nil {
8841		ok := object.Key("Status")
8842		ok.String(*v.Status)
8843	}
8844
8845	if v.StorageType != nil {
8846		ok := object.Key("StorageType")
8847		ok.String(*v.StorageType)
8848	}
8849
8850	if v.TdeCredentialArn != nil {
8851		ok := object.Key("TdeCredentialArn")
8852		ok.String(*v.TdeCredentialArn)
8853	}
8854
8855	if v.Timezone != nil {
8856		ok := object.Key("Timezone")
8857		ok.String(*v.Timezone)
8858	}
8859
8860	if v.VpcId != nil {
8861		ok := object.Key("VpcId")
8862		ok.String(*v.VpcId)
8863	}
8864
8865	return nil
8866}
8867
8868func awsRestjson1_serializeDocumentAwsRdsDbStatusInfo(v *types.AwsRdsDbStatusInfo, value smithyjson.Value) error {
8869	object := value.Object()
8870	defer object.Close()
8871
8872	if v.Message != nil {
8873		ok := object.Key("Message")
8874		ok.String(*v.Message)
8875	}
8876
8877	if v.Normal {
8878		ok := object.Key("Normal")
8879		ok.Boolean(v.Normal)
8880	}
8881
8882	if v.Status != nil {
8883		ok := object.Key("Status")
8884		ok.String(*v.Status)
8885	}
8886
8887	if v.StatusType != nil {
8888		ok := object.Key("StatusType")
8889		ok.String(*v.StatusType)
8890	}
8891
8892	return nil
8893}
8894
8895func awsRestjson1_serializeDocumentAwsRdsDbStatusInfos(v []types.AwsRdsDbStatusInfo, value smithyjson.Value) error {
8896	array := value.Array()
8897	defer array.Close()
8898
8899	for i := range v {
8900		av := array.Value()
8901		if err := awsRestjson1_serializeDocumentAwsRdsDbStatusInfo(&v[i], av); err != nil {
8902			return err
8903		}
8904	}
8905	return nil
8906}
8907
8908func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroup(v *types.AwsRdsDbSubnetGroup, value smithyjson.Value) error {
8909	object := value.Object()
8910	defer object.Close()
8911
8912	if v.DbSubnetGroupArn != nil {
8913		ok := object.Key("DbSubnetGroupArn")
8914		ok.String(*v.DbSubnetGroupArn)
8915	}
8916
8917	if v.DbSubnetGroupDescription != nil {
8918		ok := object.Key("DbSubnetGroupDescription")
8919		ok.String(*v.DbSubnetGroupDescription)
8920	}
8921
8922	if v.DbSubnetGroupName != nil {
8923		ok := object.Key("DbSubnetGroupName")
8924		ok.String(*v.DbSubnetGroupName)
8925	}
8926
8927	if v.SubnetGroupStatus != nil {
8928		ok := object.Key("SubnetGroupStatus")
8929		ok.String(*v.SubnetGroupStatus)
8930	}
8931
8932	if v.Subnets != nil {
8933		ok := object.Key("Subnets")
8934		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnets(v.Subnets, ok); err != nil {
8935			return err
8936		}
8937	}
8938
8939	if v.VpcId != nil {
8940		ok := object.Key("VpcId")
8941		ok.String(*v.VpcId)
8942	}
8943
8944	return nil
8945}
8946
8947func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnet(v *types.AwsRdsDbSubnetGroupSubnet, value smithyjson.Value) error {
8948	object := value.Object()
8949	defer object.Close()
8950
8951	if v.SubnetAvailabilityZone != nil {
8952		ok := object.Key("SubnetAvailabilityZone")
8953		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v.SubnetAvailabilityZone, ok); err != nil {
8954			return err
8955		}
8956	}
8957
8958	if v.SubnetIdentifier != nil {
8959		ok := object.Key("SubnetIdentifier")
8960		ok.String(*v.SubnetIdentifier)
8961	}
8962
8963	if v.SubnetStatus != nil {
8964		ok := object.Key("SubnetStatus")
8965		ok.String(*v.SubnetStatus)
8966	}
8967
8968	return nil
8969}
8970
8971func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v *types.AwsRdsDbSubnetGroupSubnetAvailabilityZone, value smithyjson.Value) error {
8972	object := value.Object()
8973	defer object.Close()
8974
8975	if v.Name != nil {
8976		ok := object.Key("Name")
8977		ok.String(*v.Name)
8978	}
8979
8980	return nil
8981}
8982
8983func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnets(v []types.AwsRdsDbSubnetGroupSubnet, value smithyjson.Value) error {
8984	array := value.Array()
8985	defer array.Close()
8986
8987	for i := range v {
8988		av := array.Value()
8989		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnet(&v[i], av); err != nil {
8990			return err
8991		}
8992	}
8993	return nil
8994}
8995
8996func awsRestjson1_serializeDocumentAwsRdsPendingCloudWatchLogsExports(v *types.AwsRdsPendingCloudWatchLogsExports, value smithyjson.Value) error {
8997	object := value.Object()
8998	defer object.Close()
8999
9000	if v.LogTypesToDisable != nil {
9001		ok := object.Key("LogTypesToDisable")
9002		if err := awsRestjson1_serializeDocumentStringList(v.LogTypesToDisable, ok); err != nil {
9003			return err
9004		}
9005	}
9006
9007	if v.LogTypesToEnable != nil {
9008		ok := object.Key("LogTypesToEnable")
9009		if err := awsRestjson1_serializeDocumentStringList(v.LogTypesToEnable, ok); err != nil {
9010			return err
9011		}
9012	}
9013
9014	return nil
9015}
9016
9017func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNode(v *types.AwsRedshiftClusterClusterNode, value smithyjson.Value) error {
9018	object := value.Object()
9019	defer object.Close()
9020
9021	if v.NodeRole != nil {
9022		ok := object.Key("NodeRole")
9023		ok.String(*v.NodeRole)
9024	}
9025
9026	if v.PrivateIpAddress != nil {
9027		ok := object.Key("PrivateIpAddress")
9028		ok.String(*v.PrivateIpAddress)
9029	}
9030
9031	if v.PublicIpAddress != nil {
9032		ok := object.Key("PublicIpAddress")
9033		ok.String(*v.PublicIpAddress)
9034	}
9035
9036	return nil
9037}
9038
9039func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNodes(v []types.AwsRedshiftClusterClusterNode, value smithyjson.Value) error {
9040	array := value.Array()
9041	defer array.Close()
9042
9043	for i := range v {
9044		av := array.Value()
9045		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNode(&v[i], av); err != nil {
9046			return err
9047		}
9048	}
9049	return nil
9050}
9051
9052func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroup(v *types.AwsRedshiftClusterClusterParameterGroup, value smithyjson.Value) error {
9053	object := value.Object()
9054	defer object.Close()
9055
9056	if v.ClusterParameterStatusList != nil {
9057		ok := object.Key("ClusterParameterStatusList")
9058		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatusList(v.ClusterParameterStatusList, ok); err != nil {
9059			return err
9060		}
9061	}
9062
9063	if v.ParameterApplyStatus != nil {
9064		ok := object.Key("ParameterApplyStatus")
9065		ok.String(*v.ParameterApplyStatus)
9066	}
9067
9068	if v.ParameterGroupName != nil {
9069		ok := object.Key("ParameterGroupName")
9070		ok.String(*v.ParameterGroupName)
9071	}
9072
9073	return nil
9074}
9075
9076func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroups(v []types.AwsRedshiftClusterClusterParameterGroup, value smithyjson.Value) error {
9077	array := value.Array()
9078	defer array.Close()
9079
9080	for i := range v {
9081		av := array.Value()
9082		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroup(&v[i], av); err != nil {
9083			return err
9084		}
9085	}
9086	return nil
9087}
9088
9089func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatus(v *types.AwsRedshiftClusterClusterParameterStatus, value smithyjson.Value) error {
9090	object := value.Object()
9091	defer object.Close()
9092
9093	if v.ParameterApplyErrorDescription != nil {
9094		ok := object.Key("ParameterApplyErrorDescription")
9095		ok.String(*v.ParameterApplyErrorDescription)
9096	}
9097
9098	if v.ParameterApplyStatus != nil {
9099		ok := object.Key("ParameterApplyStatus")
9100		ok.String(*v.ParameterApplyStatus)
9101	}
9102
9103	if v.ParameterName != nil {
9104		ok := object.Key("ParameterName")
9105		ok.String(*v.ParameterName)
9106	}
9107
9108	return nil
9109}
9110
9111func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatusList(v []types.AwsRedshiftClusterClusterParameterStatus, value smithyjson.Value) error {
9112	array := value.Array()
9113	defer array.Close()
9114
9115	for i := range v {
9116		av := array.Value()
9117		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatus(&v[i], av); err != nil {
9118			return err
9119		}
9120	}
9121	return nil
9122}
9123
9124func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroup(v *types.AwsRedshiftClusterClusterSecurityGroup, value smithyjson.Value) error {
9125	object := value.Object()
9126	defer object.Close()
9127
9128	if v.ClusterSecurityGroupName != nil {
9129		ok := object.Key("ClusterSecurityGroupName")
9130		ok.String(*v.ClusterSecurityGroupName)
9131	}
9132
9133	if v.Status != nil {
9134		ok := object.Key("Status")
9135		ok.String(*v.Status)
9136	}
9137
9138	return nil
9139}
9140
9141func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroups(v []types.AwsRedshiftClusterClusterSecurityGroup, value smithyjson.Value) error {
9142	array := value.Array()
9143	defer array.Close()
9144
9145	for i := range v {
9146		av := array.Value()
9147		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroup(&v[i], av); err != nil {
9148			return err
9149		}
9150	}
9151	return nil
9152}
9153
9154func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v *types.AwsRedshiftClusterClusterSnapshotCopyStatus, value smithyjson.Value) error {
9155	object := value.Object()
9156	defer object.Close()
9157
9158	if v.DestinationRegion != nil {
9159		ok := object.Key("DestinationRegion")
9160		ok.String(*v.DestinationRegion)
9161	}
9162
9163	if v.ManualSnapshotRetentionPeriod != 0 {
9164		ok := object.Key("ManualSnapshotRetentionPeriod")
9165		ok.Integer(v.ManualSnapshotRetentionPeriod)
9166	}
9167
9168	if v.RetentionPeriod != 0 {
9169		ok := object.Key("RetentionPeriod")
9170		ok.Integer(v.RetentionPeriod)
9171	}
9172
9173	if v.SnapshotCopyGrantName != nil {
9174		ok := object.Key("SnapshotCopyGrantName")
9175		ok.String(*v.SnapshotCopyGrantName)
9176	}
9177
9178	return nil
9179}
9180
9181func awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(v *types.AwsRedshiftClusterDeferredMaintenanceWindow, value smithyjson.Value) error {
9182	object := value.Object()
9183	defer object.Close()
9184
9185	if v.DeferMaintenanceEndTime != nil {
9186		ok := object.Key("DeferMaintenanceEndTime")
9187		ok.String(*v.DeferMaintenanceEndTime)
9188	}
9189
9190	if v.DeferMaintenanceIdentifier != nil {
9191		ok := object.Key("DeferMaintenanceIdentifier")
9192		ok.String(*v.DeferMaintenanceIdentifier)
9193	}
9194
9195	if v.DeferMaintenanceStartTime != nil {
9196		ok := object.Key("DeferMaintenanceStartTime")
9197		ok.String(*v.DeferMaintenanceStartTime)
9198	}
9199
9200	return nil
9201}
9202
9203func awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v []types.AwsRedshiftClusterDeferredMaintenanceWindow, value smithyjson.Value) error {
9204	array := value.Array()
9205	defer array.Close()
9206
9207	for i := range v {
9208		av := array.Value()
9209		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(&v[i], av); err != nil {
9210			return err
9211		}
9212	}
9213	return nil
9214}
9215
9216func awsRestjson1_serializeDocumentAwsRedshiftClusterDetails(v *types.AwsRedshiftClusterDetails, value smithyjson.Value) error {
9217	object := value.Object()
9218	defer object.Close()
9219
9220	if v.AllowVersionUpgrade {
9221		ok := object.Key("AllowVersionUpgrade")
9222		ok.Boolean(v.AllowVersionUpgrade)
9223	}
9224
9225	if v.AutomatedSnapshotRetentionPeriod != 0 {
9226		ok := object.Key("AutomatedSnapshotRetentionPeriod")
9227		ok.Integer(v.AutomatedSnapshotRetentionPeriod)
9228	}
9229
9230	if v.AvailabilityZone != nil {
9231		ok := object.Key("AvailabilityZone")
9232		ok.String(*v.AvailabilityZone)
9233	}
9234
9235	if v.ClusterAvailabilityStatus != nil {
9236		ok := object.Key("ClusterAvailabilityStatus")
9237		ok.String(*v.ClusterAvailabilityStatus)
9238	}
9239
9240	if v.ClusterCreateTime != nil {
9241		ok := object.Key("ClusterCreateTime")
9242		ok.String(*v.ClusterCreateTime)
9243	}
9244
9245	if v.ClusterIdentifier != nil {
9246		ok := object.Key("ClusterIdentifier")
9247		ok.String(*v.ClusterIdentifier)
9248	}
9249
9250	if v.ClusterNodes != nil {
9251		ok := object.Key("ClusterNodes")
9252		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNodes(v.ClusterNodes, ok); err != nil {
9253			return err
9254		}
9255	}
9256
9257	if v.ClusterParameterGroups != nil {
9258		ok := object.Key("ClusterParameterGroups")
9259		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroups(v.ClusterParameterGroups, ok); err != nil {
9260			return err
9261		}
9262	}
9263
9264	if v.ClusterPublicKey != nil {
9265		ok := object.Key("ClusterPublicKey")
9266		ok.String(*v.ClusterPublicKey)
9267	}
9268
9269	if v.ClusterRevisionNumber != nil {
9270		ok := object.Key("ClusterRevisionNumber")
9271		ok.String(*v.ClusterRevisionNumber)
9272	}
9273
9274	if v.ClusterSecurityGroups != nil {
9275		ok := object.Key("ClusterSecurityGroups")
9276		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroups(v.ClusterSecurityGroups, ok); err != nil {
9277			return err
9278		}
9279	}
9280
9281	if v.ClusterSnapshotCopyStatus != nil {
9282		ok := object.Key("ClusterSnapshotCopyStatus")
9283		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v.ClusterSnapshotCopyStatus, ok); err != nil {
9284			return err
9285		}
9286	}
9287
9288	if v.ClusterStatus != nil {
9289		ok := object.Key("ClusterStatus")
9290		ok.String(*v.ClusterStatus)
9291	}
9292
9293	if v.ClusterSubnetGroupName != nil {
9294		ok := object.Key("ClusterSubnetGroupName")
9295		ok.String(*v.ClusterSubnetGroupName)
9296	}
9297
9298	if v.ClusterVersion != nil {
9299		ok := object.Key("ClusterVersion")
9300		ok.String(*v.ClusterVersion)
9301	}
9302
9303	if v.DBName != nil {
9304		ok := object.Key("DBName")
9305		ok.String(*v.DBName)
9306	}
9307
9308	if v.DeferredMaintenanceWindows != nil {
9309		ok := object.Key("DeferredMaintenanceWindows")
9310		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v.DeferredMaintenanceWindows, ok); err != nil {
9311			return err
9312		}
9313	}
9314
9315	if v.ElasticIpStatus != nil {
9316		ok := object.Key("ElasticIpStatus")
9317		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterElasticIpStatus(v.ElasticIpStatus, ok); err != nil {
9318			return err
9319		}
9320	}
9321
9322	if v.ElasticResizeNumberOfNodeOptions != nil {
9323		ok := object.Key("ElasticResizeNumberOfNodeOptions")
9324		ok.String(*v.ElasticResizeNumberOfNodeOptions)
9325	}
9326
9327	if v.Encrypted {
9328		ok := object.Key("Encrypted")
9329		ok.Boolean(v.Encrypted)
9330	}
9331
9332	if v.Endpoint != nil {
9333		ok := object.Key("Endpoint")
9334		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterEndpoint(v.Endpoint, ok); err != nil {
9335			return err
9336		}
9337	}
9338
9339	if v.EnhancedVpcRouting {
9340		ok := object.Key("EnhancedVpcRouting")
9341		ok.Boolean(v.EnhancedVpcRouting)
9342	}
9343
9344	if v.ExpectedNextSnapshotScheduleTime != nil {
9345		ok := object.Key("ExpectedNextSnapshotScheduleTime")
9346		ok.String(*v.ExpectedNextSnapshotScheduleTime)
9347	}
9348
9349	if v.ExpectedNextSnapshotScheduleTimeStatus != nil {
9350		ok := object.Key("ExpectedNextSnapshotScheduleTimeStatus")
9351		ok.String(*v.ExpectedNextSnapshotScheduleTimeStatus)
9352	}
9353
9354	if v.HsmStatus != nil {
9355		ok := object.Key("HsmStatus")
9356		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterHsmStatus(v.HsmStatus, ok); err != nil {
9357			return err
9358		}
9359	}
9360
9361	if v.IamRoles != nil {
9362		ok := object.Key("IamRoles")
9363		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterIamRoles(v.IamRoles, ok); err != nil {
9364			return err
9365		}
9366	}
9367
9368	if v.KmsKeyId != nil {
9369		ok := object.Key("KmsKeyId")
9370		ok.String(*v.KmsKeyId)
9371	}
9372
9373	if v.MaintenanceTrackName != nil {
9374		ok := object.Key("MaintenanceTrackName")
9375		ok.String(*v.MaintenanceTrackName)
9376	}
9377
9378	if v.ManualSnapshotRetentionPeriod != 0 {
9379		ok := object.Key("ManualSnapshotRetentionPeriod")
9380		ok.Integer(v.ManualSnapshotRetentionPeriod)
9381	}
9382
9383	if v.MasterUsername != nil {
9384		ok := object.Key("MasterUsername")
9385		ok.String(*v.MasterUsername)
9386	}
9387
9388	if v.NextMaintenanceWindowStartTime != nil {
9389		ok := object.Key("NextMaintenanceWindowStartTime")
9390		ok.String(*v.NextMaintenanceWindowStartTime)
9391	}
9392
9393	if v.NodeType != nil {
9394		ok := object.Key("NodeType")
9395		ok.String(*v.NodeType)
9396	}
9397
9398	if v.NumberOfNodes != 0 {
9399		ok := object.Key("NumberOfNodes")
9400		ok.Integer(v.NumberOfNodes)
9401	}
9402
9403	if v.PendingActions != nil {
9404		ok := object.Key("PendingActions")
9405		if err := awsRestjson1_serializeDocumentStringList(v.PendingActions, ok); err != nil {
9406			return err
9407		}
9408	}
9409
9410	if v.PendingModifiedValues != nil {
9411		ok := object.Key("PendingModifiedValues")
9412		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterPendingModifiedValues(v.PendingModifiedValues, ok); err != nil {
9413			return err
9414		}
9415	}
9416
9417	if v.PreferredMaintenanceWindow != nil {
9418		ok := object.Key("PreferredMaintenanceWindow")
9419		ok.String(*v.PreferredMaintenanceWindow)
9420	}
9421
9422	if v.PubliclyAccessible {
9423		ok := object.Key("PubliclyAccessible")
9424		ok.Boolean(v.PubliclyAccessible)
9425	}
9426
9427	if v.ResizeInfo != nil {
9428		ok := object.Key("ResizeInfo")
9429		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterResizeInfo(v.ResizeInfo, ok); err != nil {
9430			return err
9431		}
9432	}
9433
9434	if v.RestoreStatus != nil {
9435		ok := object.Key("RestoreStatus")
9436		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterRestoreStatus(v.RestoreStatus, ok); err != nil {
9437			return err
9438		}
9439	}
9440
9441	if v.SnapshotScheduleIdentifier != nil {
9442		ok := object.Key("SnapshotScheduleIdentifier")
9443		ok.String(*v.SnapshotScheduleIdentifier)
9444	}
9445
9446	if v.SnapshotScheduleState != nil {
9447		ok := object.Key("SnapshotScheduleState")
9448		ok.String(*v.SnapshotScheduleState)
9449	}
9450
9451	if v.VpcId != nil {
9452		ok := object.Key("VpcId")
9453		ok.String(*v.VpcId)
9454	}
9455
9456	if v.VpcSecurityGroups != nil {
9457		ok := object.Key("VpcSecurityGroups")
9458		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
9459			return err
9460		}
9461	}
9462
9463	return nil
9464}
9465
9466func awsRestjson1_serializeDocumentAwsRedshiftClusterElasticIpStatus(v *types.AwsRedshiftClusterElasticIpStatus, value smithyjson.Value) error {
9467	object := value.Object()
9468	defer object.Close()
9469
9470	if v.ElasticIp != nil {
9471		ok := object.Key("ElasticIp")
9472		ok.String(*v.ElasticIp)
9473	}
9474
9475	if v.Status != nil {
9476		ok := object.Key("Status")
9477		ok.String(*v.Status)
9478	}
9479
9480	return nil
9481}
9482
9483func awsRestjson1_serializeDocumentAwsRedshiftClusterEndpoint(v *types.AwsRedshiftClusterEndpoint, value smithyjson.Value) error {
9484	object := value.Object()
9485	defer object.Close()
9486
9487	if v.Address != nil {
9488		ok := object.Key("Address")
9489		ok.String(*v.Address)
9490	}
9491
9492	if v.Port != 0 {
9493		ok := object.Key("Port")
9494		ok.Integer(v.Port)
9495	}
9496
9497	return nil
9498}
9499
9500func awsRestjson1_serializeDocumentAwsRedshiftClusterHsmStatus(v *types.AwsRedshiftClusterHsmStatus, value smithyjson.Value) error {
9501	object := value.Object()
9502	defer object.Close()
9503
9504	if v.HsmClientCertificateIdentifier != nil {
9505		ok := object.Key("HsmClientCertificateIdentifier")
9506		ok.String(*v.HsmClientCertificateIdentifier)
9507	}
9508
9509	if v.HsmConfigurationIdentifier != nil {
9510		ok := object.Key("HsmConfigurationIdentifier")
9511		ok.String(*v.HsmConfigurationIdentifier)
9512	}
9513
9514	if v.Status != nil {
9515		ok := object.Key("Status")
9516		ok.String(*v.Status)
9517	}
9518
9519	return nil
9520}
9521
9522func awsRestjson1_serializeDocumentAwsRedshiftClusterIamRole(v *types.AwsRedshiftClusterIamRole, value smithyjson.Value) error {
9523	object := value.Object()
9524	defer object.Close()
9525
9526	if v.ApplyStatus != nil {
9527		ok := object.Key("ApplyStatus")
9528		ok.String(*v.ApplyStatus)
9529	}
9530
9531	if v.IamRoleArn != nil {
9532		ok := object.Key("IamRoleArn")
9533		ok.String(*v.IamRoleArn)
9534	}
9535
9536	return nil
9537}
9538
9539func awsRestjson1_serializeDocumentAwsRedshiftClusterIamRoles(v []types.AwsRedshiftClusterIamRole, value smithyjson.Value) error {
9540	array := value.Array()
9541	defer array.Close()
9542
9543	for i := range v {
9544		av := array.Value()
9545		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterIamRole(&v[i], av); err != nil {
9546			return err
9547		}
9548	}
9549	return nil
9550}
9551
9552func awsRestjson1_serializeDocumentAwsRedshiftClusterPendingModifiedValues(v *types.AwsRedshiftClusterPendingModifiedValues, value smithyjson.Value) error {
9553	object := value.Object()
9554	defer object.Close()
9555
9556	if v.AutomatedSnapshotRetentionPeriod != 0 {
9557		ok := object.Key("AutomatedSnapshotRetentionPeriod")
9558		ok.Integer(v.AutomatedSnapshotRetentionPeriod)
9559	}
9560
9561	if v.ClusterIdentifier != nil {
9562		ok := object.Key("ClusterIdentifier")
9563		ok.String(*v.ClusterIdentifier)
9564	}
9565
9566	if v.ClusterType != nil {
9567		ok := object.Key("ClusterType")
9568		ok.String(*v.ClusterType)
9569	}
9570
9571	if v.ClusterVersion != nil {
9572		ok := object.Key("ClusterVersion")
9573		ok.String(*v.ClusterVersion)
9574	}
9575
9576	if v.EncryptionType != nil {
9577		ok := object.Key("EncryptionType")
9578		ok.String(*v.EncryptionType)
9579	}
9580
9581	if v.EnhancedVpcRouting {
9582		ok := object.Key("EnhancedVpcRouting")
9583		ok.Boolean(v.EnhancedVpcRouting)
9584	}
9585
9586	if v.MaintenanceTrackName != nil {
9587		ok := object.Key("MaintenanceTrackName")
9588		ok.String(*v.MaintenanceTrackName)
9589	}
9590
9591	if v.MasterUserPassword != nil {
9592		ok := object.Key("MasterUserPassword")
9593		ok.String(*v.MasterUserPassword)
9594	}
9595
9596	if v.NodeType != nil {
9597		ok := object.Key("NodeType")
9598		ok.String(*v.NodeType)
9599	}
9600
9601	if v.NumberOfNodes != 0 {
9602		ok := object.Key("NumberOfNodes")
9603		ok.Integer(v.NumberOfNodes)
9604	}
9605
9606	if v.PubliclyAccessible {
9607		ok := object.Key("PubliclyAccessible")
9608		ok.Boolean(v.PubliclyAccessible)
9609	}
9610
9611	return nil
9612}
9613
9614func awsRestjson1_serializeDocumentAwsRedshiftClusterResizeInfo(v *types.AwsRedshiftClusterResizeInfo, value smithyjson.Value) error {
9615	object := value.Object()
9616	defer object.Close()
9617
9618	if v.AllowCancelResize {
9619		ok := object.Key("AllowCancelResize")
9620		ok.Boolean(v.AllowCancelResize)
9621	}
9622
9623	if v.ResizeType != nil {
9624		ok := object.Key("ResizeType")
9625		ok.String(*v.ResizeType)
9626	}
9627
9628	return nil
9629}
9630
9631func awsRestjson1_serializeDocumentAwsRedshiftClusterRestoreStatus(v *types.AwsRedshiftClusterRestoreStatus, value smithyjson.Value) error {
9632	object := value.Object()
9633	defer object.Close()
9634
9635	if v.CurrentRestoreRateInMegaBytesPerSecond != 0 {
9636		ok := object.Key("CurrentRestoreRateInMegaBytesPerSecond")
9637		ok.Double(v.CurrentRestoreRateInMegaBytesPerSecond)
9638	}
9639
9640	if v.ElapsedTimeInSeconds != 0 {
9641		ok := object.Key("ElapsedTimeInSeconds")
9642		ok.Long(v.ElapsedTimeInSeconds)
9643	}
9644
9645	if v.EstimatedTimeToCompletionInSeconds != 0 {
9646		ok := object.Key("EstimatedTimeToCompletionInSeconds")
9647		ok.Long(v.EstimatedTimeToCompletionInSeconds)
9648	}
9649
9650	if v.ProgressInMegaBytes != 0 {
9651		ok := object.Key("ProgressInMegaBytes")
9652		ok.Long(v.ProgressInMegaBytes)
9653	}
9654
9655	if v.SnapshotSizeInMegaBytes != 0 {
9656		ok := object.Key("SnapshotSizeInMegaBytes")
9657		ok.Long(v.SnapshotSizeInMegaBytes)
9658	}
9659
9660	if v.Status != nil {
9661		ok := object.Key("Status")
9662		ok.String(*v.Status)
9663	}
9664
9665	return nil
9666}
9667
9668func awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroup(v *types.AwsRedshiftClusterVpcSecurityGroup, value smithyjson.Value) error {
9669	object := value.Object()
9670	defer object.Close()
9671
9672	if v.Status != nil {
9673		ok := object.Key("Status")
9674		ok.String(*v.Status)
9675	}
9676
9677	if v.VpcSecurityGroupId != nil {
9678		ok := object.Key("VpcSecurityGroupId")
9679		ok.String(*v.VpcSecurityGroupId)
9680	}
9681
9682	return nil
9683}
9684
9685func awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroups(v []types.AwsRedshiftClusterVpcSecurityGroup, value smithyjson.Value) error {
9686	array := value.Array()
9687	defer array.Close()
9688
9689	for i := range v {
9690		av := array.Value()
9691		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroup(&v[i], av); err != nil {
9692			return err
9693		}
9694	}
9695	return nil
9696}
9697
9698func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetails, value smithyjson.Value) error {
9699	object := value.Object()
9700	defer object.Close()
9701
9702	if v.CreatedAt != nil {
9703		ok := object.Key("CreatedAt")
9704		ok.String(*v.CreatedAt)
9705	}
9706
9707	if v.OwnerId != nil {
9708		ok := object.Key("OwnerId")
9709		ok.String(*v.OwnerId)
9710	}
9711
9712	if v.OwnerName != nil {
9713		ok := object.Key("OwnerName")
9714		ok.String(*v.OwnerName)
9715	}
9716
9717	if v.ServerSideEncryptionConfiguration != nil {
9718		ok := object.Key("ServerSideEncryptionConfiguration")
9719		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v.ServerSideEncryptionConfiguration, ok); err != nil {
9720			return err
9721		}
9722	}
9723
9724	return nil
9725}
9726
9727func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionByDefault(v *types.AwsS3BucketServerSideEncryptionByDefault, value smithyjson.Value) error {
9728	object := value.Object()
9729	defer object.Close()
9730
9731	if v.KMSMasterKeyID != nil {
9732		ok := object.Key("KMSMasterKeyID")
9733		ok.String(*v.KMSMasterKeyID)
9734	}
9735
9736	if v.SSEAlgorithm != nil {
9737		ok := object.Key("SSEAlgorithm")
9738		ok.String(*v.SSEAlgorithm)
9739	}
9740
9741	return nil
9742}
9743
9744func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v *types.AwsS3BucketServerSideEncryptionConfiguration, value smithyjson.Value) error {
9745	object := value.Object()
9746	defer object.Close()
9747
9748	if v.Rules != nil {
9749		ok := object.Key("Rules")
9750		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRules(v.Rules, ok); err != nil {
9751			return err
9752		}
9753	}
9754
9755	return nil
9756}
9757
9758func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRule(v *types.AwsS3BucketServerSideEncryptionRule, value smithyjson.Value) error {
9759	object := value.Object()
9760	defer object.Close()
9761
9762	if v.ApplyServerSideEncryptionByDefault != nil {
9763		ok := object.Key("ApplyServerSideEncryptionByDefault")
9764		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionByDefault(v.ApplyServerSideEncryptionByDefault, ok); err != nil {
9765			return err
9766		}
9767	}
9768
9769	return nil
9770}
9771
9772func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRules(v []types.AwsS3BucketServerSideEncryptionRule, value smithyjson.Value) error {
9773	array := value.Array()
9774	defer array.Close()
9775
9776	for i := range v {
9777		av := array.Value()
9778		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRule(&v[i], av); err != nil {
9779			return err
9780		}
9781	}
9782	return nil
9783}
9784
9785func awsRestjson1_serializeDocumentAwsS3ObjectDetails(v *types.AwsS3ObjectDetails, value smithyjson.Value) error {
9786	object := value.Object()
9787	defer object.Close()
9788
9789	if v.ContentType != nil {
9790		ok := object.Key("ContentType")
9791		ok.String(*v.ContentType)
9792	}
9793
9794	if v.ETag != nil {
9795		ok := object.Key("ETag")
9796		ok.String(*v.ETag)
9797	}
9798
9799	if v.LastModified != nil {
9800		ok := object.Key("LastModified")
9801		ok.String(*v.LastModified)
9802	}
9803
9804	if v.ServerSideEncryption != nil {
9805		ok := object.Key("ServerSideEncryption")
9806		ok.String(*v.ServerSideEncryption)
9807	}
9808
9809	if v.SSEKMSKeyId != nil {
9810		ok := object.Key("SSEKMSKeyId")
9811		ok.String(*v.SSEKMSKeyId)
9812	}
9813
9814	if v.VersionId != nil {
9815		ok := object.Key("VersionId")
9816		ok.String(*v.VersionId)
9817	}
9818
9819	return nil
9820}
9821
9822func awsRestjson1_serializeDocumentAwsSecretsManagerSecretDetails(v *types.AwsSecretsManagerSecretDetails, value smithyjson.Value) error {
9823	object := value.Object()
9824	defer object.Close()
9825
9826	if v.Deleted {
9827		ok := object.Key("Deleted")
9828		ok.Boolean(v.Deleted)
9829	}
9830
9831	if v.Description != nil {
9832		ok := object.Key("Description")
9833		ok.String(*v.Description)
9834	}
9835
9836	if v.KmsKeyId != nil {
9837		ok := object.Key("KmsKeyId")
9838		ok.String(*v.KmsKeyId)
9839	}
9840
9841	if v.Name != nil {
9842		ok := object.Key("Name")
9843		ok.String(*v.Name)
9844	}
9845
9846	if v.RotationEnabled {
9847		ok := object.Key("RotationEnabled")
9848		ok.Boolean(v.RotationEnabled)
9849	}
9850
9851	if v.RotationLambdaArn != nil {
9852		ok := object.Key("RotationLambdaArn")
9853		ok.String(*v.RotationLambdaArn)
9854	}
9855
9856	if v.RotationOccurredWithinFrequency {
9857		ok := object.Key("RotationOccurredWithinFrequency")
9858		ok.Boolean(v.RotationOccurredWithinFrequency)
9859	}
9860
9861	if v.RotationRules != nil {
9862		ok := object.Key("RotationRules")
9863		if err := awsRestjson1_serializeDocumentAwsSecretsManagerSecretRotationRules(v.RotationRules, ok); err != nil {
9864			return err
9865		}
9866	}
9867
9868	return nil
9869}
9870
9871func awsRestjson1_serializeDocumentAwsSecretsManagerSecretRotationRules(v *types.AwsSecretsManagerSecretRotationRules, value smithyjson.Value) error {
9872	object := value.Object()
9873	defer object.Close()
9874
9875	if v.AutomaticallyAfterDays != 0 {
9876		ok := object.Key("AutomaticallyAfterDays")
9877		ok.Integer(v.AutomaticallyAfterDays)
9878	}
9879
9880	return nil
9881}
9882
9883func awsRestjson1_serializeDocumentAwsSecurityFinding(v *types.AwsSecurityFinding, value smithyjson.Value) error {
9884	object := value.Object()
9885	defer object.Close()
9886
9887	if v.AwsAccountId != nil {
9888		ok := object.Key("AwsAccountId")
9889		ok.String(*v.AwsAccountId)
9890	}
9891
9892	if v.Compliance != nil {
9893		ok := object.Key("Compliance")
9894		if err := awsRestjson1_serializeDocumentCompliance(v.Compliance, ok); err != nil {
9895			return err
9896		}
9897	}
9898
9899	if v.Confidence != 0 {
9900		ok := object.Key("Confidence")
9901		ok.Integer(v.Confidence)
9902	}
9903
9904	if v.CreatedAt != nil {
9905		ok := object.Key("CreatedAt")
9906		ok.String(*v.CreatedAt)
9907	}
9908
9909	if v.Criticality != 0 {
9910		ok := object.Key("Criticality")
9911		ok.Integer(v.Criticality)
9912	}
9913
9914	if v.Description != nil {
9915		ok := object.Key("Description")
9916		ok.String(*v.Description)
9917	}
9918
9919	if v.FirstObservedAt != nil {
9920		ok := object.Key("FirstObservedAt")
9921		ok.String(*v.FirstObservedAt)
9922	}
9923
9924	if v.GeneratorId != nil {
9925		ok := object.Key("GeneratorId")
9926		ok.String(*v.GeneratorId)
9927	}
9928
9929	if v.Id != nil {
9930		ok := object.Key("Id")
9931		ok.String(*v.Id)
9932	}
9933
9934	if v.LastObservedAt != nil {
9935		ok := object.Key("LastObservedAt")
9936		ok.String(*v.LastObservedAt)
9937	}
9938
9939	if v.Malware != nil {
9940		ok := object.Key("Malware")
9941		if err := awsRestjson1_serializeDocumentMalwareList(v.Malware, ok); err != nil {
9942			return err
9943		}
9944	}
9945
9946	if v.Network != nil {
9947		ok := object.Key("Network")
9948		if err := awsRestjson1_serializeDocumentNetwork(v.Network, ok); err != nil {
9949			return err
9950		}
9951	}
9952
9953	if v.NetworkPath != nil {
9954		ok := object.Key("NetworkPath")
9955		if err := awsRestjson1_serializeDocumentNetworkPathList(v.NetworkPath, ok); err != nil {
9956			return err
9957		}
9958	}
9959
9960	if v.Note != nil {
9961		ok := object.Key("Note")
9962		if err := awsRestjson1_serializeDocumentNote(v.Note, ok); err != nil {
9963			return err
9964		}
9965	}
9966
9967	if v.PatchSummary != nil {
9968		ok := object.Key("PatchSummary")
9969		if err := awsRestjson1_serializeDocumentPatchSummary(v.PatchSummary, ok); err != nil {
9970			return err
9971		}
9972	}
9973
9974	if v.Process != nil {
9975		ok := object.Key("Process")
9976		if err := awsRestjson1_serializeDocumentProcessDetails(v.Process, ok); err != nil {
9977			return err
9978		}
9979	}
9980
9981	if v.ProductArn != nil {
9982		ok := object.Key("ProductArn")
9983		ok.String(*v.ProductArn)
9984	}
9985
9986	if v.ProductFields != nil {
9987		ok := object.Key("ProductFields")
9988		if err := awsRestjson1_serializeDocumentFieldMap(v.ProductFields, ok); err != nil {
9989			return err
9990		}
9991	}
9992
9993	if len(v.RecordState) > 0 {
9994		ok := object.Key("RecordState")
9995		ok.String(string(v.RecordState))
9996	}
9997
9998	if v.RelatedFindings != nil {
9999		ok := object.Key("RelatedFindings")
10000		if err := awsRestjson1_serializeDocumentRelatedFindingList(v.RelatedFindings, ok); err != nil {
10001			return err
10002		}
10003	}
10004
10005	if v.Remediation != nil {
10006		ok := object.Key("Remediation")
10007		if err := awsRestjson1_serializeDocumentRemediation(v.Remediation, ok); err != nil {
10008			return err
10009		}
10010	}
10011
10012	if v.Resources != nil {
10013		ok := object.Key("Resources")
10014		if err := awsRestjson1_serializeDocumentResourceList(v.Resources, ok); err != nil {
10015			return err
10016		}
10017	}
10018
10019	if v.SchemaVersion != nil {
10020		ok := object.Key("SchemaVersion")
10021		ok.String(*v.SchemaVersion)
10022	}
10023
10024	if v.Severity != nil {
10025		ok := object.Key("Severity")
10026		if err := awsRestjson1_serializeDocumentSeverity(v.Severity, ok); err != nil {
10027			return err
10028		}
10029	}
10030
10031	if v.SourceUrl != nil {
10032		ok := object.Key("SourceUrl")
10033		ok.String(*v.SourceUrl)
10034	}
10035
10036	if v.ThreatIntelIndicators != nil {
10037		ok := object.Key("ThreatIntelIndicators")
10038		if err := awsRestjson1_serializeDocumentThreatIntelIndicatorList(v.ThreatIntelIndicators, ok); err != nil {
10039			return err
10040		}
10041	}
10042
10043	if v.Title != nil {
10044		ok := object.Key("Title")
10045		ok.String(*v.Title)
10046	}
10047
10048	if v.Types != nil {
10049		ok := object.Key("Types")
10050		if err := awsRestjson1_serializeDocumentTypeList(v.Types, ok); err != nil {
10051			return err
10052		}
10053	}
10054
10055	if v.UpdatedAt != nil {
10056		ok := object.Key("UpdatedAt")
10057		ok.String(*v.UpdatedAt)
10058	}
10059
10060	if v.UserDefinedFields != nil {
10061		ok := object.Key("UserDefinedFields")
10062		if err := awsRestjson1_serializeDocumentFieldMap(v.UserDefinedFields, ok); err != nil {
10063			return err
10064		}
10065	}
10066
10067	if len(v.VerificationState) > 0 {
10068		ok := object.Key("VerificationState")
10069		ok.String(string(v.VerificationState))
10070	}
10071
10072	if v.Vulnerabilities != nil {
10073		ok := object.Key("Vulnerabilities")
10074		if err := awsRestjson1_serializeDocumentVulnerabilityList(v.Vulnerabilities, ok); err != nil {
10075			return err
10076		}
10077	}
10078
10079	if v.Workflow != nil {
10080		ok := object.Key("Workflow")
10081		if err := awsRestjson1_serializeDocumentWorkflow(v.Workflow, ok); err != nil {
10082			return err
10083		}
10084	}
10085
10086	if len(v.WorkflowState) > 0 {
10087		ok := object.Key("WorkflowState")
10088		ok.String(string(v.WorkflowState))
10089	}
10090
10091	return nil
10092}
10093
10094func awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v *types.AwsSecurityFindingFilters, value smithyjson.Value) error {
10095	object := value.Object()
10096	defer object.Close()
10097
10098	if v.AwsAccountId != nil {
10099		ok := object.Key("AwsAccountId")
10100		if err := awsRestjson1_serializeDocumentStringFilterList(v.AwsAccountId, ok); err != nil {
10101			return err
10102		}
10103	}
10104
10105	if v.CompanyName != nil {
10106		ok := object.Key("CompanyName")
10107		if err := awsRestjson1_serializeDocumentStringFilterList(v.CompanyName, ok); err != nil {
10108			return err
10109		}
10110	}
10111
10112	if v.ComplianceStatus != nil {
10113		ok := object.Key("ComplianceStatus")
10114		if err := awsRestjson1_serializeDocumentStringFilterList(v.ComplianceStatus, ok); err != nil {
10115			return err
10116		}
10117	}
10118
10119	if v.Confidence != nil {
10120		ok := object.Key("Confidence")
10121		if err := awsRestjson1_serializeDocumentNumberFilterList(v.Confidence, ok); err != nil {
10122			return err
10123		}
10124	}
10125
10126	if v.CreatedAt != nil {
10127		ok := object.Key("CreatedAt")
10128		if err := awsRestjson1_serializeDocumentDateFilterList(v.CreatedAt, ok); err != nil {
10129			return err
10130		}
10131	}
10132
10133	if v.Criticality != nil {
10134		ok := object.Key("Criticality")
10135		if err := awsRestjson1_serializeDocumentNumberFilterList(v.Criticality, ok); err != nil {
10136			return err
10137		}
10138	}
10139
10140	if v.Description != nil {
10141		ok := object.Key("Description")
10142		if err := awsRestjson1_serializeDocumentStringFilterList(v.Description, ok); err != nil {
10143			return err
10144		}
10145	}
10146
10147	if v.FirstObservedAt != nil {
10148		ok := object.Key("FirstObservedAt")
10149		if err := awsRestjson1_serializeDocumentDateFilterList(v.FirstObservedAt, ok); err != nil {
10150			return err
10151		}
10152	}
10153
10154	if v.GeneratorId != nil {
10155		ok := object.Key("GeneratorId")
10156		if err := awsRestjson1_serializeDocumentStringFilterList(v.GeneratorId, ok); err != nil {
10157			return err
10158		}
10159	}
10160
10161	if v.Id != nil {
10162		ok := object.Key("Id")
10163		if err := awsRestjson1_serializeDocumentStringFilterList(v.Id, ok); err != nil {
10164			return err
10165		}
10166	}
10167
10168	if v.Keyword != nil {
10169		ok := object.Key("Keyword")
10170		if err := awsRestjson1_serializeDocumentKeywordFilterList(v.Keyword, ok); err != nil {
10171			return err
10172		}
10173	}
10174
10175	if v.LastObservedAt != nil {
10176		ok := object.Key("LastObservedAt")
10177		if err := awsRestjson1_serializeDocumentDateFilterList(v.LastObservedAt, ok); err != nil {
10178			return err
10179		}
10180	}
10181
10182	if v.MalwareName != nil {
10183		ok := object.Key("MalwareName")
10184		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareName, ok); err != nil {
10185			return err
10186		}
10187	}
10188
10189	if v.MalwarePath != nil {
10190		ok := object.Key("MalwarePath")
10191		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwarePath, ok); err != nil {
10192			return err
10193		}
10194	}
10195
10196	if v.MalwareState != nil {
10197		ok := object.Key("MalwareState")
10198		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareState, ok); err != nil {
10199			return err
10200		}
10201	}
10202
10203	if v.MalwareType != nil {
10204		ok := object.Key("MalwareType")
10205		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareType, ok); err != nil {
10206			return err
10207		}
10208	}
10209
10210	if v.NetworkDestinationDomain != nil {
10211		ok := object.Key("NetworkDestinationDomain")
10212		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkDestinationDomain, ok); err != nil {
10213			return err
10214		}
10215	}
10216
10217	if v.NetworkDestinationIpV4 != nil {
10218		ok := object.Key("NetworkDestinationIpV4")
10219		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkDestinationIpV4, ok); err != nil {
10220			return err
10221		}
10222	}
10223
10224	if v.NetworkDestinationIpV6 != nil {
10225		ok := object.Key("NetworkDestinationIpV6")
10226		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkDestinationIpV6, ok); err != nil {
10227			return err
10228		}
10229	}
10230
10231	if v.NetworkDestinationPort != nil {
10232		ok := object.Key("NetworkDestinationPort")
10233		if err := awsRestjson1_serializeDocumentNumberFilterList(v.NetworkDestinationPort, ok); err != nil {
10234			return err
10235		}
10236	}
10237
10238	if v.NetworkDirection != nil {
10239		ok := object.Key("NetworkDirection")
10240		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkDirection, ok); err != nil {
10241			return err
10242		}
10243	}
10244
10245	if v.NetworkProtocol != nil {
10246		ok := object.Key("NetworkProtocol")
10247		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkProtocol, ok); err != nil {
10248			return err
10249		}
10250	}
10251
10252	if v.NetworkSourceDomain != nil {
10253		ok := object.Key("NetworkSourceDomain")
10254		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkSourceDomain, ok); err != nil {
10255			return err
10256		}
10257	}
10258
10259	if v.NetworkSourceIpV4 != nil {
10260		ok := object.Key("NetworkSourceIpV4")
10261		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkSourceIpV4, ok); err != nil {
10262			return err
10263		}
10264	}
10265
10266	if v.NetworkSourceIpV6 != nil {
10267		ok := object.Key("NetworkSourceIpV6")
10268		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkSourceIpV6, ok); err != nil {
10269			return err
10270		}
10271	}
10272
10273	if v.NetworkSourceMac != nil {
10274		ok := object.Key("NetworkSourceMac")
10275		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkSourceMac, ok); err != nil {
10276			return err
10277		}
10278	}
10279
10280	if v.NetworkSourcePort != nil {
10281		ok := object.Key("NetworkSourcePort")
10282		if err := awsRestjson1_serializeDocumentNumberFilterList(v.NetworkSourcePort, ok); err != nil {
10283			return err
10284		}
10285	}
10286
10287	if v.NoteText != nil {
10288		ok := object.Key("NoteText")
10289		if err := awsRestjson1_serializeDocumentStringFilterList(v.NoteText, ok); err != nil {
10290			return err
10291		}
10292	}
10293
10294	if v.NoteUpdatedAt != nil {
10295		ok := object.Key("NoteUpdatedAt")
10296		if err := awsRestjson1_serializeDocumentDateFilterList(v.NoteUpdatedAt, ok); err != nil {
10297			return err
10298		}
10299	}
10300
10301	if v.NoteUpdatedBy != nil {
10302		ok := object.Key("NoteUpdatedBy")
10303		if err := awsRestjson1_serializeDocumentStringFilterList(v.NoteUpdatedBy, ok); err != nil {
10304			return err
10305		}
10306	}
10307
10308	if v.ProcessLaunchedAt != nil {
10309		ok := object.Key("ProcessLaunchedAt")
10310		if err := awsRestjson1_serializeDocumentDateFilterList(v.ProcessLaunchedAt, ok); err != nil {
10311			return err
10312		}
10313	}
10314
10315	if v.ProcessName != nil {
10316		ok := object.Key("ProcessName")
10317		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProcessName, ok); err != nil {
10318			return err
10319		}
10320	}
10321
10322	if v.ProcessParentPid != nil {
10323		ok := object.Key("ProcessParentPid")
10324		if err := awsRestjson1_serializeDocumentNumberFilterList(v.ProcessParentPid, ok); err != nil {
10325			return err
10326		}
10327	}
10328
10329	if v.ProcessPath != nil {
10330		ok := object.Key("ProcessPath")
10331		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProcessPath, ok); err != nil {
10332			return err
10333		}
10334	}
10335
10336	if v.ProcessPid != nil {
10337		ok := object.Key("ProcessPid")
10338		if err := awsRestjson1_serializeDocumentNumberFilterList(v.ProcessPid, ok); err != nil {
10339			return err
10340		}
10341	}
10342
10343	if v.ProcessTerminatedAt != nil {
10344		ok := object.Key("ProcessTerminatedAt")
10345		if err := awsRestjson1_serializeDocumentDateFilterList(v.ProcessTerminatedAt, ok); err != nil {
10346			return err
10347		}
10348	}
10349
10350	if v.ProductArn != nil {
10351		ok := object.Key("ProductArn")
10352		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProductArn, ok); err != nil {
10353			return err
10354		}
10355	}
10356
10357	if v.ProductFields != nil {
10358		ok := object.Key("ProductFields")
10359		if err := awsRestjson1_serializeDocumentMapFilterList(v.ProductFields, ok); err != nil {
10360			return err
10361		}
10362	}
10363
10364	if v.ProductName != nil {
10365		ok := object.Key("ProductName")
10366		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProductName, ok); err != nil {
10367			return err
10368		}
10369	}
10370
10371	if v.RecommendationText != nil {
10372		ok := object.Key("RecommendationText")
10373		if err := awsRestjson1_serializeDocumentStringFilterList(v.RecommendationText, ok); err != nil {
10374			return err
10375		}
10376	}
10377
10378	if v.RecordState != nil {
10379		ok := object.Key("RecordState")
10380		if err := awsRestjson1_serializeDocumentStringFilterList(v.RecordState, ok); err != nil {
10381			return err
10382		}
10383	}
10384
10385	if v.RelatedFindingsId != nil {
10386		ok := object.Key("RelatedFindingsId")
10387		if err := awsRestjson1_serializeDocumentStringFilterList(v.RelatedFindingsId, ok); err != nil {
10388			return err
10389		}
10390	}
10391
10392	if v.RelatedFindingsProductArn != nil {
10393		ok := object.Key("RelatedFindingsProductArn")
10394		if err := awsRestjson1_serializeDocumentStringFilterList(v.RelatedFindingsProductArn, ok); err != nil {
10395			return err
10396		}
10397	}
10398
10399	if v.ResourceAwsEc2InstanceIamInstanceProfileArn != nil {
10400		ok := object.Key("ResourceAwsEc2InstanceIamInstanceProfileArn")
10401		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceIamInstanceProfileArn, ok); err != nil {
10402			return err
10403		}
10404	}
10405
10406	if v.ResourceAwsEc2InstanceImageId != nil {
10407		ok := object.Key("ResourceAwsEc2InstanceImageId")
10408		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceImageId, ok); err != nil {
10409			return err
10410		}
10411	}
10412
10413	if v.ResourceAwsEc2InstanceIpV4Addresses != nil {
10414		ok := object.Key("ResourceAwsEc2InstanceIpV4Addresses")
10415		if err := awsRestjson1_serializeDocumentIpFilterList(v.ResourceAwsEc2InstanceIpV4Addresses, ok); err != nil {
10416			return err
10417		}
10418	}
10419
10420	if v.ResourceAwsEc2InstanceIpV6Addresses != nil {
10421		ok := object.Key("ResourceAwsEc2InstanceIpV6Addresses")
10422		if err := awsRestjson1_serializeDocumentIpFilterList(v.ResourceAwsEc2InstanceIpV6Addresses, ok); err != nil {
10423			return err
10424		}
10425	}
10426
10427	if v.ResourceAwsEc2InstanceKeyName != nil {
10428		ok := object.Key("ResourceAwsEc2InstanceKeyName")
10429		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceKeyName, ok); err != nil {
10430			return err
10431		}
10432	}
10433
10434	if v.ResourceAwsEc2InstanceLaunchedAt != nil {
10435		ok := object.Key("ResourceAwsEc2InstanceLaunchedAt")
10436		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceAwsEc2InstanceLaunchedAt, ok); err != nil {
10437			return err
10438		}
10439	}
10440
10441	if v.ResourceAwsEc2InstanceSubnetId != nil {
10442		ok := object.Key("ResourceAwsEc2InstanceSubnetId")
10443		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceSubnetId, ok); err != nil {
10444			return err
10445		}
10446	}
10447
10448	if v.ResourceAwsEc2InstanceType != nil {
10449		ok := object.Key("ResourceAwsEc2InstanceType")
10450		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceType, ok); err != nil {
10451			return err
10452		}
10453	}
10454
10455	if v.ResourceAwsEc2InstanceVpcId != nil {
10456		ok := object.Key("ResourceAwsEc2InstanceVpcId")
10457		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceVpcId, ok); err != nil {
10458			return err
10459		}
10460	}
10461
10462	if v.ResourceAwsIamAccessKeyCreatedAt != nil {
10463		ok := object.Key("ResourceAwsIamAccessKeyCreatedAt")
10464		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceAwsIamAccessKeyCreatedAt, ok); err != nil {
10465			return err
10466		}
10467	}
10468
10469	if v.ResourceAwsIamAccessKeyStatus != nil {
10470		ok := object.Key("ResourceAwsIamAccessKeyStatus")
10471		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamAccessKeyStatus, ok); err != nil {
10472			return err
10473		}
10474	}
10475
10476	if v.ResourceAwsIamAccessKeyUserName != nil {
10477		ok := object.Key("ResourceAwsIamAccessKeyUserName")
10478		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamAccessKeyUserName, ok); err != nil {
10479			return err
10480		}
10481	}
10482
10483	if v.ResourceAwsS3BucketOwnerId != nil {
10484		ok := object.Key("ResourceAwsS3BucketOwnerId")
10485		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsS3BucketOwnerId, ok); err != nil {
10486			return err
10487		}
10488	}
10489
10490	if v.ResourceAwsS3BucketOwnerName != nil {
10491		ok := object.Key("ResourceAwsS3BucketOwnerName")
10492		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsS3BucketOwnerName, ok); err != nil {
10493			return err
10494		}
10495	}
10496
10497	if v.ResourceContainerImageId != nil {
10498		ok := object.Key("ResourceContainerImageId")
10499		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerImageId, ok); err != nil {
10500			return err
10501		}
10502	}
10503
10504	if v.ResourceContainerImageName != nil {
10505		ok := object.Key("ResourceContainerImageName")
10506		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerImageName, ok); err != nil {
10507			return err
10508		}
10509	}
10510
10511	if v.ResourceContainerLaunchedAt != nil {
10512		ok := object.Key("ResourceContainerLaunchedAt")
10513		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceContainerLaunchedAt, ok); err != nil {
10514			return err
10515		}
10516	}
10517
10518	if v.ResourceContainerName != nil {
10519		ok := object.Key("ResourceContainerName")
10520		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerName, ok); err != nil {
10521			return err
10522		}
10523	}
10524
10525	if v.ResourceDetailsOther != nil {
10526		ok := object.Key("ResourceDetailsOther")
10527		if err := awsRestjson1_serializeDocumentMapFilterList(v.ResourceDetailsOther, ok); err != nil {
10528			return err
10529		}
10530	}
10531
10532	if v.ResourceId != nil {
10533		ok := object.Key("ResourceId")
10534		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceId, ok); err != nil {
10535			return err
10536		}
10537	}
10538
10539	if v.ResourcePartition != nil {
10540		ok := object.Key("ResourcePartition")
10541		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourcePartition, ok); err != nil {
10542			return err
10543		}
10544	}
10545
10546	if v.ResourceRegion != nil {
10547		ok := object.Key("ResourceRegion")
10548		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceRegion, ok); err != nil {
10549			return err
10550		}
10551	}
10552
10553	if v.ResourceTags != nil {
10554		ok := object.Key("ResourceTags")
10555		if err := awsRestjson1_serializeDocumentMapFilterList(v.ResourceTags, ok); err != nil {
10556			return err
10557		}
10558	}
10559
10560	if v.ResourceType != nil {
10561		ok := object.Key("ResourceType")
10562		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceType, ok); err != nil {
10563			return err
10564		}
10565	}
10566
10567	if v.SeverityLabel != nil {
10568		ok := object.Key("SeverityLabel")
10569		if err := awsRestjson1_serializeDocumentStringFilterList(v.SeverityLabel, ok); err != nil {
10570			return err
10571		}
10572	}
10573
10574	if v.SeverityNormalized != nil {
10575		ok := object.Key("SeverityNormalized")
10576		if err := awsRestjson1_serializeDocumentNumberFilterList(v.SeverityNormalized, ok); err != nil {
10577			return err
10578		}
10579	}
10580
10581	if v.SeverityProduct != nil {
10582		ok := object.Key("SeverityProduct")
10583		if err := awsRestjson1_serializeDocumentNumberFilterList(v.SeverityProduct, ok); err != nil {
10584			return err
10585		}
10586	}
10587
10588	if v.SourceUrl != nil {
10589		ok := object.Key("SourceUrl")
10590		if err := awsRestjson1_serializeDocumentStringFilterList(v.SourceUrl, ok); err != nil {
10591			return err
10592		}
10593	}
10594
10595	if v.ThreatIntelIndicatorCategory != nil {
10596		ok := object.Key("ThreatIntelIndicatorCategory")
10597		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorCategory, ok); err != nil {
10598			return err
10599		}
10600	}
10601
10602	if v.ThreatIntelIndicatorLastObservedAt != nil {
10603		ok := object.Key("ThreatIntelIndicatorLastObservedAt")
10604		if err := awsRestjson1_serializeDocumentDateFilterList(v.ThreatIntelIndicatorLastObservedAt, ok); err != nil {
10605			return err
10606		}
10607	}
10608
10609	if v.ThreatIntelIndicatorSource != nil {
10610		ok := object.Key("ThreatIntelIndicatorSource")
10611		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorSource, ok); err != nil {
10612			return err
10613		}
10614	}
10615
10616	if v.ThreatIntelIndicatorSourceUrl != nil {
10617		ok := object.Key("ThreatIntelIndicatorSourceUrl")
10618		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorSourceUrl, ok); err != nil {
10619			return err
10620		}
10621	}
10622
10623	if v.ThreatIntelIndicatorType != nil {
10624		ok := object.Key("ThreatIntelIndicatorType")
10625		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorType, ok); err != nil {
10626			return err
10627		}
10628	}
10629
10630	if v.ThreatIntelIndicatorValue != nil {
10631		ok := object.Key("ThreatIntelIndicatorValue")
10632		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorValue, ok); err != nil {
10633			return err
10634		}
10635	}
10636
10637	if v.Title != nil {
10638		ok := object.Key("Title")
10639		if err := awsRestjson1_serializeDocumentStringFilterList(v.Title, ok); err != nil {
10640			return err
10641		}
10642	}
10643
10644	if v.Type != nil {
10645		ok := object.Key("Type")
10646		if err := awsRestjson1_serializeDocumentStringFilterList(v.Type, ok); err != nil {
10647			return err
10648		}
10649	}
10650
10651	if v.UpdatedAt != nil {
10652		ok := object.Key("UpdatedAt")
10653		if err := awsRestjson1_serializeDocumentDateFilterList(v.UpdatedAt, ok); err != nil {
10654			return err
10655		}
10656	}
10657
10658	if v.UserDefinedFields != nil {
10659		ok := object.Key("UserDefinedFields")
10660		if err := awsRestjson1_serializeDocumentMapFilterList(v.UserDefinedFields, ok); err != nil {
10661			return err
10662		}
10663	}
10664
10665	if v.VerificationState != nil {
10666		ok := object.Key("VerificationState")
10667		if err := awsRestjson1_serializeDocumentStringFilterList(v.VerificationState, ok); err != nil {
10668			return err
10669		}
10670	}
10671
10672	if v.WorkflowState != nil {
10673		ok := object.Key("WorkflowState")
10674		if err := awsRestjson1_serializeDocumentStringFilterList(v.WorkflowState, ok); err != nil {
10675			return err
10676		}
10677	}
10678
10679	if v.WorkflowStatus != nil {
10680		ok := object.Key("WorkflowStatus")
10681		if err := awsRestjson1_serializeDocumentStringFilterList(v.WorkflowStatus, ok); err != nil {
10682			return err
10683		}
10684	}
10685
10686	return nil
10687}
10688
10689func awsRestjson1_serializeDocumentAwsSecurityFindingIdentifier(v *types.AwsSecurityFindingIdentifier, value smithyjson.Value) error {
10690	object := value.Object()
10691	defer object.Close()
10692
10693	if v.Id != nil {
10694		ok := object.Key("Id")
10695		ok.String(*v.Id)
10696	}
10697
10698	if v.ProductArn != nil {
10699		ok := object.Key("ProductArn")
10700		ok.String(*v.ProductArn)
10701	}
10702
10703	return nil
10704}
10705
10706func awsRestjson1_serializeDocumentAwsSecurityFindingIdentifierList(v []types.AwsSecurityFindingIdentifier, value smithyjson.Value) error {
10707	array := value.Array()
10708	defer array.Close()
10709
10710	for i := range v {
10711		av := array.Value()
10712		if err := awsRestjson1_serializeDocumentAwsSecurityFindingIdentifier(&v[i], av); err != nil {
10713			return err
10714		}
10715	}
10716	return nil
10717}
10718
10719func awsRestjson1_serializeDocumentAwsSecurityFindingList(v []types.AwsSecurityFinding, value smithyjson.Value) error {
10720	array := value.Array()
10721	defer array.Close()
10722
10723	for i := range v {
10724		av := array.Value()
10725		if err := awsRestjson1_serializeDocumentAwsSecurityFinding(&v[i], av); err != nil {
10726			return err
10727		}
10728	}
10729	return nil
10730}
10731
10732func awsRestjson1_serializeDocumentAwsSnsTopicDetails(v *types.AwsSnsTopicDetails, value smithyjson.Value) error {
10733	object := value.Object()
10734	defer object.Close()
10735
10736	if v.KmsMasterKeyId != nil {
10737		ok := object.Key("KmsMasterKeyId")
10738		ok.String(*v.KmsMasterKeyId)
10739	}
10740
10741	if v.Owner != nil {
10742		ok := object.Key("Owner")
10743		ok.String(*v.Owner)
10744	}
10745
10746	if v.Subscription != nil {
10747		ok := object.Key("Subscription")
10748		if err := awsRestjson1_serializeDocumentAwsSnsTopicSubscriptionList(v.Subscription, ok); err != nil {
10749			return err
10750		}
10751	}
10752
10753	if v.TopicName != nil {
10754		ok := object.Key("TopicName")
10755		ok.String(*v.TopicName)
10756	}
10757
10758	return nil
10759}
10760
10761func awsRestjson1_serializeDocumentAwsSnsTopicSubscription(v *types.AwsSnsTopicSubscription, value smithyjson.Value) error {
10762	object := value.Object()
10763	defer object.Close()
10764
10765	if v.Endpoint != nil {
10766		ok := object.Key("Endpoint")
10767		ok.String(*v.Endpoint)
10768	}
10769
10770	if v.Protocol != nil {
10771		ok := object.Key("Protocol")
10772		ok.String(*v.Protocol)
10773	}
10774
10775	return nil
10776}
10777
10778func awsRestjson1_serializeDocumentAwsSnsTopicSubscriptionList(v []types.AwsSnsTopicSubscription, value smithyjson.Value) error {
10779	array := value.Array()
10780	defer array.Close()
10781
10782	for i := range v {
10783		av := array.Value()
10784		if err := awsRestjson1_serializeDocumentAwsSnsTopicSubscription(&v[i], av); err != nil {
10785			return err
10786		}
10787	}
10788	return nil
10789}
10790
10791func awsRestjson1_serializeDocumentAwsSqsQueueDetails(v *types.AwsSqsQueueDetails, value smithyjson.Value) error {
10792	object := value.Object()
10793	defer object.Close()
10794
10795	if v.DeadLetterTargetArn != nil {
10796		ok := object.Key("DeadLetterTargetArn")
10797		ok.String(*v.DeadLetterTargetArn)
10798	}
10799
10800	if v.KmsDataKeyReusePeriodSeconds != 0 {
10801		ok := object.Key("KmsDataKeyReusePeriodSeconds")
10802		ok.Integer(v.KmsDataKeyReusePeriodSeconds)
10803	}
10804
10805	if v.KmsMasterKeyId != nil {
10806		ok := object.Key("KmsMasterKeyId")
10807		ok.String(*v.KmsMasterKeyId)
10808	}
10809
10810	if v.QueueName != nil {
10811		ok := object.Key("QueueName")
10812		ok.String(*v.QueueName)
10813	}
10814
10815	return nil
10816}
10817
10818func awsRestjson1_serializeDocumentAwsWafWebAclDetails(v *types.AwsWafWebAclDetails, value smithyjson.Value) error {
10819	object := value.Object()
10820	defer object.Close()
10821
10822	if v.DefaultAction != nil {
10823		ok := object.Key("DefaultAction")
10824		ok.String(*v.DefaultAction)
10825	}
10826
10827	if v.Name != nil {
10828		ok := object.Key("Name")
10829		ok.String(*v.Name)
10830	}
10831
10832	if v.Rules != nil {
10833		ok := object.Key("Rules")
10834		if err := awsRestjson1_serializeDocumentAwsWafWebAclRuleList(v.Rules, ok); err != nil {
10835			return err
10836		}
10837	}
10838
10839	if v.WebAclId != nil {
10840		ok := object.Key("WebAclId")
10841		ok.String(*v.WebAclId)
10842	}
10843
10844	return nil
10845}
10846
10847func awsRestjson1_serializeDocumentAwsWafWebAclRule(v *types.AwsWafWebAclRule, value smithyjson.Value) error {
10848	object := value.Object()
10849	defer object.Close()
10850
10851	if v.Action != nil {
10852		ok := object.Key("Action")
10853		if err := awsRestjson1_serializeDocumentWafAction(v.Action, ok); err != nil {
10854			return err
10855		}
10856	}
10857
10858	if v.ExcludedRules != nil {
10859		ok := object.Key("ExcludedRules")
10860		if err := awsRestjson1_serializeDocumentWafExcludedRuleList(v.ExcludedRules, ok); err != nil {
10861			return err
10862		}
10863	}
10864
10865	if v.OverrideAction != nil {
10866		ok := object.Key("OverrideAction")
10867		if err := awsRestjson1_serializeDocumentWafOverrideAction(v.OverrideAction, ok); err != nil {
10868			return err
10869		}
10870	}
10871
10872	if v.Priority != 0 {
10873		ok := object.Key("Priority")
10874		ok.Integer(v.Priority)
10875	}
10876
10877	if v.RuleId != nil {
10878		ok := object.Key("RuleId")
10879		ok.String(*v.RuleId)
10880	}
10881
10882	if v.Type != nil {
10883		ok := object.Key("Type")
10884		ok.String(*v.Type)
10885	}
10886
10887	return nil
10888}
10889
10890func awsRestjson1_serializeDocumentAwsWafWebAclRuleList(v []types.AwsWafWebAclRule, value smithyjson.Value) error {
10891	array := value.Array()
10892	defer array.Close()
10893
10894	for i := range v {
10895		av := array.Value()
10896		if err := awsRestjson1_serializeDocumentAwsWafWebAclRule(&v[i], av); err != nil {
10897			return err
10898		}
10899	}
10900	return nil
10901}
10902
10903func awsRestjson1_serializeDocumentCidrBlockAssociation(v *types.CidrBlockAssociation, value smithyjson.Value) error {
10904	object := value.Object()
10905	defer object.Close()
10906
10907	if v.AssociationId != nil {
10908		ok := object.Key("AssociationId")
10909		ok.String(*v.AssociationId)
10910	}
10911
10912	if v.CidrBlock != nil {
10913		ok := object.Key("CidrBlock")
10914		ok.String(*v.CidrBlock)
10915	}
10916
10917	if v.CidrBlockState != nil {
10918		ok := object.Key("CidrBlockState")
10919		ok.String(*v.CidrBlockState)
10920	}
10921
10922	return nil
10923}
10924
10925func awsRestjson1_serializeDocumentCidrBlockAssociationList(v []types.CidrBlockAssociation, value smithyjson.Value) error {
10926	array := value.Array()
10927	defer array.Close()
10928
10929	for i := range v {
10930		av := array.Value()
10931		if err := awsRestjson1_serializeDocumentCidrBlockAssociation(&v[i], av); err != nil {
10932			return err
10933		}
10934	}
10935	return nil
10936}
10937
10938func awsRestjson1_serializeDocumentCompliance(v *types.Compliance, value smithyjson.Value) error {
10939	object := value.Object()
10940	defer object.Close()
10941
10942	if v.RelatedRequirements != nil {
10943		ok := object.Key("RelatedRequirements")
10944		if err := awsRestjson1_serializeDocumentRelatedRequirementsList(v.RelatedRequirements, ok); err != nil {
10945			return err
10946		}
10947	}
10948
10949	if len(v.Status) > 0 {
10950		ok := object.Key("Status")
10951		ok.String(string(v.Status))
10952	}
10953
10954	if v.StatusReasons != nil {
10955		ok := object.Key("StatusReasons")
10956		if err := awsRestjson1_serializeDocumentStatusReasonsList(v.StatusReasons, ok); err != nil {
10957			return err
10958		}
10959	}
10960
10961	return nil
10962}
10963
10964func awsRestjson1_serializeDocumentContainerDetails(v *types.ContainerDetails, value smithyjson.Value) error {
10965	object := value.Object()
10966	defer object.Close()
10967
10968	if v.ImageId != nil {
10969		ok := object.Key("ImageId")
10970		ok.String(*v.ImageId)
10971	}
10972
10973	if v.ImageName != nil {
10974		ok := object.Key("ImageName")
10975		ok.String(*v.ImageName)
10976	}
10977
10978	if v.LaunchedAt != nil {
10979		ok := object.Key("LaunchedAt")
10980		ok.String(*v.LaunchedAt)
10981	}
10982
10983	if v.Name != nil {
10984		ok := object.Key("Name")
10985		ok.String(*v.Name)
10986	}
10987
10988	return nil
10989}
10990
10991func awsRestjson1_serializeDocumentCvss(v *types.Cvss, value smithyjson.Value) error {
10992	object := value.Object()
10993	defer object.Close()
10994
10995	if v.BaseScore != 0 {
10996		ok := object.Key("BaseScore")
10997		ok.Double(v.BaseScore)
10998	}
10999
11000	if v.BaseVector != nil {
11001		ok := object.Key("BaseVector")
11002		ok.String(*v.BaseVector)
11003	}
11004
11005	if v.Version != nil {
11006		ok := object.Key("Version")
11007		ok.String(*v.Version)
11008	}
11009
11010	return nil
11011}
11012
11013func awsRestjson1_serializeDocumentCvssList(v []types.Cvss, value smithyjson.Value) error {
11014	array := value.Array()
11015	defer array.Close()
11016
11017	for i := range v {
11018		av := array.Value()
11019		if err := awsRestjson1_serializeDocumentCvss(&v[i], av); err != nil {
11020			return err
11021		}
11022	}
11023	return nil
11024}
11025
11026func awsRestjson1_serializeDocumentDateFilter(v *types.DateFilter, value smithyjson.Value) error {
11027	object := value.Object()
11028	defer object.Close()
11029
11030	if v.DateRange != nil {
11031		ok := object.Key("DateRange")
11032		if err := awsRestjson1_serializeDocumentDateRange(v.DateRange, ok); err != nil {
11033			return err
11034		}
11035	}
11036
11037	if v.End != nil {
11038		ok := object.Key("End")
11039		ok.String(*v.End)
11040	}
11041
11042	if v.Start != nil {
11043		ok := object.Key("Start")
11044		ok.String(*v.Start)
11045	}
11046
11047	return nil
11048}
11049
11050func awsRestjson1_serializeDocumentDateFilterList(v []types.DateFilter, value smithyjson.Value) error {
11051	array := value.Array()
11052	defer array.Close()
11053
11054	for i := range v {
11055		av := array.Value()
11056		if err := awsRestjson1_serializeDocumentDateFilter(&v[i], av); err != nil {
11057			return err
11058		}
11059	}
11060	return nil
11061}
11062
11063func awsRestjson1_serializeDocumentDateRange(v *types.DateRange, value smithyjson.Value) error {
11064	object := value.Object()
11065	defer object.Close()
11066
11067	if len(v.Unit) > 0 {
11068		ok := object.Key("Unit")
11069		ok.String(string(v.Unit))
11070	}
11071
11072	if v.Value != 0 {
11073		ok := object.Key("Value")
11074		ok.Integer(v.Value)
11075	}
11076
11077	return nil
11078}
11079
11080func awsRestjson1_serializeDocumentFieldMap(v map[string]string, value smithyjson.Value) error {
11081	object := value.Object()
11082	defer object.Close()
11083
11084	for key := range v {
11085		om := object.Key(key)
11086		om.String(v[key])
11087	}
11088	return nil
11089}
11090
11091func awsRestjson1_serializeDocumentIpFilter(v *types.IpFilter, value smithyjson.Value) error {
11092	object := value.Object()
11093	defer object.Close()
11094
11095	if v.Cidr != nil {
11096		ok := object.Key("Cidr")
11097		ok.String(*v.Cidr)
11098	}
11099
11100	return nil
11101}
11102
11103func awsRestjson1_serializeDocumentIpFilterList(v []types.IpFilter, value smithyjson.Value) error {
11104	array := value.Array()
11105	defer array.Close()
11106
11107	for i := range v {
11108		av := array.Value()
11109		if err := awsRestjson1_serializeDocumentIpFilter(&v[i], av); err != nil {
11110			return err
11111		}
11112	}
11113	return nil
11114}
11115
11116func awsRestjson1_serializeDocumentIpv6CidrBlockAssociation(v *types.Ipv6CidrBlockAssociation, value smithyjson.Value) error {
11117	object := value.Object()
11118	defer object.Close()
11119
11120	if v.AssociationId != nil {
11121		ok := object.Key("AssociationId")
11122		ok.String(*v.AssociationId)
11123	}
11124
11125	if v.CidrBlockState != nil {
11126		ok := object.Key("CidrBlockState")
11127		ok.String(*v.CidrBlockState)
11128	}
11129
11130	if v.Ipv6CidrBlock != nil {
11131		ok := object.Key("Ipv6CidrBlock")
11132		ok.String(*v.Ipv6CidrBlock)
11133	}
11134
11135	return nil
11136}
11137
11138func awsRestjson1_serializeDocumentIpv6CidrBlockAssociationList(v []types.Ipv6CidrBlockAssociation, value smithyjson.Value) error {
11139	array := value.Array()
11140	defer array.Close()
11141
11142	for i := range v {
11143		av := array.Value()
11144		if err := awsRestjson1_serializeDocumentIpv6CidrBlockAssociation(&v[i], av); err != nil {
11145			return err
11146		}
11147	}
11148	return nil
11149}
11150
11151func awsRestjson1_serializeDocumentKeywordFilter(v *types.KeywordFilter, value smithyjson.Value) error {
11152	object := value.Object()
11153	defer object.Close()
11154
11155	if v.Value != nil {
11156		ok := object.Key("Value")
11157		ok.String(*v.Value)
11158	}
11159
11160	return nil
11161}
11162
11163func awsRestjson1_serializeDocumentKeywordFilterList(v []types.KeywordFilter, value smithyjson.Value) error {
11164	array := value.Array()
11165	defer array.Close()
11166
11167	for i := range v {
11168		av := array.Value()
11169		if err := awsRestjson1_serializeDocumentKeywordFilter(&v[i], av); err != nil {
11170			return err
11171		}
11172	}
11173	return nil
11174}
11175
11176func awsRestjson1_serializeDocumentLoadBalancerState(v *types.LoadBalancerState, value smithyjson.Value) error {
11177	object := value.Object()
11178	defer object.Close()
11179
11180	if v.Code != nil {
11181		ok := object.Key("Code")
11182		ok.String(*v.Code)
11183	}
11184
11185	if v.Reason != nil {
11186		ok := object.Key("Reason")
11187		ok.String(*v.Reason)
11188	}
11189
11190	return nil
11191}
11192
11193func awsRestjson1_serializeDocumentMalware(v *types.Malware, value smithyjson.Value) error {
11194	object := value.Object()
11195	defer object.Close()
11196
11197	if v.Name != nil {
11198		ok := object.Key("Name")
11199		ok.String(*v.Name)
11200	}
11201
11202	if v.Path != nil {
11203		ok := object.Key("Path")
11204		ok.String(*v.Path)
11205	}
11206
11207	if len(v.State) > 0 {
11208		ok := object.Key("State")
11209		ok.String(string(v.State))
11210	}
11211
11212	if len(v.Type) > 0 {
11213		ok := object.Key("Type")
11214		ok.String(string(v.Type))
11215	}
11216
11217	return nil
11218}
11219
11220func awsRestjson1_serializeDocumentMalwareList(v []types.Malware, value smithyjson.Value) error {
11221	array := value.Array()
11222	defer array.Close()
11223
11224	for i := range v {
11225		av := array.Value()
11226		if err := awsRestjson1_serializeDocumentMalware(&v[i], av); err != nil {
11227			return err
11228		}
11229	}
11230	return nil
11231}
11232
11233func awsRestjson1_serializeDocumentMapFilter(v *types.MapFilter, value smithyjson.Value) error {
11234	object := value.Object()
11235	defer object.Close()
11236
11237	if len(v.Comparison) > 0 {
11238		ok := object.Key("Comparison")
11239		ok.String(string(v.Comparison))
11240	}
11241
11242	if v.Key != nil {
11243		ok := object.Key("Key")
11244		ok.String(*v.Key)
11245	}
11246
11247	if v.Value != nil {
11248		ok := object.Key("Value")
11249		ok.String(*v.Value)
11250	}
11251
11252	return nil
11253}
11254
11255func awsRestjson1_serializeDocumentMapFilterList(v []types.MapFilter, value smithyjson.Value) error {
11256	array := value.Array()
11257	defer array.Close()
11258
11259	for i := range v {
11260		av := array.Value()
11261		if err := awsRestjson1_serializeDocumentMapFilter(&v[i], av); err != nil {
11262			return err
11263		}
11264	}
11265	return nil
11266}
11267
11268func awsRestjson1_serializeDocumentNetwork(v *types.Network, value smithyjson.Value) error {
11269	object := value.Object()
11270	defer object.Close()
11271
11272	if v.DestinationDomain != nil {
11273		ok := object.Key("DestinationDomain")
11274		ok.String(*v.DestinationDomain)
11275	}
11276
11277	if v.DestinationIpV4 != nil {
11278		ok := object.Key("DestinationIpV4")
11279		ok.String(*v.DestinationIpV4)
11280	}
11281
11282	if v.DestinationIpV6 != nil {
11283		ok := object.Key("DestinationIpV6")
11284		ok.String(*v.DestinationIpV6)
11285	}
11286
11287	if v.DestinationPort != 0 {
11288		ok := object.Key("DestinationPort")
11289		ok.Integer(v.DestinationPort)
11290	}
11291
11292	if len(v.Direction) > 0 {
11293		ok := object.Key("Direction")
11294		ok.String(string(v.Direction))
11295	}
11296
11297	if v.OpenPortRange != nil {
11298		ok := object.Key("OpenPortRange")
11299		if err := awsRestjson1_serializeDocumentPortRange(v.OpenPortRange, ok); err != nil {
11300			return err
11301		}
11302	}
11303
11304	if v.Protocol != nil {
11305		ok := object.Key("Protocol")
11306		ok.String(*v.Protocol)
11307	}
11308
11309	if v.SourceDomain != nil {
11310		ok := object.Key("SourceDomain")
11311		ok.String(*v.SourceDomain)
11312	}
11313
11314	if v.SourceIpV4 != nil {
11315		ok := object.Key("SourceIpV4")
11316		ok.String(*v.SourceIpV4)
11317	}
11318
11319	if v.SourceIpV6 != nil {
11320		ok := object.Key("SourceIpV6")
11321		ok.String(*v.SourceIpV6)
11322	}
11323
11324	if v.SourceMac != nil {
11325		ok := object.Key("SourceMac")
11326		ok.String(*v.SourceMac)
11327	}
11328
11329	if v.SourcePort != 0 {
11330		ok := object.Key("SourcePort")
11331		ok.Integer(v.SourcePort)
11332	}
11333
11334	return nil
11335}
11336
11337func awsRestjson1_serializeDocumentNetworkHeader(v *types.NetworkHeader, value smithyjson.Value) error {
11338	object := value.Object()
11339	defer object.Close()
11340
11341	if v.Destination != nil {
11342		ok := object.Key("Destination")
11343		if err := awsRestjson1_serializeDocumentNetworkPathComponentDetails(v.Destination, ok); err != nil {
11344			return err
11345		}
11346	}
11347
11348	if v.Protocol != nil {
11349		ok := object.Key("Protocol")
11350		ok.String(*v.Protocol)
11351	}
11352
11353	if v.Source != nil {
11354		ok := object.Key("Source")
11355		if err := awsRestjson1_serializeDocumentNetworkPathComponentDetails(v.Source, ok); err != nil {
11356			return err
11357		}
11358	}
11359
11360	return nil
11361}
11362
11363func awsRestjson1_serializeDocumentNetworkPathComponent(v *types.NetworkPathComponent, value smithyjson.Value) error {
11364	object := value.Object()
11365	defer object.Close()
11366
11367	if v.ComponentId != nil {
11368		ok := object.Key("ComponentId")
11369		ok.String(*v.ComponentId)
11370	}
11371
11372	if v.ComponentType != nil {
11373		ok := object.Key("ComponentType")
11374		ok.String(*v.ComponentType)
11375	}
11376
11377	if v.Egress != nil {
11378		ok := object.Key("Egress")
11379		if err := awsRestjson1_serializeDocumentNetworkHeader(v.Egress, ok); err != nil {
11380			return err
11381		}
11382	}
11383
11384	if v.Ingress != nil {
11385		ok := object.Key("Ingress")
11386		if err := awsRestjson1_serializeDocumentNetworkHeader(v.Ingress, ok); err != nil {
11387			return err
11388		}
11389	}
11390
11391	return nil
11392}
11393
11394func awsRestjson1_serializeDocumentNetworkPathComponentDetails(v *types.NetworkPathComponentDetails, value smithyjson.Value) error {
11395	object := value.Object()
11396	defer object.Close()
11397
11398	if v.Address != nil {
11399		ok := object.Key("Address")
11400		if err := awsRestjson1_serializeDocumentStringList(v.Address, ok); err != nil {
11401			return err
11402		}
11403	}
11404
11405	if v.PortRanges != nil {
11406		ok := object.Key("PortRanges")
11407		if err := awsRestjson1_serializeDocumentPortRangeList(v.PortRanges, ok); err != nil {
11408			return err
11409		}
11410	}
11411
11412	return nil
11413}
11414
11415func awsRestjson1_serializeDocumentNetworkPathList(v []types.NetworkPathComponent, value smithyjson.Value) error {
11416	array := value.Array()
11417	defer array.Close()
11418
11419	for i := range v {
11420		av := array.Value()
11421		if err := awsRestjson1_serializeDocumentNetworkPathComponent(&v[i], av); err != nil {
11422			return err
11423		}
11424	}
11425	return nil
11426}
11427
11428func awsRestjson1_serializeDocumentNonEmptyStringList(v []string, value smithyjson.Value) error {
11429	array := value.Array()
11430	defer array.Close()
11431
11432	for i := range v {
11433		av := array.Value()
11434		av.String(v[i])
11435	}
11436	return nil
11437}
11438
11439func awsRestjson1_serializeDocumentNote(v *types.Note, value smithyjson.Value) error {
11440	object := value.Object()
11441	defer object.Close()
11442
11443	if v.Text != nil {
11444		ok := object.Key("Text")
11445		ok.String(*v.Text)
11446	}
11447
11448	if v.UpdatedAt != nil {
11449		ok := object.Key("UpdatedAt")
11450		ok.String(*v.UpdatedAt)
11451	}
11452
11453	if v.UpdatedBy != nil {
11454		ok := object.Key("UpdatedBy")
11455		ok.String(*v.UpdatedBy)
11456	}
11457
11458	return nil
11459}
11460
11461func awsRestjson1_serializeDocumentNoteUpdate(v *types.NoteUpdate, value smithyjson.Value) error {
11462	object := value.Object()
11463	defer object.Close()
11464
11465	if v.Text != nil {
11466		ok := object.Key("Text")
11467		ok.String(*v.Text)
11468	}
11469
11470	if v.UpdatedBy != nil {
11471		ok := object.Key("UpdatedBy")
11472		ok.String(*v.UpdatedBy)
11473	}
11474
11475	return nil
11476}
11477
11478func awsRestjson1_serializeDocumentNumberFilter(v *types.NumberFilter, value smithyjson.Value) error {
11479	object := value.Object()
11480	defer object.Close()
11481
11482	if v.Eq != 0 {
11483		ok := object.Key("Eq")
11484		ok.Double(v.Eq)
11485	}
11486
11487	if v.Gte != 0 {
11488		ok := object.Key("Gte")
11489		ok.Double(v.Gte)
11490	}
11491
11492	if v.Lte != 0 {
11493		ok := object.Key("Lte")
11494		ok.Double(v.Lte)
11495	}
11496
11497	return nil
11498}
11499
11500func awsRestjson1_serializeDocumentNumberFilterList(v []types.NumberFilter, value smithyjson.Value) error {
11501	array := value.Array()
11502	defer array.Close()
11503
11504	for i := range v {
11505		av := array.Value()
11506		if err := awsRestjson1_serializeDocumentNumberFilter(&v[i], av); err != nil {
11507			return err
11508		}
11509	}
11510	return nil
11511}
11512
11513func awsRestjson1_serializeDocumentPatchSummary(v *types.PatchSummary, value smithyjson.Value) error {
11514	object := value.Object()
11515	defer object.Close()
11516
11517	if v.FailedCount != 0 {
11518		ok := object.Key("FailedCount")
11519		ok.Integer(v.FailedCount)
11520	}
11521
11522	if v.Id != nil {
11523		ok := object.Key("Id")
11524		ok.String(*v.Id)
11525	}
11526
11527	if v.InstalledCount != 0 {
11528		ok := object.Key("InstalledCount")
11529		ok.Integer(v.InstalledCount)
11530	}
11531
11532	if v.InstalledOtherCount != 0 {
11533		ok := object.Key("InstalledOtherCount")
11534		ok.Integer(v.InstalledOtherCount)
11535	}
11536
11537	if v.InstalledPendingReboot != 0 {
11538		ok := object.Key("InstalledPendingReboot")
11539		ok.Integer(v.InstalledPendingReboot)
11540	}
11541
11542	if v.InstalledRejectedCount != 0 {
11543		ok := object.Key("InstalledRejectedCount")
11544		ok.Integer(v.InstalledRejectedCount)
11545	}
11546
11547	if v.MissingCount != 0 {
11548		ok := object.Key("MissingCount")
11549		ok.Integer(v.MissingCount)
11550	}
11551
11552	if v.Operation != nil {
11553		ok := object.Key("Operation")
11554		ok.String(*v.Operation)
11555	}
11556
11557	if v.OperationEndTime != nil {
11558		ok := object.Key("OperationEndTime")
11559		ok.String(*v.OperationEndTime)
11560	}
11561
11562	if v.OperationStartTime != nil {
11563		ok := object.Key("OperationStartTime")
11564		ok.String(*v.OperationStartTime)
11565	}
11566
11567	if v.RebootOption != nil {
11568		ok := object.Key("RebootOption")
11569		ok.String(*v.RebootOption)
11570	}
11571
11572	return nil
11573}
11574
11575func awsRestjson1_serializeDocumentPortRange(v *types.PortRange, value smithyjson.Value) error {
11576	object := value.Object()
11577	defer object.Close()
11578
11579	if v.Begin != 0 {
11580		ok := object.Key("Begin")
11581		ok.Integer(v.Begin)
11582	}
11583
11584	if v.End != 0 {
11585		ok := object.Key("End")
11586		ok.Integer(v.End)
11587	}
11588
11589	return nil
11590}
11591
11592func awsRestjson1_serializeDocumentPortRangeList(v []types.PortRange, value smithyjson.Value) error {
11593	array := value.Array()
11594	defer array.Close()
11595
11596	for i := range v {
11597		av := array.Value()
11598		if err := awsRestjson1_serializeDocumentPortRange(&v[i], av); err != nil {
11599			return err
11600		}
11601	}
11602	return nil
11603}
11604
11605func awsRestjson1_serializeDocumentProcessDetails(v *types.ProcessDetails, value smithyjson.Value) error {
11606	object := value.Object()
11607	defer object.Close()
11608
11609	if v.LaunchedAt != nil {
11610		ok := object.Key("LaunchedAt")
11611		ok.String(*v.LaunchedAt)
11612	}
11613
11614	if v.Name != nil {
11615		ok := object.Key("Name")
11616		ok.String(*v.Name)
11617	}
11618
11619	if v.ParentPid != 0 {
11620		ok := object.Key("ParentPid")
11621		ok.Integer(v.ParentPid)
11622	}
11623
11624	if v.Path != nil {
11625		ok := object.Key("Path")
11626		ok.String(*v.Path)
11627	}
11628
11629	if v.Pid != 0 {
11630		ok := object.Key("Pid")
11631		ok.Integer(v.Pid)
11632	}
11633
11634	if v.TerminatedAt != nil {
11635		ok := object.Key("TerminatedAt")
11636		ok.String(*v.TerminatedAt)
11637	}
11638
11639	return nil
11640}
11641
11642func awsRestjson1_serializeDocumentRecommendation(v *types.Recommendation, value smithyjson.Value) error {
11643	object := value.Object()
11644	defer object.Close()
11645
11646	if v.Text != nil {
11647		ok := object.Key("Text")
11648		ok.String(*v.Text)
11649	}
11650
11651	if v.Url != nil {
11652		ok := object.Key("Url")
11653		ok.String(*v.Url)
11654	}
11655
11656	return nil
11657}
11658
11659func awsRestjson1_serializeDocumentRelatedFinding(v *types.RelatedFinding, value smithyjson.Value) error {
11660	object := value.Object()
11661	defer object.Close()
11662
11663	if v.Id != nil {
11664		ok := object.Key("Id")
11665		ok.String(*v.Id)
11666	}
11667
11668	if v.ProductArn != nil {
11669		ok := object.Key("ProductArn")
11670		ok.String(*v.ProductArn)
11671	}
11672
11673	return nil
11674}
11675
11676func awsRestjson1_serializeDocumentRelatedFindingList(v []types.RelatedFinding, value smithyjson.Value) error {
11677	array := value.Array()
11678	defer array.Close()
11679
11680	for i := range v {
11681		av := array.Value()
11682		if err := awsRestjson1_serializeDocumentRelatedFinding(&v[i], av); err != nil {
11683			return err
11684		}
11685	}
11686	return nil
11687}
11688
11689func awsRestjson1_serializeDocumentRelatedRequirementsList(v []string, value smithyjson.Value) error {
11690	array := value.Array()
11691	defer array.Close()
11692
11693	for i := range v {
11694		av := array.Value()
11695		av.String(v[i])
11696	}
11697	return nil
11698}
11699
11700func awsRestjson1_serializeDocumentRemediation(v *types.Remediation, value smithyjson.Value) error {
11701	object := value.Object()
11702	defer object.Close()
11703
11704	if v.Recommendation != nil {
11705		ok := object.Key("Recommendation")
11706		if err := awsRestjson1_serializeDocumentRecommendation(v.Recommendation, ok); err != nil {
11707			return err
11708		}
11709	}
11710
11711	return nil
11712}
11713
11714func awsRestjson1_serializeDocumentResource(v *types.Resource, value smithyjson.Value) error {
11715	object := value.Object()
11716	defer object.Close()
11717
11718	if v.Details != nil {
11719		ok := object.Key("Details")
11720		if err := awsRestjson1_serializeDocumentResourceDetails(v.Details, ok); err != nil {
11721			return err
11722		}
11723	}
11724
11725	if v.Id != nil {
11726		ok := object.Key("Id")
11727		ok.String(*v.Id)
11728	}
11729
11730	if len(v.Partition) > 0 {
11731		ok := object.Key("Partition")
11732		ok.String(string(v.Partition))
11733	}
11734
11735	if v.Region != nil {
11736		ok := object.Key("Region")
11737		ok.String(*v.Region)
11738	}
11739
11740	if v.ResourceRole != nil {
11741		ok := object.Key("ResourceRole")
11742		ok.String(*v.ResourceRole)
11743	}
11744
11745	if v.Tags != nil {
11746		ok := object.Key("Tags")
11747		if err := awsRestjson1_serializeDocumentFieldMap(v.Tags, ok); err != nil {
11748			return err
11749		}
11750	}
11751
11752	if v.Type != nil {
11753		ok := object.Key("Type")
11754		ok.String(*v.Type)
11755	}
11756
11757	return nil
11758}
11759
11760func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, value smithyjson.Value) error {
11761	object := value.Object()
11762	defer object.Close()
11763
11764	if v.AwsApiGatewayRestApi != nil {
11765		ok := object.Key("AwsApiGatewayRestApi")
11766		if err := awsRestjson1_serializeDocumentAwsApiGatewayRestApiDetails(v.AwsApiGatewayRestApi, ok); err != nil {
11767			return err
11768		}
11769	}
11770
11771	if v.AwsApiGatewayStage != nil {
11772		ok := object.Key("AwsApiGatewayStage")
11773		if err := awsRestjson1_serializeDocumentAwsApiGatewayStageDetails(v.AwsApiGatewayStage, ok); err != nil {
11774			return err
11775		}
11776	}
11777
11778	if v.AwsApiGatewayV2Api != nil {
11779		ok := object.Key("AwsApiGatewayV2Api")
11780		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2ApiDetails(v.AwsApiGatewayV2Api, ok); err != nil {
11781			return err
11782		}
11783	}
11784
11785	if v.AwsApiGatewayV2Stage != nil {
11786		ok := object.Key("AwsApiGatewayV2Stage")
11787		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2StageDetails(v.AwsApiGatewayV2Stage, ok); err != nil {
11788			return err
11789		}
11790	}
11791
11792	if v.AwsAutoScalingAutoScalingGroup != nil {
11793		ok := object.Key("AwsAutoScalingAutoScalingGroup")
11794		if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v.AwsAutoScalingAutoScalingGroup, ok); err != nil {
11795			return err
11796		}
11797	}
11798
11799	if v.AwsCertificateManagerCertificate != nil {
11800		ok := object.Key("AwsCertificateManagerCertificate")
11801		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v.AwsCertificateManagerCertificate, ok); err != nil {
11802			return err
11803		}
11804	}
11805
11806	if v.AwsCloudFrontDistribution != nil {
11807		ok := object.Key("AwsCloudFrontDistribution")
11808		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionDetails(v.AwsCloudFrontDistribution, ok); err != nil {
11809			return err
11810		}
11811	}
11812
11813	if v.AwsCloudTrailTrail != nil {
11814		ok := object.Key("AwsCloudTrailTrail")
11815		if err := awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v.AwsCloudTrailTrail, ok); err != nil {
11816			return err
11817		}
11818	}
11819
11820	if v.AwsCodeBuildProject != nil {
11821		ok := object.Key("AwsCodeBuildProject")
11822		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v.AwsCodeBuildProject, ok); err != nil {
11823			return err
11824		}
11825	}
11826
11827	if v.AwsDynamoDbTable != nil {
11828		ok := object.Key("AwsDynamoDbTable")
11829		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableDetails(v.AwsDynamoDbTable, ok); err != nil {
11830			return err
11831		}
11832	}
11833
11834	if v.AwsEc2Eip != nil {
11835		ok := object.Key("AwsEc2Eip")
11836		if err := awsRestjson1_serializeDocumentAwsEc2EipDetails(v.AwsEc2Eip, ok); err != nil {
11837			return err
11838		}
11839	}
11840
11841	if v.AwsEc2Instance != nil {
11842		ok := object.Key("AwsEc2Instance")
11843		if err := awsRestjson1_serializeDocumentAwsEc2InstanceDetails(v.AwsEc2Instance, ok); err != nil {
11844			return err
11845		}
11846	}
11847
11848	if v.AwsEc2NetworkInterface != nil {
11849		ok := object.Key("AwsEc2NetworkInterface")
11850		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceDetails(v.AwsEc2NetworkInterface, ok); err != nil {
11851			return err
11852		}
11853	}
11854
11855	if v.AwsEc2SecurityGroup != nil {
11856		ok := object.Key("AwsEc2SecurityGroup")
11857		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupDetails(v.AwsEc2SecurityGroup, ok); err != nil {
11858			return err
11859		}
11860	}
11861
11862	if v.AwsEc2Volume != nil {
11863		ok := object.Key("AwsEc2Volume")
11864		if err := awsRestjson1_serializeDocumentAwsEc2VolumeDetails(v.AwsEc2Volume, ok); err != nil {
11865			return err
11866		}
11867	}
11868
11869	if v.AwsEc2Vpc != nil {
11870		ok := object.Key("AwsEc2Vpc")
11871		if err := awsRestjson1_serializeDocumentAwsEc2VpcDetails(v.AwsEc2Vpc, ok); err != nil {
11872			return err
11873		}
11874	}
11875
11876	if v.AwsElasticsearchDomain != nil {
11877		ok := object.Key("AwsElasticsearchDomain")
11878		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainDetails(v.AwsElasticsearchDomain, ok); err != nil {
11879			return err
11880		}
11881	}
11882
11883	if v.AwsElbLoadBalancer != nil {
11884		ok := object.Key("AwsElbLoadBalancer")
11885		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerDetails(v.AwsElbLoadBalancer, ok); err != nil {
11886			return err
11887		}
11888	}
11889
11890	if v.AwsElbv2LoadBalancer != nil {
11891		ok := object.Key("AwsElbv2LoadBalancer")
11892		if err := awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v.AwsElbv2LoadBalancer, ok); err != nil {
11893			return err
11894		}
11895	}
11896
11897	if v.AwsIamAccessKey != nil {
11898		ok := object.Key("AwsIamAccessKey")
11899		if err := awsRestjson1_serializeDocumentAwsIamAccessKeyDetails(v.AwsIamAccessKey, ok); err != nil {
11900			return err
11901		}
11902	}
11903
11904	if v.AwsIamGroup != nil {
11905		ok := object.Key("AwsIamGroup")
11906		if err := awsRestjson1_serializeDocumentAwsIamGroupDetails(v.AwsIamGroup, ok); err != nil {
11907			return err
11908		}
11909	}
11910
11911	if v.AwsIamPolicy != nil {
11912		ok := object.Key("AwsIamPolicy")
11913		if err := awsRestjson1_serializeDocumentAwsIamPolicyDetails(v.AwsIamPolicy, ok); err != nil {
11914			return err
11915		}
11916	}
11917
11918	if v.AwsIamRole != nil {
11919		ok := object.Key("AwsIamRole")
11920		if err := awsRestjson1_serializeDocumentAwsIamRoleDetails(v.AwsIamRole, ok); err != nil {
11921			return err
11922		}
11923	}
11924
11925	if v.AwsIamUser != nil {
11926		ok := object.Key("AwsIamUser")
11927		if err := awsRestjson1_serializeDocumentAwsIamUserDetails(v.AwsIamUser, ok); err != nil {
11928			return err
11929		}
11930	}
11931
11932	if v.AwsKmsKey != nil {
11933		ok := object.Key("AwsKmsKey")
11934		if err := awsRestjson1_serializeDocumentAwsKmsKeyDetails(v.AwsKmsKey, ok); err != nil {
11935			return err
11936		}
11937	}
11938
11939	if v.AwsLambdaFunction != nil {
11940		ok := object.Key("AwsLambdaFunction")
11941		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionDetails(v.AwsLambdaFunction, ok); err != nil {
11942			return err
11943		}
11944	}
11945
11946	if v.AwsLambdaLayerVersion != nil {
11947		ok := object.Key("AwsLambdaLayerVersion")
11948		if err := awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v.AwsLambdaLayerVersion, ok); err != nil {
11949			return err
11950		}
11951	}
11952
11953	if v.AwsRdsDbCluster != nil {
11954		ok := object.Key("AwsRdsDbCluster")
11955		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterDetails(v.AwsRdsDbCluster, ok); err != nil {
11956			return err
11957		}
11958	}
11959
11960	if v.AwsRdsDbClusterSnapshot != nil {
11961		ok := object.Key("AwsRdsDbClusterSnapshot")
11962		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterSnapshotDetails(v.AwsRdsDbClusterSnapshot, ok); err != nil {
11963			return err
11964		}
11965	}
11966
11967	if v.AwsRdsDbInstance != nil {
11968		ok := object.Key("AwsRdsDbInstance")
11969		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceDetails(v.AwsRdsDbInstance, ok); err != nil {
11970			return err
11971		}
11972	}
11973
11974	if v.AwsRdsDbSnapshot != nil {
11975		ok := object.Key("AwsRdsDbSnapshot")
11976		if err := awsRestjson1_serializeDocumentAwsRdsDbSnapshotDetails(v.AwsRdsDbSnapshot, ok); err != nil {
11977			return err
11978		}
11979	}
11980
11981	if v.AwsRedshiftCluster != nil {
11982		ok := object.Key("AwsRedshiftCluster")
11983		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDetails(v.AwsRedshiftCluster, ok); err != nil {
11984			return err
11985		}
11986	}
11987
11988	if v.AwsS3Bucket != nil {
11989		ok := object.Key("AwsS3Bucket")
11990		if err := awsRestjson1_serializeDocumentAwsS3BucketDetails(v.AwsS3Bucket, ok); err != nil {
11991			return err
11992		}
11993	}
11994
11995	if v.AwsS3Object != nil {
11996		ok := object.Key("AwsS3Object")
11997		if err := awsRestjson1_serializeDocumentAwsS3ObjectDetails(v.AwsS3Object, ok); err != nil {
11998			return err
11999		}
12000	}
12001
12002	if v.AwsSecretsManagerSecret != nil {
12003		ok := object.Key("AwsSecretsManagerSecret")
12004		if err := awsRestjson1_serializeDocumentAwsSecretsManagerSecretDetails(v.AwsSecretsManagerSecret, ok); err != nil {
12005			return err
12006		}
12007	}
12008
12009	if v.AwsSnsTopic != nil {
12010		ok := object.Key("AwsSnsTopic")
12011		if err := awsRestjson1_serializeDocumentAwsSnsTopicDetails(v.AwsSnsTopic, ok); err != nil {
12012			return err
12013		}
12014	}
12015
12016	if v.AwsSqsQueue != nil {
12017		ok := object.Key("AwsSqsQueue")
12018		if err := awsRestjson1_serializeDocumentAwsSqsQueueDetails(v.AwsSqsQueue, ok); err != nil {
12019			return err
12020		}
12021	}
12022
12023	if v.AwsWafWebAcl != nil {
12024		ok := object.Key("AwsWafWebAcl")
12025		if err := awsRestjson1_serializeDocumentAwsWafWebAclDetails(v.AwsWafWebAcl, ok); err != nil {
12026			return err
12027		}
12028	}
12029
12030	if v.Container != nil {
12031		ok := object.Key("Container")
12032		if err := awsRestjson1_serializeDocumentContainerDetails(v.Container, ok); err != nil {
12033			return err
12034		}
12035	}
12036
12037	if v.Other != nil {
12038		ok := object.Key("Other")
12039		if err := awsRestjson1_serializeDocumentFieldMap(v.Other, ok); err != nil {
12040			return err
12041		}
12042	}
12043
12044	return nil
12045}
12046
12047func awsRestjson1_serializeDocumentResourceList(v []types.Resource, value smithyjson.Value) error {
12048	array := value.Array()
12049	defer array.Close()
12050
12051	for i := range v {
12052		av := array.Value()
12053		if err := awsRestjson1_serializeDocumentResource(&v[i], av); err != nil {
12054			return err
12055		}
12056	}
12057	return nil
12058}
12059
12060func awsRestjson1_serializeDocumentSecurityGroups(v []string, value smithyjson.Value) error {
12061	array := value.Array()
12062	defer array.Close()
12063
12064	for i := range v {
12065		av := array.Value()
12066		av.String(v[i])
12067	}
12068	return nil
12069}
12070
12071func awsRestjson1_serializeDocumentSeverity(v *types.Severity, value smithyjson.Value) error {
12072	object := value.Object()
12073	defer object.Close()
12074
12075	if len(v.Label) > 0 {
12076		ok := object.Key("Label")
12077		ok.String(string(v.Label))
12078	}
12079
12080	if v.Normalized != 0 {
12081		ok := object.Key("Normalized")
12082		ok.Integer(v.Normalized)
12083	}
12084
12085	if v.Original != nil {
12086		ok := object.Key("Original")
12087		ok.String(*v.Original)
12088	}
12089
12090	if v.Product != 0 {
12091		ok := object.Key("Product")
12092		ok.Double(v.Product)
12093	}
12094
12095	return nil
12096}
12097
12098func awsRestjson1_serializeDocumentSeverityUpdate(v *types.SeverityUpdate, value smithyjson.Value) error {
12099	object := value.Object()
12100	defer object.Close()
12101
12102	if len(v.Label) > 0 {
12103		ok := object.Key("Label")
12104		ok.String(string(v.Label))
12105	}
12106
12107	if v.Normalized != 0 {
12108		ok := object.Key("Normalized")
12109		ok.Integer(v.Normalized)
12110	}
12111
12112	if v.Product != 0 {
12113		ok := object.Key("Product")
12114		ok.Double(v.Product)
12115	}
12116
12117	return nil
12118}
12119
12120func awsRestjson1_serializeDocumentSoftwarePackage(v *types.SoftwarePackage, value smithyjson.Value) error {
12121	object := value.Object()
12122	defer object.Close()
12123
12124	if v.Architecture != nil {
12125		ok := object.Key("Architecture")
12126		ok.String(*v.Architecture)
12127	}
12128
12129	if v.Epoch != nil {
12130		ok := object.Key("Epoch")
12131		ok.String(*v.Epoch)
12132	}
12133
12134	if v.Name != nil {
12135		ok := object.Key("Name")
12136		ok.String(*v.Name)
12137	}
12138
12139	if v.Release != nil {
12140		ok := object.Key("Release")
12141		ok.String(*v.Release)
12142	}
12143
12144	if v.Version != nil {
12145		ok := object.Key("Version")
12146		ok.String(*v.Version)
12147	}
12148
12149	return nil
12150}
12151
12152func awsRestjson1_serializeDocumentSoftwarePackageList(v []types.SoftwarePackage, value smithyjson.Value) error {
12153	array := value.Array()
12154	defer array.Close()
12155
12156	for i := range v {
12157		av := array.Value()
12158		if err := awsRestjson1_serializeDocumentSoftwarePackage(&v[i], av); err != nil {
12159			return err
12160		}
12161	}
12162	return nil
12163}
12164
12165func awsRestjson1_serializeDocumentSortCriteria(v []types.SortCriterion, value smithyjson.Value) error {
12166	array := value.Array()
12167	defer array.Close()
12168
12169	for i := range v {
12170		av := array.Value()
12171		if err := awsRestjson1_serializeDocumentSortCriterion(&v[i], av); err != nil {
12172			return err
12173		}
12174	}
12175	return nil
12176}
12177
12178func awsRestjson1_serializeDocumentSortCriterion(v *types.SortCriterion, value smithyjson.Value) error {
12179	object := value.Object()
12180	defer object.Close()
12181
12182	if v.Field != nil {
12183		ok := object.Key("Field")
12184		ok.String(*v.Field)
12185	}
12186
12187	if len(v.SortOrder) > 0 {
12188		ok := object.Key("SortOrder")
12189		ok.String(string(v.SortOrder))
12190	}
12191
12192	return nil
12193}
12194
12195func awsRestjson1_serializeDocumentStandardsInputParameterMap(v map[string]string, value smithyjson.Value) error {
12196	object := value.Object()
12197	defer object.Close()
12198
12199	for key := range v {
12200		om := object.Key(key)
12201		om.String(v[key])
12202	}
12203	return nil
12204}
12205
12206func awsRestjson1_serializeDocumentStandardsSubscriptionArns(v []string, value smithyjson.Value) error {
12207	array := value.Array()
12208	defer array.Close()
12209
12210	for i := range v {
12211		av := array.Value()
12212		av.String(v[i])
12213	}
12214	return nil
12215}
12216
12217func awsRestjson1_serializeDocumentStandardsSubscriptionRequest(v *types.StandardsSubscriptionRequest, value smithyjson.Value) error {
12218	object := value.Object()
12219	defer object.Close()
12220
12221	if v.StandardsArn != nil {
12222		ok := object.Key("StandardsArn")
12223		ok.String(*v.StandardsArn)
12224	}
12225
12226	if v.StandardsInput != nil {
12227		ok := object.Key("StandardsInput")
12228		if err := awsRestjson1_serializeDocumentStandardsInputParameterMap(v.StandardsInput, ok); err != nil {
12229			return err
12230		}
12231	}
12232
12233	return nil
12234}
12235
12236func awsRestjson1_serializeDocumentStandardsSubscriptionRequests(v []types.StandardsSubscriptionRequest, value smithyjson.Value) error {
12237	array := value.Array()
12238	defer array.Close()
12239
12240	for i := range v {
12241		av := array.Value()
12242		if err := awsRestjson1_serializeDocumentStandardsSubscriptionRequest(&v[i], av); err != nil {
12243			return err
12244		}
12245	}
12246	return nil
12247}
12248
12249func awsRestjson1_serializeDocumentStatusReason(v *types.StatusReason, value smithyjson.Value) error {
12250	object := value.Object()
12251	defer object.Close()
12252
12253	if v.Description != nil {
12254		ok := object.Key("Description")
12255		ok.String(*v.Description)
12256	}
12257
12258	if v.ReasonCode != nil {
12259		ok := object.Key("ReasonCode")
12260		ok.String(*v.ReasonCode)
12261	}
12262
12263	return nil
12264}
12265
12266func awsRestjson1_serializeDocumentStatusReasonsList(v []types.StatusReason, value smithyjson.Value) error {
12267	array := value.Array()
12268	defer array.Close()
12269
12270	for i := range v {
12271		av := array.Value()
12272		if err := awsRestjson1_serializeDocumentStatusReason(&v[i], av); err != nil {
12273			return err
12274		}
12275	}
12276	return nil
12277}
12278
12279func awsRestjson1_serializeDocumentStringFilter(v *types.StringFilter, value smithyjson.Value) error {
12280	object := value.Object()
12281	defer object.Close()
12282
12283	if len(v.Comparison) > 0 {
12284		ok := object.Key("Comparison")
12285		ok.String(string(v.Comparison))
12286	}
12287
12288	if v.Value != nil {
12289		ok := object.Key("Value")
12290		ok.String(*v.Value)
12291	}
12292
12293	return nil
12294}
12295
12296func awsRestjson1_serializeDocumentStringFilterList(v []types.StringFilter, value smithyjson.Value) error {
12297	array := value.Array()
12298	defer array.Close()
12299
12300	for i := range v {
12301		av := array.Value()
12302		if err := awsRestjson1_serializeDocumentStringFilter(&v[i], av); err != nil {
12303			return err
12304		}
12305	}
12306	return nil
12307}
12308
12309func awsRestjson1_serializeDocumentStringList(v []string, value smithyjson.Value) error {
12310	array := value.Array()
12311	defer array.Close()
12312
12313	for i := range v {
12314		av := array.Value()
12315		av.String(v[i])
12316	}
12317	return nil
12318}
12319
12320func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson.Value) error {
12321	object := value.Object()
12322	defer object.Close()
12323
12324	for key := range v {
12325		om := object.Key(key)
12326		om.String(v[key])
12327	}
12328	return nil
12329}
12330
12331func awsRestjson1_serializeDocumentThreatIntelIndicator(v *types.ThreatIntelIndicator, value smithyjson.Value) error {
12332	object := value.Object()
12333	defer object.Close()
12334
12335	if len(v.Category) > 0 {
12336		ok := object.Key("Category")
12337		ok.String(string(v.Category))
12338	}
12339
12340	if v.LastObservedAt != nil {
12341		ok := object.Key("LastObservedAt")
12342		ok.String(*v.LastObservedAt)
12343	}
12344
12345	if v.Source != nil {
12346		ok := object.Key("Source")
12347		ok.String(*v.Source)
12348	}
12349
12350	if v.SourceUrl != nil {
12351		ok := object.Key("SourceUrl")
12352		ok.String(*v.SourceUrl)
12353	}
12354
12355	if len(v.Type) > 0 {
12356		ok := object.Key("Type")
12357		ok.String(string(v.Type))
12358	}
12359
12360	if v.Value != nil {
12361		ok := object.Key("Value")
12362		ok.String(*v.Value)
12363	}
12364
12365	return nil
12366}
12367
12368func awsRestjson1_serializeDocumentThreatIntelIndicatorList(v []types.ThreatIntelIndicator, value smithyjson.Value) error {
12369	array := value.Array()
12370	defer array.Close()
12371
12372	for i := range v {
12373		av := array.Value()
12374		if err := awsRestjson1_serializeDocumentThreatIntelIndicator(&v[i], av); err != nil {
12375			return err
12376		}
12377	}
12378	return nil
12379}
12380
12381func awsRestjson1_serializeDocumentTypeList(v []string, value smithyjson.Value) error {
12382	array := value.Array()
12383	defer array.Close()
12384
12385	for i := range v {
12386		av := array.Value()
12387		av.String(v[i])
12388	}
12389	return nil
12390}
12391
12392func awsRestjson1_serializeDocumentVulnerability(v *types.Vulnerability, value smithyjson.Value) error {
12393	object := value.Object()
12394	defer object.Close()
12395
12396	if v.Cvss != nil {
12397		ok := object.Key("Cvss")
12398		if err := awsRestjson1_serializeDocumentCvssList(v.Cvss, ok); err != nil {
12399			return err
12400		}
12401	}
12402
12403	if v.Id != nil {
12404		ok := object.Key("Id")
12405		ok.String(*v.Id)
12406	}
12407
12408	if v.ReferenceUrls != nil {
12409		ok := object.Key("ReferenceUrls")
12410		if err := awsRestjson1_serializeDocumentStringList(v.ReferenceUrls, ok); err != nil {
12411			return err
12412		}
12413	}
12414
12415	if v.RelatedVulnerabilities != nil {
12416		ok := object.Key("RelatedVulnerabilities")
12417		if err := awsRestjson1_serializeDocumentStringList(v.RelatedVulnerabilities, ok); err != nil {
12418			return err
12419		}
12420	}
12421
12422	if v.Vendor != nil {
12423		ok := object.Key("Vendor")
12424		if err := awsRestjson1_serializeDocumentVulnerabilityVendor(v.Vendor, ok); err != nil {
12425			return err
12426		}
12427	}
12428
12429	if v.VulnerablePackages != nil {
12430		ok := object.Key("VulnerablePackages")
12431		if err := awsRestjson1_serializeDocumentSoftwarePackageList(v.VulnerablePackages, ok); err != nil {
12432			return err
12433		}
12434	}
12435
12436	return nil
12437}
12438
12439func awsRestjson1_serializeDocumentVulnerabilityList(v []types.Vulnerability, value smithyjson.Value) error {
12440	array := value.Array()
12441	defer array.Close()
12442
12443	for i := range v {
12444		av := array.Value()
12445		if err := awsRestjson1_serializeDocumentVulnerability(&v[i], av); err != nil {
12446			return err
12447		}
12448	}
12449	return nil
12450}
12451
12452func awsRestjson1_serializeDocumentVulnerabilityVendor(v *types.VulnerabilityVendor, value smithyjson.Value) error {
12453	object := value.Object()
12454	defer object.Close()
12455
12456	if v.Name != nil {
12457		ok := object.Key("Name")
12458		ok.String(*v.Name)
12459	}
12460
12461	if v.Url != nil {
12462		ok := object.Key("Url")
12463		ok.String(*v.Url)
12464	}
12465
12466	if v.VendorCreatedAt != nil {
12467		ok := object.Key("VendorCreatedAt")
12468		ok.String(*v.VendorCreatedAt)
12469	}
12470
12471	if v.VendorSeverity != nil {
12472		ok := object.Key("VendorSeverity")
12473		ok.String(*v.VendorSeverity)
12474	}
12475
12476	if v.VendorUpdatedAt != nil {
12477		ok := object.Key("VendorUpdatedAt")
12478		ok.String(*v.VendorUpdatedAt)
12479	}
12480
12481	return nil
12482}
12483
12484func awsRestjson1_serializeDocumentWafAction(v *types.WafAction, value smithyjson.Value) error {
12485	object := value.Object()
12486	defer object.Close()
12487
12488	if v.Type != nil {
12489		ok := object.Key("Type")
12490		ok.String(*v.Type)
12491	}
12492
12493	return nil
12494}
12495
12496func awsRestjson1_serializeDocumentWafExcludedRule(v *types.WafExcludedRule, value smithyjson.Value) error {
12497	object := value.Object()
12498	defer object.Close()
12499
12500	if v.RuleId != nil {
12501		ok := object.Key("RuleId")
12502		ok.String(*v.RuleId)
12503	}
12504
12505	return nil
12506}
12507
12508func awsRestjson1_serializeDocumentWafExcludedRuleList(v []types.WafExcludedRule, value smithyjson.Value) error {
12509	array := value.Array()
12510	defer array.Close()
12511
12512	for i := range v {
12513		av := array.Value()
12514		if err := awsRestjson1_serializeDocumentWafExcludedRule(&v[i], av); err != nil {
12515			return err
12516		}
12517	}
12518	return nil
12519}
12520
12521func awsRestjson1_serializeDocumentWafOverrideAction(v *types.WafOverrideAction, value smithyjson.Value) error {
12522	object := value.Object()
12523	defer object.Close()
12524
12525	if v.Type != nil {
12526		ok := object.Key("Type")
12527		ok.String(*v.Type)
12528	}
12529
12530	return nil
12531}
12532
12533func awsRestjson1_serializeDocumentWorkflow(v *types.Workflow, value smithyjson.Value) error {
12534	object := value.Object()
12535	defer object.Close()
12536
12537	if len(v.Status) > 0 {
12538		ok := object.Key("Status")
12539		ok.String(string(v.Status))
12540	}
12541
12542	return nil
12543}
12544
12545func awsRestjson1_serializeDocumentWorkflowUpdate(v *types.WorkflowUpdate, value smithyjson.Value) error {
12546	object := value.Object()
12547	defer object.Close()
12548
12549	if len(v.Status) > 0 {
12550		ok := object.Key("Status")
12551		ok.String(string(v.Status))
12552	}
12553
12554	return nil
12555}
12556