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