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	"math"
16)
17
18type awsRestjson1_serializeOpAcceptAdministratorInvitation struct {
19}
20
21func (*awsRestjson1_serializeOpAcceptAdministratorInvitation) ID() string {
22	return "OperationSerializer"
23}
24
25func (m *awsRestjson1_serializeOpAcceptAdministratorInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
26	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
27) {
28	request, ok := in.Request.(*smithyhttp.Request)
29	if !ok {
30		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
31	}
32
33	input, ok := in.Parameters.(*AcceptAdministratorInvitationInput)
34	_ = input
35	if !ok {
36		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
37	}
38
39	opPath, opQuery := httpbinding.SplitURI("/administrator")
40	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
41	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
42	request.Method = "POST"
43	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
44	if err != nil {
45		return out, metadata, &smithy.SerializationError{Err: err}
46	}
47
48	restEncoder.SetHeader("Content-Type").String("application/json")
49
50	jsonEncoder := smithyjson.NewEncoder()
51	if err := awsRestjson1_serializeOpDocumentAcceptAdministratorInvitationInput(input, jsonEncoder.Value); err != nil {
52		return out, metadata, &smithy.SerializationError{Err: err}
53	}
54
55	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
56		return out, metadata, &smithy.SerializationError{Err: err}
57	}
58
59	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
60		return out, metadata, &smithy.SerializationError{Err: err}
61	}
62	in.Request = request
63
64	return next.HandleSerialize(ctx, in)
65}
66func awsRestjson1_serializeOpHttpBindingsAcceptAdministratorInvitationInput(v *AcceptAdministratorInvitationInput, encoder *httpbinding.Encoder) error {
67	if v == nil {
68		return fmt.Errorf("unsupported serialization of nil %T", v)
69	}
70
71	return nil
72}
73
74func awsRestjson1_serializeOpDocumentAcceptAdministratorInvitationInput(v *AcceptAdministratorInvitationInput, value smithyjson.Value) error {
75	object := value.Object()
76	defer object.Close()
77
78	if v.AdministratorId != nil {
79		ok := object.Key("AdministratorId")
80		ok.String(*v.AdministratorId)
81	}
82
83	if v.InvitationId != nil {
84		ok := object.Key("InvitationId")
85		ok.String(*v.InvitationId)
86	}
87
88	return nil
89}
90
91type awsRestjson1_serializeOpAcceptInvitation struct {
92}
93
94func (*awsRestjson1_serializeOpAcceptInvitation) ID() string {
95	return "OperationSerializer"
96}
97
98func (m *awsRestjson1_serializeOpAcceptInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
99	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
100) {
101	request, ok := in.Request.(*smithyhttp.Request)
102	if !ok {
103		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
104	}
105
106	input, ok := in.Parameters.(*AcceptInvitationInput)
107	_ = input
108	if !ok {
109		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
110	}
111
112	opPath, opQuery := httpbinding.SplitURI("/master")
113	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
114	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
115	request.Method = "POST"
116	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
117	if err != nil {
118		return out, metadata, &smithy.SerializationError{Err: err}
119	}
120
121	restEncoder.SetHeader("Content-Type").String("application/json")
122
123	jsonEncoder := smithyjson.NewEncoder()
124	if err := awsRestjson1_serializeOpDocumentAcceptInvitationInput(input, jsonEncoder.Value); err != nil {
125		return out, metadata, &smithy.SerializationError{Err: err}
126	}
127
128	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
129		return out, metadata, &smithy.SerializationError{Err: err}
130	}
131
132	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
133		return out, metadata, &smithy.SerializationError{Err: err}
134	}
135	in.Request = request
136
137	return next.HandleSerialize(ctx, in)
138}
139func awsRestjson1_serializeOpHttpBindingsAcceptInvitationInput(v *AcceptInvitationInput, encoder *httpbinding.Encoder) error {
140	if v == nil {
141		return fmt.Errorf("unsupported serialization of nil %T", v)
142	}
143
144	return nil
145}
146
147func awsRestjson1_serializeOpDocumentAcceptInvitationInput(v *AcceptInvitationInput, value smithyjson.Value) error {
148	object := value.Object()
149	defer object.Close()
150
151	if v.InvitationId != nil {
152		ok := object.Key("InvitationId")
153		ok.String(*v.InvitationId)
154	}
155
156	if v.MasterId != nil {
157		ok := object.Key("MasterId")
158		ok.String(*v.MasterId)
159	}
160
161	return nil
162}
163
164type awsRestjson1_serializeOpBatchDisableStandards struct {
165}
166
167func (*awsRestjson1_serializeOpBatchDisableStandards) ID() string {
168	return "OperationSerializer"
169}
170
171func (m *awsRestjson1_serializeOpBatchDisableStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
172	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
173) {
174	request, ok := in.Request.(*smithyhttp.Request)
175	if !ok {
176		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
177	}
178
179	input, ok := in.Parameters.(*BatchDisableStandardsInput)
180	_ = input
181	if !ok {
182		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
183	}
184
185	opPath, opQuery := httpbinding.SplitURI("/standards/deregister")
186	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
187	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
188	request.Method = "POST"
189	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
190	if err != nil {
191		return out, metadata, &smithy.SerializationError{Err: err}
192	}
193
194	restEncoder.SetHeader("Content-Type").String("application/json")
195
196	jsonEncoder := smithyjson.NewEncoder()
197	if err := awsRestjson1_serializeOpDocumentBatchDisableStandardsInput(input, jsonEncoder.Value); err != nil {
198		return out, metadata, &smithy.SerializationError{Err: err}
199	}
200
201	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
202		return out, metadata, &smithy.SerializationError{Err: err}
203	}
204
205	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
206		return out, metadata, &smithy.SerializationError{Err: err}
207	}
208	in.Request = request
209
210	return next.HandleSerialize(ctx, in)
211}
212func awsRestjson1_serializeOpHttpBindingsBatchDisableStandardsInput(v *BatchDisableStandardsInput, encoder *httpbinding.Encoder) error {
213	if v == nil {
214		return fmt.Errorf("unsupported serialization of nil %T", v)
215	}
216
217	return nil
218}
219
220func awsRestjson1_serializeOpDocumentBatchDisableStandardsInput(v *BatchDisableStandardsInput, value smithyjson.Value) error {
221	object := value.Object()
222	defer object.Close()
223
224	if v.StandardsSubscriptionArns != nil {
225		ok := object.Key("StandardsSubscriptionArns")
226		if err := awsRestjson1_serializeDocumentStandardsSubscriptionArns(v.StandardsSubscriptionArns, ok); err != nil {
227			return err
228		}
229	}
230
231	return nil
232}
233
234type awsRestjson1_serializeOpBatchEnableStandards struct {
235}
236
237func (*awsRestjson1_serializeOpBatchEnableStandards) ID() string {
238	return "OperationSerializer"
239}
240
241func (m *awsRestjson1_serializeOpBatchEnableStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
242	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
243) {
244	request, ok := in.Request.(*smithyhttp.Request)
245	if !ok {
246		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
247	}
248
249	input, ok := in.Parameters.(*BatchEnableStandardsInput)
250	_ = input
251	if !ok {
252		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
253	}
254
255	opPath, opQuery := httpbinding.SplitURI("/standards/register")
256	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
257	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
258	request.Method = "POST"
259	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
260	if err != nil {
261		return out, metadata, &smithy.SerializationError{Err: err}
262	}
263
264	restEncoder.SetHeader("Content-Type").String("application/json")
265
266	jsonEncoder := smithyjson.NewEncoder()
267	if err := awsRestjson1_serializeOpDocumentBatchEnableStandardsInput(input, jsonEncoder.Value); err != nil {
268		return out, metadata, &smithy.SerializationError{Err: err}
269	}
270
271	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
272		return out, metadata, &smithy.SerializationError{Err: err}
273	}
274
275	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
276		return out, metadata, &smithy.SerializationError{Err: err}
277	}
278	in.Request = request
279
280	return next.HandleSerialize(ctx, in)
281}
282func awsRestjson1_serializeOpHttpBindingsBatchEnableStandardsInput(v *BatchEnableStandardsInput, encoder *httpbinding.Encoder) error {
283	if v == nil {
284		return fmt.Errorf("unsupported serialization of nil %T", v)
285	}
286
287	return nil
288}
289
290func awsRestjson1_serializeOpDocumentBatchEnableStandardsInput(v *BatchEnableStandardsInput, value smithyjson.Value) error {
291	object := value.Object()
292	defer object.Close()
293
294	if v.StandardsSubscriptionRequests != nil {
295		ok := object.Key("StandardsSubscriptionRequests")
296		if err := awsRestjson1_serializeDocumentStandardsSubscriptionRequests(v.StandardsSubscriptionRequests, ok); err != nil {
297			return err
298		}
299	}
300
301	return nil
302}
303
304type awsRestjson1_serializeOpBatchImportFindings struct {
305}
306
307func (*awsRestjson1_serializeOpBatchImportFindings) ID() string {
308	return "OperationSerializer"
309}
310
311func (m *awsRestjson1_serializeOpBatchImportFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
312	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
313) {
314	request, ok := in.Request.(*smithyhttp.Request)
315	if !ok {
316		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
317	}
318
319	input, ok := in.Parameters.(*BatchImportFindingsInput)
320	_ = input
321	if !ok {
322		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
323	}
324
325	opPath, opQuery := httpbinding.SplitURI("/findings/import")
326	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
327	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
328	request.Method = "POST"
329	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
330	if err != nil {
331		return out, metadata, &smithy.SerializationError{Err: err}
332	}
333
334	restEncoder.SetHeader("Content-Type").String("application/json")
335
336	jsonEncoder := smithyjson.NewEncoder()
337	if err := awsRestjson1_serializeOpDocumentBatchImportFindingsInput(input, jsonEncoder.Value); err != nil {
338		return out, metadata, &smithy.SerializationError{Err: err}
339	}
340
341	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
342		return out, metadata, &smithy.SerializationError{Err: err}
343	}
344
345	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
346		return out, metadata, &smithy.SerializationError{Err: err}
347	}
348	in.Request = request
349
350	return next.HandleSerialize(ctx, in)
351}
352func awsRestjson1_serializeOpHttpBindingsBatchImportFindingsInput(v *BatchImportFindingsInput, encoder *httpbinding.Encoder) error {
353	if v == nil {
354		return fmt.Errorf("unsupported serialization of nil %T", v)
355	}
356
357	return nil
358}
359
360func awsRestjson1_serializeOpDocumentBatchImportFindingsInput(v *BatchImportFindingsInput, value smithyjson.Value) error {
361	object := value.Object()
362	defer object.Close()
363
364	if v.Findings != nil {
365		ok := object.Key("Findings")
366		if err := awsRestjson1_serializeDocumentBatchImportFindingsRequestFindingList(v.Findings, ok); err != nil {
367			return err
368		}
369	}
370
371	return nil
372}
373
374type awsRestjson1_serializeOpBatchUpdateFindings struct {
375}
376
377func (*awsRestjson1_serializeOpBatchUpdateFindings) ID() string {
378	return "OperationSerializer"
379}
380
381func (m *awsRestjson1_serializeOpBatchUpdateFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
382	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
383) {
384	request, ok := in.Request.(*smithyhttp.Request)
385	if !ok {
386		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
387	}
388
389	input, ok := in.Parameters.(*BatchUpdateFindingsInput)
390	_ = input
391	if !ok {
392		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
393	}
394
395	opPath, opQuery := httpbinding.SplitURI("/findings/batchupdate")
396	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
397	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
398	request.Method = "PATCH"
399	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
400	if err != nil {
401		return out, metadata, &smithy.SerializationError{Err: err}
402	}
403
404	restEncoder.SetHeader("Content-Type").String("application/json")
405
406	jsonEncoder := smithyjson.NewEncoder()
407	if err := awsRestjson1_serializeOpDocumentBatchUpdateFindingsInput(input, jsonEncoder.Value); err != nil {
408		return out, metadata, &smithy.SerializationError{Err: err}
409	}
410
411	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
412		return out, metadata, &smithy.SerializationError{Err: err}
413	}
414
415	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
416		return out, metadata, &smithy.SerializationError{Err: err}
417	}
418	in.Request = request
419
420	return next.HandleSerialize(ctx, in)
421}
422func awsRestjson1_serializeOpHttpBindingsBatchUpdateFindingsInput(v *BatchUpdateFindingsInput, encoder *httpbinding.Encoder) error {
423	if v == nil {
424		return fmt.Errorf("unsupported serialization of nil %T", v)
425	}
426
427	return nil
428}
429
430func awsRestjson1_serializeOpDocumentBatchUpdateFindingsInput(v *BatchUpdateFindingsInput, value smithyjson.Value) error {
431	object := value.Object()
432	defer object.Close()
433
434	if v.Confidence != 0 {
435		ok := object.Key("Confidence")
436		ok.Integer(v.Confidence)
437	}
438
439	if v.Criticality != 0 {
440		ok := object.Key("Criticality")
441		ok.Integer(v.Criticality)
442	}
443
444	if v.FindingIdentifiers != nil {
445		ok := object.Key("FindingIdentifiers")
446		if err := awsRestjson1_serializeDocumentAwsSecurityFindingIdentifierList(v.FindingIdentifiers, ok); err != nil {
447			return err
448		}
449	}
450
451	if v.Note != nil {
452		ok := object.Key("Note")
453		if err := awsRestjson1_serializeDocumentNoteUpdate(v.Note, ok); err != nil {
454			return err
455		}
456	}
457
458	if v.RelatedFindings != nil {
459		ok := object.Key("RelatedFindings")
460		if err := awsRestjson1_serializeDocumentRelatedFindingList(v.RelatedFindings, ok); err != nil {
461			return err
462		}
463	}
464
465	if v.Severity != nil {
466		ok := object.Key("Severity")
467		if err := awsRestjson1_serializeDocumentSeverityUpdate(v.Severity, ok); err != nil {
468			return err
469		}
470	}
471
472	if v.Types != nil {
473		ok := object.Key("Types")
474		if err := awsRestjson1_serializeDocumentTypeList(v.Types, ok); err != nil {
475			return err
476		}
477	}
478
479	if v.UserDefinedFields != nil {
480		ok := object.Key("UserDefinedFields")
481		if err := awsRestjson1_serializeDocumentFieldMap(v.UserDefinedFields, ok); err != nil {
482			return err
483		}
484	}
485
486	if len(v.VerificationState) > 0 {
487		ok := object.Key("VerificationState")
488		ok.String(string(v.VerificationState))
489	}
490
491	if v.Workflow != nil {
492		ok := object.Key("Workflow")
493		if err := awsRestjson1_serializeDocumentWorkflowUpdate(v.Workflow, ok); err != nil {
494			return err
495		}
496	}
497
498	return nil
499}
500
501type awsRestjson1_serializeOpCreateActionTarget struct {
502}
503
504func (*awsRestjson1_serializeOpCreateActionTarget) ID() string {
505	return "OperationSerializer"
506}
507
508func (m *awsRestjson1_serializeOpCreateActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
509	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
510) {
511	request, ok := in.Request.(*smithyhttp.Request)
512	if !ok {
513		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
514	}
515
516	input, ok := in.Parameters.(*CreateActionTargetInput)
517	_ = input
518	if !ok {
519		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
520	}
521
522	opPath, opQuery := httpbinding.SplitURI("/actionTargets")
523	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
524	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
525	request.Method = "POST"
526	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
527	if err != nil {
528		return out, metadata, &smithy.SerializationError{Err: err}
529	}
530
531	restEncoder.SetHeader("Content-Type").String("application/json")
532
533	jsonEncoder := smithyjson.NewEncoder()
534	if err := awsRestjson1_serializeOpDocumentCreateActionTargetInput(input, jsonEncoder.Value); err != nil {
535		return out, metadata, &smithy.SerializationError{Err: err}
536	}
537
538	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
539		return out, metadata, &smithy.SerializationError{Err: err}
540	}
541
542	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
543		return out, metadata, &smithy.SerializationError{Err: err}
544	}
545	in.Request = request
546
547	return next.HandleSerialize(ctx, in)
548}
549func awsRestjson1_serializeOpHttpBindingsCreateActionTargetInput(v *CreateActionTargetInput, encoder *httpbinding.Encoder) error {
550	if v == nil {
551		return fmt.Errorf("unsupported serialization of nil %T", v)
552	}
553
554	return nil
555}
556
557func awsRestjson1_serializeOpDocumentCreateActionTargetInput(v *CreateActionTargetInput, value smithyjson.Value) error {
558	object := value.Object()
559	defer object.Close()
560
561	if v.Description != nil {
562		ok := object.Key("Description")
563		ok.String(*v.Description)
564	}
565
566	if v.Id != nil {
567		ok := object.Key("Id")
568		ok.String(*v.Id)
569	}
570
571	if v.Name != nil {
572		ok := object.Key("Name")
573		ok.String(*v.Name)
574	}
575
576	return nil
577}
578
579type awsRestjson1_serializeOpCreateInsight struct {
580}
581
582func (*awsRestjson1_serializeOpCreateInsight) ID() string {
583	return "OperationSerializer"
584}
585
586func (m *awsRestjson1_serializeOpCreateInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
587	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
588) {
589	request, ok := in.Request.(*smithyhttp.Request)
590	if !ok {
591		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
592	}
593
594	input, ok := in.Parameters.(*CreateInsightInput)
595	_ = input
596	if !ok {
597		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
598	}
599
600	opPath, opQuery := httpbinding.SplitURI("/insights")
601	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
602	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
603	request.Method = "POST"
604	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
605	if err != nil {
606		return out, metadata, &smithy.SerializationError{Err: err}
607	}
608
609	restEncoder.SetHeader("Content-Type").String("application/json")
610
611	jsonEncoder := smithyjson.NewEncoder()
612	if err := awsRestjson1_serializeOpDocumentCreateInsightInput(input, jsonEncoder.Value); err != nil {
613		return out, metadata, &smithy.SerializationError{Err: err}
614	}
615
616	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
617		return out, metadata, &smithy.SerializationError{Err: err}
618	}
619
620	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
621		return out, metadata, &smithy.SerializationError{Err: err}
622	}
623	in.Request = request
624
625	return next.HandleSerialize(ctx, in)
626}
627func awsRestjson1_serializeOpHttpBindingsCreateInsightInput(v *CreateInsightInput, encoder *httpbinding.Encoder) error {
628	if v == nil {
629		return fmt.Errorf("unsupported serialization of nil %T", v)
630	}
631
632	return nil
633}
634
635func awsRestjson1_serializeOpDocumentCreateInsightInput(v *CreateInsightInput, value smithyjson.Value) error {
636	object := value.Object()
637	defer object.Close()
638
639	if v.Filters != nil {
640		ok := object.Key("Filters")
641		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
642			return err
643		}
644	}
645
646	if v.GroupByAttribute != nil {
647		ok := object.Key("GroupByAttribute")
648		ok.String(*v.GroupByAttribute)
649	}
650
651	if v.Name != nil {
652		ok := object.Key("Name")
653		ok.String(*v.Name)
654	}
655
656	return nil
657}
658
659type awsRestjson1_serializeOpCreateMembers struct {
660}
661
662func (*awsRestjson1_serializeOpCreateMembers) ID() string {
663	return "OperationSerializer"
664}
665
666func (m *awsRestjson1_serializeOpCreateMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
667	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
668) {
669	request, ok := in.Request.(*smithyhttp.Request)
670	if !ok {
671		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
672	}
673
674	input, ok := in.Parameters.(*CreateMembersInput)
675	_ = input
676	if !ok {
677		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
678	}
679
680	opPath, opQuery := httpbinding.SplitURI("/members")
681	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
682	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
683	request.Method = "POST"
684	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
685	if err != nil {
686		return out, metadata, &smithy.SerializationError{Err: err}
687	}
688
689	restEncoder.SetHeader("Content-Type").String("application/json")
690
691	jsonEncoder := smithyjson.NewEncoder()
692	if err := awsRestjson1_serializeOpDocumentCreateMembersInput(input, jsonEncoder.Value); err != nil {
693		return out, metadata, &smithy.SerializationError{Err: err}
694	}
695
696	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
697		return out, metadata, &smithy.SerializationError{Err: err}
698	}
699
700	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
701		return out, metadata, &smithy.SerializationError{Err: err}
702	}
703	in.Request = request
704
705	return next.HandleSerialize(ctx, in)
706}
707func awsRestjson1_serializeOpHttpBindingsCreateMembersInput(v *CreateMembersInput, encoder *httpbinding.Encoder) error {
708	if v == nil {
709		return fmt.Errorf("unsupported serialization of nil %T", v)
710	}
711
712	return nil
713}
714
715func awsRestjson1_serializeOpDocumentCreateMembersInput(v *CreateMembersInput, value smithyjson.Value) error {
716	object := value.Object()
717	defer object.Close()
718
719	if v.AccountDetails != nil {
720		ok := object.Key("AccountDetails")
721		if err := awsRestjson1_serializeDocumentAccountDetailsList(v.AccountDetails, ok); err != nil {
722			return err
723		}
724	}
725
726	return nil
727}
728
729type awsRestjson1_serializeOpDeclineInvitations struct {
730}
731
732func (*awsRestjson1_serializeOpDeclineInvitations) ID() string {
733	return "OperationSerializer"
734}
735
736func (m *awsRestjson1_serializeOpDeclineInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
737	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
738) {
739	request, ok := in.Request.(*smithyhttp.Request)
740	if !ok {
741		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
742	}
743
744	input, ok := in.Parameters.(*DeclineInvitationsInput)
745	_ = input
746	if !ok {
747		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
748	}
749
750	opPath, opQuery := httpbinding.SplitURI("/invitations/decline")
751	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
752	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
753	request.Method = "POST"
754	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
755	if err != nil {
756		return out, metadata, &smithy.SerializationError{Err: err}
757	}
758
759	restEncoder.SetHeader("Content-Type").String("application/json")
760
761	jsonEncoder := smithyjson.NewEncoder()
762	if err := awsRestjson1_serializeOpDocumentDeclineInvitationsInput(input, jsonEncoder.Value); err != nil {
763		return out, metadata, &smithy.SerializationError{Err: err}
764	}
765
766	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
767		return out, metadata, &smithy.SerializationError{Err: err}
768	}
769
770	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
771		return out, metadata, &smithy.SerializationError{Err: err}
772	}
773	in.Request = request
774
775	return next.HandleSerialize(ctx, in)
776}
777func awsRestjson1_serializeOpHttpBindingsDeclineInvitationsInput(v *DeclineInvitationsInput, encoder *httpbinding.Encoder) error {
778	if v == nil {
779		return fmt.Errorf("unsupported serialization of nil %T", v)
780	}
781
782	return nil
783}
784
785func awsRestjson1_serializeOpDocumentDeclineInvitationsInput(v *DeclineInvitationsInput, value smithyjson.Value) error {
786	object := value.Object()
787	defer object.Close()
788
789	if v.AccountIds != nil {
790		ok := object.Key("AccountIds")
791		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
792			return err
793		}
794	}
795
796	return nil
797}
798
799type awsRestjson1_serializeOpDeleteActionTarget struct {
800}
801
802func (*awsRestjson1_serializeOpDeleteActionTarget) ID() string {
803	return "OperationSerializer"
804}
805
806func (m *awsRestjson1_serializeOpDeleteActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
807	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
808) {
809	request, ok := in.Request.(*smithyhttp.Request)
810	if !ok {
811		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
812	}
813
814	input, ok := in.Parameters.(*DeleteActionTargetInput)
815	_ = input
816	if !ok {
817		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
818	}
819
820	opPath, opQuery := httpbinding.SplitURI("/actionTargets/{ActionTargetArn+}")
821	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
822	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
823	request.Method = "DELETE"
824	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
825	if err != nil {
826		return out, metadata, &smithy.SerializationError{Err: err}
827	}
828
829	if err := awsRestjson1_serializeOpHttpBindingsDeleteActionTargetInput(input, restEncoder); err != nil {
830		return out, metadata, &smithy.SerializationError{Err: err}
831	}
832
833	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
834		return out, metadata, &smithy.SerializationError{Err: err}
835	}
836	in.Request = request
837
838	return next.HandleSerialize(ctx, in)
839}
840func awsRestjson1_serializeOpHttpBindingsDeleteActionTargetInput(v *DeleteActionTargetInput, encoder *httpbinding.Encoder) error {
841	if v == nil {
842		return fmt.Errorf("unsupported serialization of nil %T", v)
843	}
844
845	if v.ActionTargetArn == nil || len(*v.ActionTargetArn) == 0 {
846		return &smithy.SerializationError{Err: fmt.Errorf("input member ActionTargetArn must not be empty")}
847	}
848	if v.ActionTargetArn != nil {
849		if err := encoder.SetURI("ActionTargetArn").String(*v.ActionTargetArn); err != nil {
850			return err
851		}
852	}
853
854	return nil
855}
856
857type awsRestjson1_serializeOpDeleteInsight struct {
858}
859
860func (*awsRestjson1_serializeOpDeleteInsight) ID() string {
861	return "OperationSerializer"
862}
863
864func (m *awsRestjson1_serializeOpDeleteInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
865	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
866) {
867	request, ok := in.Request.(*smithyhttp.Request)
868	if !ok {
869		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
870	}
871
872	input, ok := in.Parameters.(*DeleteInsightInput)
873	_ = input
874	if !ok {
875		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
876	}
877
878	opPath, opQuery := httpbinding.SplitURI("/insights/{InsightArn+}")
879	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
880	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
881	request.Method = "DELETE"
882	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
883	if err != nil {
884		return out, metadata, &smithy.SerializationError{Err: err}
885	}
886
887	if err := awsRestjson1_serializeOpHttpBindingsDeleteInsightInput(input, restEncoder); err != nil {
888		return out, metadata, &smithy.SerializationError{Err: err}
889	}
890
891	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
892		return out, metadata, &smithy.SerializationError{Err: err}
893	}
894	in.Request = request
895
896	return next.HandleSerialize(ctx, in)
897}
898func awsRestjson1_serializeOpHttpBindingsDeleteInsightInput(v *DeleteInsightInput, encoder *httpbinding.Encoder) error {
899	if v == nil {
900		return fmt.Errorf("unsupported serialization of nil %T", v)
901	}
902
903	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
904		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
905	}
906	if v.InsightArn != nil {
907		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
908			return err
909		}
910	}
911
912	return nil
913}
914
915type awsRestjson1_serializeOpDeleteInvitations struct {
916}
917
918func (*awsRestjson1_serializeOpDeleteInvitations) ID() string {
919	return "OperationSerializer"
920}
921
922func (m *awsRestjson1_serializeOpDeleteInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
923	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
924) {
925	request, ok := in.Request.(*smithyhttp.Request)
926	if !ok {
927		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
928	}
929
930	input, ok := in.Parameters.(*DeleteInvitationsInput)
931	_ = input
932	if !ok {
933		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
934	}
935
936	opPath, opQuery := httpbinding.SplitURI("/invitations/delete")
937	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
938	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
939	request.Method = "POST"
940	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
941	if err != nil {
942		return out, metadata, &smithy.SerializationError{Err: err}
943	}
944
945	restEncoder.SetHeader("Content-Type").String("application/json")
946
947	jsonEncoder := smithyjson.NewEncoder()
948	if err := awsRestjson1_serializeOpDocumentDeleteInvitationsInput(input, jsonEncoder.Value); err != nil {
949		return out, metadata, &smithy.SerializationError{Err: err}
950	}
951
952	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
953		return out, metadata, &smithy.SerializationError{Err: err}
954	}
955
956	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
957		return out, metadata, &smithy.SerializationError{Err: err}
958	}
959	in.Request = request
960
961	return next.HandleSerialize(ctx, in)
962}
963func awsRestjson1_serializeOpHttpBindingsDeleteInvitationsInput(v *DeleteInvitationsInput, encoder *httpbinding.Encoder) error {
964	if v == nil {
965		return fmt.Errorf("unsupported serialization of nil %T", v)
966	}
967
968	return nil
969}
970
971func awsRestjson1_serializeOpDocumentDeleteInvitationsInput(v *DeleteInvitationsInput, value smithyjson.Value) error {
972	object := value.Object()
973	defer object.Close()
974
975	if v.AccountIds != nil {
976		ok := object.Key("AccountIds")
977		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
978			return err
979		}
980	}
981
982	return nil
983}
984
985type awsRestjson1_serializeOpDeleteMembers struct {
986}
987
988func (*awsRestjson1_serializeOpDeleteMembers) ID() string {
989	return "OperationSerializer"
990}
991
992func (m *awsRestjson1_serializeOpDeleteMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
993	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
994) {
995	request, ok := in.Request.(*smithyhttp.Request)
996	if !ok {
997		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
998	}
999
1000	input, ok := in.Parameters.(*DeleteMembersInput)
1001	_ = input
1002	if !ok {
1003		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1004	}
1005
1006	opPath, opQuery := httpbinding.SplitURI("/members/delete")
1007	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1008	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1009	request.Method = "POST"
1010	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1011	if err != nil {
1012		return out, metadata, &smithy.SerializationError{Err: err}
1013	}
1014
1015	restEncoder.SetHeader("Content-Type").String("application/json")
1016
1017	jsonEncoder := smithyjson.NewEncoder()
1018	if err := awsRestjson1_serializeOpDocumentDeleteMembersInput(input, jsonEncoder.Value); err != nil {
1019		return out, metadata, &smithy.SerializationError{Err: err}
1020	}
1021
1022	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1023		return out, metadata, &smithy.SerializationError{Err: err}
1024	}
1025
1026	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1027		return out, metadata, &smithy.SerializationError{Err: err}
1028	}
1029	in.Request = request
1030
1031	return next.HandleSerialize(ctx, in)
1032}
1033func awsRestjson1_serializeOpHttpBindingsDeleteMembersInput(v *DeleteMembersInput, encoder *httpbinding.Encoder) error {
1034	if v == nil {
1035		return fmt.Errorf("unsupported serialization of nil %T", v)
1036	}
1037
1038	return nil
1039}
1040
1041func awsRestjson1_serializeOpDocumentDeleteMembersInput(v *DeleteMembersInput, value smithyjson.Value) error {
1042	object := value.Object()
1043	defer object.Close()
1044
1045	if v.AccountIds != nil {
1046		ok := object.Key("AccountIds")
1047		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
1048			return err
1049		}
1050	}
1051
1052	return nil
1053}
1054
1055type awsRestjson1_serializeOpDescribeActionTargets struct {
1056}
1057
1058func (*awsRestjson1_serializeOpDescribeActionTargets) ID() string {
1059	return "OperationSerializer"
1060}
1061
1062func (m *awsRestjson1_serializeOpDescribeActionTargets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1063	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1064) {
1065	request, ok := in.Request.(*smithyhttp.Request)
1066	if !ok {
1067		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1068	}
1069
1070	input, ok := in.Parameters.(*DescribeActionTargetsInput)
1071	_ = input
1072	if !ok {
1073		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1074	}
1075
1076	opPath, opQuery := httpbinding.SplitURI("/actionTargets/get")
1077	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1078	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1079	request.Method = "POST"
1080	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1081	if err != nil {
1082		return out, metadata, &smithy.SerializationError{Err: err}
1083	}
1084
1085	restEncoder.SetHeader("Content-Type").String("application/json")
1086
1087	jsonEncoder := smithyjson.NewEncoder()
1088	if err := awsRestjson1_serializeOpDocumentDescribeActionTargetsInput(input, jsonEncoder.Value); err != nil {
1089		return out, metadata, &smithy.SerializationError{Err: err}
1090	}
1091
1092	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1093		return out, metadata, &smithy.SerializationError{Err: err}
1094	}
1095
1096	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1097		return out, metadata, &smithy.SerializationError{Err: err}
1098	}
1099	in.Request = request
1100
1101	return next.HandleSerialize(ctx, in)
1102}
1103func awsRestjson1_serializeOpHttpBindingsDescribeActionTargetsInput(v *DescribeActionTargetsInput, encoder *httpbinding.Encoder) error {
1104	if v == nil {
1105		return fmt.Errorf("unsupported serialization of nil %T", v)
1106	}
1107
1108	return nil
1109}
1110
1111func awsRestjson1_serializeOpDocumentDescribeActionTargetsInput(v *DescribeActionTargetsInput, value smithyjson.Value) error {
1112	object := value.Object()
1113	defer object.Close()
1114
1115	if v.ActionTargetArns != nil {
1116		ok := object.Key("ActionTargetArns")
1117		if err := awsRestjson1_serializeDocumentArnList(v.ActionTargetArns, ok); err != nil {
1118			return err
1119		}
1120	}
1121
1122	if v.MaxResults != 0 {
1123		ok := object.Key("MaxResults")
1124		ok.Integer(v.MaxResults)
1125	}
1126
1127	if v.NextToken != nil {
1128		ok := object.Key("NextToken")
1129		ok.String(*v.NextToken)
1130	}
1131
1132	return nil
1133}
1134
1135type awsRestjson1_serializeOpDescribeHub struct {
1136}
1137
1138func (*awsRestjson1_serializeOpDescribeHub) ID() string {
1139	return "OperationSerializer"
1140}
1141
1142func (m *awsRestjson1_serializeOpDescribeHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1143	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1144) {
1145	request, ok := in.Request.(*smithyhttp.Request)
1146	if !ok {
1147		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1148	}
1149
1150	input, ok := in.Parameters.(*DescribeHubInput)
1151	_ = input
1152	if !ok {
1153		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1154	}
1155
1156	opPath, opQuery := httpbinding.SplitURI("/accounts")
1157	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1158	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1159	request.Method = "GET"
1160	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1161	if err != nil {
1162		return out, metadata, &smithy.SerializationError{Err: err}
1163	}
1164
1165	if err := awsRestjson1_serializeOpHttpBindingsDescribeHubInput(input, restEncoder); err != nil {
1166		return out, metadata, &smithy.SerializationError{Err: err}
1167	}
1168
1169	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1170		return out, metadata, &smithy.SerializationError{Err: err}
1171	}
1172	in.Request = request
1173
1174	return next.HandleSerialize(ctx, in)
1175}
1176func awsRestjson1_serializeOpHttpBindingsDescribeHubInput(v *DescribeHubInput, encoder *httpbinding.Encoder) error {
1177	if v == nil {
1178		return fmt.Errorf("unsupported serialization of nil %T", v)
1179	}
1180
1181	if v.HubArn != nil {
1182		encoder.SetQuery("HubArn").String(*v.HubArn)
1183	}
1184
1185	return nil
1186}
1187
1188type awsRestjson1_serializeOpDescribeOrganizationConfiguration struct {
1189}
1190
1191func (*awsRestjson1_serializeOpDescribeOrganizationConfiguration) ID() string {
1192	return "OperationSerializer"
1193}
1194
1195func (m *awsRestjson1_serializeOpDescribeOrganizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1196	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1197) {
1198	request, ok := in.Request.(*smithyhttp.Request)
1199	if !ok {
1200		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1201	}
1202
1203	input, ok := in.Parameters.(*DescribeOrganizationConfigurationInput)
1204	_ = input
1205	if !ok {
1206		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1207	}
1208
1209	opPath, opQuery := httpbinding.SplitURI("/organization/configuration")
1210	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1211	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1212	request.Method = "GET"
1213	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1214	if err != nil {
1215		return out, metadata, &smithy.SerializationError{Err: err}
1216	}
1217
1218	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1219		return out, metadata, &smithy.SerializationError{Err: err}
1220	}
1221	in.Request = request
1222
1223	return next.HandleSerialize(ctx, in)
1224}
1225func awsRestjson1_serializeOpHttpBindingsDescribeOrganizationConfigurationInput(v *DescribeOrganizationConfigurationInput, encoder *httpbinding.Encoder) error {
1226	if v == nil {
1227		return fmt.Errorf("unsupported serialization of nil %T", v)
1228	}
1229
1230	return nil
1231}
1232
1233type awsRestjson1_serializeOpDescribeProducts struct {
1234}
1235
1236func (*awsRestjson1_serializeOpDescribeProducts) ID() string {
1237	return "OperationSerializer"
1238}
1239
1240func (m *awsRestjson1_serializeOpDescribeProducts) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1241	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1242) {
1243	request, ok := in.Request.(*smithyhttp.Request)
1244	if !ok {
1245		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1246	}
1247
1248	input, ok := in.Parameters.(*DescribeProductsInput)
1249	_ = input
1250	if !ok {
1251		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1252	}
1253
1254	opPath, opQuery := httpbinding.SplitURI("/products")
1255	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1256	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1257	request.Method = "GET"
1258	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1259	if err != nil {
1260		return out, metadata, &smithy.SerializationError{Err: err}
1261	}
1262
1263	if err := awsRestjson1_serializeOpHttpBindingsDescribeProductsInput(input, restEncoder); err != nil {
1264		return out, metadata, &smithy.SerializationError{Err: err}
1265	}
1266
1267	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1268		return out, metadata, &smithy.SerializationError{Err: err}
1269	}
1270	in.Request = request
1271
1272	return next.HandleSerialize(ctx, in)
1273}
1274func awsRestjson1_serializeOpHttpBindingsDescribeProductsInput(v *DescribeProductsInput, encoder *httpbinding.Encoder) error {
1275	if v == nil {
1276		return fmt.Errorf("unsupported serialization of nil %T", v)
1277	}
1278
1279	if v.MaxResults != 0 {
1280		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1281	}
1282
1283	if v.NextToken != nil {
1284		encoder.SetQuery("NextToken").String(*v.NextToken)
1285	}
1286
1287	if v.ProductArn != nil {
1288		encoder.SetQuery("ProductArn").String(*v.ProductArn)
1289	}
1290
1291	return nil
1292}
1293
1294type awsRestjson1_serializeOpDescribeStandards struct {
1295}
1296
1297func (*awsRestjson1_serializeOpDescribeStandards) ID() string {
1298	return "OperationSerializer"
1299}
1300
1301func (m *awsRestjson1_serializeOpDescribeStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1302	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1303) {
1304	request, ok := in.Request.(*smithyhttp.Request)
1305	if !ok {
1306		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1307	}
1308
1309	input, ok := in.Parameters.(*DescribeStandardsInput)
1310	_ = input
1311	if !ok {
1312		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1313	}
1314
1315	opPath, opQuery := httpbinding.SplitURI("/standards")
1316	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1317	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1318	request.Method = "GET"
1319	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1320	if err != nil {
1321		return out, metadata, &smithy.SerializationError{Err: err}
1322	}
1323
1324	if err := awsRestjson1_serializeOpHttpBindingsDescribeStandardsInput(input, restEncoder); err != nil {
1325		return out, metadata, &smithy.SerializationError{Err: err}
1326	}
1327
1328	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1329		return out, metadata, &smithy.SerializationError{Err: err}
1330	}
1331	in.Request = request
1332
1333	return next.HandleSerialize(ctx, in)
1334}
1335func awsRestjson1_serializeOpHttpBindingsDescribeStandardsInput(v *DescribeStandardsInput, encoder *httpbinding.Encoder) error {
1336	if v == nil {
1337		return fmt.Errorf("unsupported serialization of nil %T", v)
1338	}
1339
1340	if v.MaxResults != 0 {
1341		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1342	}
1343
1344	if v.NextToken != nil {
1345		encoder.SetQuery("NextToken").String(*v.NextToken)
1346	}
1347
1348	return nil
1349}
1350
1351type awsRestjson1_serializeOpDescribeStandardsControls struct {
1352}
1353
1354func (*awsRestjson1_serializeOpDescribeStandardsControls) ID() string {
1355	return "OperationSerializer"
1356}
1357
1358func (m *awsRestjson1_serializeOpDescribeStandardsControls) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1359	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1360) {
1361	request, ok := in.Request.(*smithyhttp.Request)
1362	if !ok {
1363		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1364	}
1365
1366	input, ok := in.Parameters.(*DescribeStandardsControlsInput)
1367	_ = input
1368	if !ok {
1369		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1370	}
1371
1372	opPath, opQuery := httpbinding.SplitURI("/standards/controls/{StandardsSubscriptionArn+}")
1373	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1374	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1375	request.Method = "GET"
1376	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1377	if err != nil {
1378		return out, metadata, &smithy.SerializationError{Err: err}
1379	}
1380
1381	if err := awsRestjson1_serializeOpHttpBindingsDescribeStandardsControlsInput(input, restEncoder); err != nil {
1382		return out, metadata, &smithy.SerializationError{Err: err}
1383	}
1384
1385	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1386		return out, metadata, &smithy.SerializationError{Err: err}
1387	}
1388	in.Request = request
1389
1390	return next.HandleSerialize(ctx, in)
1391}
1392func awsRestjson1_serializeOpHttpBindingsDescribeStandardsControlsInput(v *DescribeStandardsControlsInput, encoder *httpbinding.Encoder) error {
1393	if v == nil {
1394		return fmt.Errorf("unsupported serialization of nil %T", v)
1395	}
1396
1397	if v.MaxResults != 0 {
1398		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
1399	}
1400
1401	if v.NextToken != nil {
1402		encoder.SetQuery("NextToken").String(*v.NextToken)
1403	}
1404
1405	if v.StandardsSubscriptionArn == nil || len(*v.StandardsSubscriptionArn) == 0 {
1406		return &smithy.SerializationError{Err: fmt.Errorf("input member StandardsSubscriptionArn must not be empty")}
1407	}
1408	if v.StandardsSubscriptionArn != nil {
1409		if err := encoder.SetURI("StandardsSubscriptionArn").String(*v.StandardsSubscriptionArn); err != nil {
1410			return err
1411		}
1412	}
1413
1414	return nil
1415}
1416
1417type awsRestjson1_serializeOpDisableImportFindingsForProduct struct {
1418}
1419
1420func (*awsRestjson1_serializeOpDisableImportFindingsForProduct) ID() string {
1421	return "OperationSerializer"
1422}
1423
1424func (m *awsRestjson1_serializeOpDisableImportFindingsForProduct) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1425	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1426) {
1427	request, ok := in.Request.(*smithyhttp.Request)
1428	if !ok {
1429		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1430	}
1431
1432	input, ok := in.Parameters.(*DisableImportFindingsForProductInput)
1433	_ = input
1434	if !ok {
1435		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1436	}
1437
1438	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions/{ProductSubscriptionArn+}")
1439	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1440	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1441	request.Method = "DELETE"
1442	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1443	if err != nil {
1444		return out, metadata, &smithy.SerializationError{Err: err}
1445	}
1446
1447	if err := awsRestjson1_serializeOpHttpBindingsDisableImportFindingsForProductInput(input, restEncoder); err != nil {
1448		return out, metadata, &smithy.SerializationError{Err: err}
1449	}
1450
1451	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1452		return out, metadata, &smithy.SerializationError{Err: err}
1453	}
1454	in.Request = request
1455
1456	return next.HandleSerialize(ctx, in)
1457}
1458func awsRestjson1_serializeOpHttpBindingsDisableImportFindingsForProductInput(v *DisableImportFindingsForProductInput, encoder *httpbinding.Encoder) error {
1459	if v == nil {
1460		return fmt.Errorf("unsupported serialization of nil %T", v)
1461	}
1462
1463	if v.ProductSubscriptionArn == nil || len(*v.ProductSubscriptionArn) == 0 {
1464		return &smithy.SerializationError{Err: fmt.Errorf("input member ProductSubscriptionArn must not be empty")}
1465	}
1466	if v.ProductSubscriptionArn != nil {
1467		if err := encoder.SetURI("ProductSubscriptionArn").String(*v.ProductSubscriptionArn); err != nil {
1468			return err
1469		}
1470	}
1471
1472	return nil
1473}
1474
1475type awsRestjson1_serializeOpDisableOrganizationAdminAccount struct {
1476}
1477
1478func (*awsRestjson1_serializeOpDisableOrganizationAdminAccount) ID() string {
1479	return "OperationSerializer"
1480}
1481
1482func (m *awsRestjson1_serializeOpDisableOrganizationAdminAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1483	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1484) {
1485	request, ok := in.Request.(*smithyhttp.Request)
1486	if !ok {
1487		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1488	}
1489
1490	input, ok := in.Parameters.(*DisableOrganizationAdminAccountInput)
1491	_ = input
1492	if !ok {
1493		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1494	}
1495
1496	opPath, opQuery := httpbinding.SplitURI("/organization/admin/disable")
1497	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1498	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1499	request.Method = "POST"
1500	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1501	if err != nil {
1502		return out, metadata, &smithy.SerializationError{Err: err}
1503	}
1504
1505	restEncoder.SetHeader("Content-Type").String("application/json")
1506
1507	jsonEncoder := smithyjson.NewEncoder()
1508	if err := awsRestjson1_serializeOpDocumentDisableOrganizationAdminAccountInput(input, jsonEncoder.Value); err != nil {
1509		return out, metadata, &smithy.SerializationError{Err: err}
1510	}
1511
1512	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1513		return out, metadata, &smithy.SerializationError{Err: err}
1514	}
1515
1516	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1517		return out, metadata, &smithy.SerializationError{Err: err}
1518	}
1519	in.Request = request
1520
1521	return next.HandleSerialize(ctx, in)
1522}
1523func awsRestjson1_serializeOpHttpBindingsDisableOrganizationAdminAccountInput(v *DisableOrganizationAdminAccountInput, encoder *httpbinding.Encoder) error {
1524	if v == nil {
1525		return fmt.Errorf("unsupported serialization of nil %T", v)
1526	}
1527
1528	return nil
1529}
1530
1531func awsRestjson1_serializeOpDocumentDisableOrganizationAdminAccountInput(v *DisableOrganizationAdminAccountInput, value smithyjson.Value) error {
1532	object := value.Object()
1533	defer object.Close()
1534
1535	if v.AdminAccountId != nil {
1536		ok := object.Key("AdminAccountId")
1537		ok.String(*v.AdminAccountId)
1538	}
1539
1540	return nil
1541}
1542
1543type awsRestjson1_serializeOpDisableSecurityHub struct {
1544}
1545
1546func (*awsRestjson1_serializeOpDisableSecurityHub) ID() string {
1547	return "OperationSerializer"
1548}
1549
1550func (m *awsRestjson1_serializeOpDisableSecurityHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1551	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1552) {
1553	request, ok := in.Request.(*smithyhttp.Request)
1554	if !ok {
1555		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1556	}
1557
1558	input, ok := in.Parameters.(*DisableSecurityHubInput)
1559	_ = input
1560	if !ok {
1561		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1562	}
1563
1564	opPath, opQuery := httpbinding.SplitURI("/accounts")
1565	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1566	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1567	request.Method = "DELETE"
1568	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1569	if err != nil {
1570		return out, metadata, &smithy.SerializationError{Err: err}
1571	}
1572
1573	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1574		return out, metadata, &smithy.SerializationError{Err: err}
1575	}
1576	in.Request = request
1577
1578	return next.HandleSerialize(ctx, in)
1579}
1580func awsRestjson1_serializeOpHttpBindingsDisableSecurityHubInput(v *DisableSecurityHubInput, encoder *httpbinding.Encoder) error {
1581	if v == nil {
1582		return fmt.Errorf("unsupported serialization of nil %T", v)
1583	}
1584
1585	return nil
1586}
1587
1588type awsRestjson1_serializeOpDisassociateFromAdministratorAccount struct {
1589}
1590
1591func (*awsRestjson1_serializeOpDisassociateFromAdministratorAccount) ID() string {
1592	return "OperationSerializer"
1593}
1594
1595func (m *awsRestjson1_serializeOpDisassociateFromAdministratorAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1596	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1597) {
1598	request, ok := in.Request.(*smithyhttp.Request)
1599	if !ok {
1600		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1601	}
1602
1603	input, ok := in.Parameters.(*DisassociateFromAdministratorAccountInput)
1604	_ = input
1605	if !ok {
1606		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1607	}
1608
1609	opPath, opQuery := httpbinding.SplitURI("/administrator/disassociate")
1610	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1611	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1612	request.Method = "POST"
1613	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1614	if err != nil {
1615		return out, metadata, &smithy.SerializationError{Err: err}
1616	}
1617
1618	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1619		return out, metadata, &smithy.SerializationError{Err: err}
1620	}
1621	in.Request = request
1622
1623	return next.HandleSerialize(ctx, in)
1624}
1625func awsRestjson1_serializeOpHttpBindingsDisassociateFromAdministratorAccountInput(v *DisassociateFromAdministratorAccountInput, encoder *httpbinding.Encoder) error {
1626	if v == nil {
1627		return fmt.Errorf("unsupported serialization of nil %T", v)
1628	}
1629
1630	return nil
1631}
1632
1633type awsRestjson1_serializeOpDisassociateFromMasterAccount struct {
1634}
1635
1636func (*awsRestjson1_serializeOpDisassociateFromMasterAccount) ID() string {
1637	return "OperationSerializer"
1638}
1639
1640func (m *awsRestjson1_serializeOpDisassociateFromMasterAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1641	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1642) {
1643	request, ok := in.Request.(*smithyhttp.Request)
1644	if !ok {
1645		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1646	}
1647
1648	input, ok := in.Parameters.(*DisassociateFromMasterAccountInput)
1649	_ = input
1650	if !ok {
1651		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1652	}
1653
1654	opPath, opQuery := httpbinding.SplitURI("/master/disassociate")
1655	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1656	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1657	request.Method = "POST"
1658	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1659	if err != nil {
1660		return out, metadata, &smithy.SerializationError{Err: err}
1661	}
1662
1663	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1664		return out, metadata, &smithy.SerializationError{Err: err}
1665	}
1666	in.Request = request
1667
1668	return next.HandleSerialize(ctx, in)
1669}
1670func awsRestjson1_serializeOpHttpBindingsDisassociateFromMasterAccountInput(v *DisassociateFromMasterAccountInput, encoder *httpbinding.Encoder) error {
1671	if v == nil {
1672		return fmt.Errorf("unsupported serialization of nil %T", v)
1673	}
1674
1675	return nil
1676}
1677
1678type awsRestjson1_serializeOpDisassociateMembers struct {
1679}
1680
1681func (*awsRestjson1_serializeOpDisassociateMembers) ID() string {
1682	return "OperationSerializer"
1683}
1684
1685func (m *awsRestjson1_serializeOpDisassociateMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1686	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1687) {
1688	request, ok := in.Request.(*smithyhttp.Request)
1689	if !ok {
1690		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1691	}
1692
1693	input, ok := in.Parameters.(*DisassociateMembersInput)
1694	_ = input
1695	if !ok {
1696		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1697	}
1698
1699	opPath, opQuery := httpbinding.SplitURI("/members/disassociate")
1700	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1701	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1702	request.Method = "POST"
1703	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1704	if err != nil {
1705		return out, metadata, &smithy.SerializationError{Err: err}
1706	}
1707
1708	restEncoder.SetHeader("Content-Type").String("application/json")
1709
1710	jsonEncoder := smithyjson.NewEncoder()
1711	if err := awsRestjson1_serializeOpDocumentDisassociateMembersInput(input, jsonEncoder.Value); err != nil {
1712		return out, metadata, &smithy.SerializationError{Err: err}
1713	}
1714
1715	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1716		return out, metadata, &smithy.SerializationError{Err: err}
1717	}
1718
1719	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1720		return out, metadata, &smithy.SerializationError{Err: err}
1721	}
1722	in.Request = request
1723
1724	return next.HandleSerialize(ctx, in)
1725}
1726func awsRestjson1_serializeOpHttpBindingsDisassociateMembersInput(v *DisassociateMembersInput, encoder *httpbinding.Encoder) error {
1727	if v == nil {
1728		return fmt.Errorf("unsupported serialization of nil %T", v)
1729	}
1730
1731	return nil
1732}
1733
1734func awsRestjson1_serializeOpDocumentDisassociateMembersInput(v *DisassociateMembersInput, value smithyjson.Value) error {
1735	object := value.Object()
1736	defer object.Close()
1737
1738	if v.AccountIds != nil {
1739		ok := object.Key("AccountIds")
1740		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
1741			return err
1742		}
1743	}
1744
1745	return nil
1746}
1747
1748type awsRestjson1_serializeOpEnableImportFindingsForProduct struct {
1749}
1750
1751func (*awsRestjson1_serializeOpEnableImportFindingsForProduct) ID() string {
1752	return "OperationSerializer"
1753}
1754
1755func (m *awsRestjson1_serializeOpEnableImportFindingsForProduct) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1756	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1757) {
1758	request, ok := in.Request.(*smithyhttp.Request)
1759	if !ok {
1760		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1761	}
1762
1763	input, ok := in.Parameters.(*EnableImportFindingsForProductInput)
1764	_ = input
1765	if !ok {
1766		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1767	}
1768
1769	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions")
1770	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1771	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1772	request.Method = "POST"
1773	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1774	if err != nil {
1775		return out, metadata, &smithy.SerializationError{Err: err}
1776	}
1777
1778	restEncoder.SetHeader("Content-Type").String("application/json")
1779
1780	jsonEncoder := smithyjson.NewEncoder()
1781	if err := awsRestjson1_serializeOpDocumentEnableImportFindingsForProductInput(input, jsonEncoder.Value); err != nil {
1782		return out, metadata, &smithy.SerializationError{Err: err}
1783	}
1784
1785	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1786		return out, metadata, &smithy.SerializationError{Err: err}
1787	}
1788
1789	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1790		return out, metadata, &smithy.SerializationError{Err: err}
1791	}
1792	in.Request = request
1793
1794	return next.HandleSerialize(ctx, in)
1795}
1796func awsRestjson1_serializeOpHttpBindingsEnableImportFindingsForProductInput(v *EnableImportFindingsForProductInput, encoder *httpbinding.Encoder) error {
1797	if v == nil {
1798		return fmt.Errorf("unsupported serialization of nil %T", v)
1799	}
1800
1801	return nil
1802}
1803
1804func awsRestjson1_serializeOpDocumentEnableImportFindingsForProductInput(v *EnableImportFindingsForProductInput, value smithyjson.Value) error {
1805	object := value.Object()
1806	defer object.Close()
1807
1808	if v.ProductArn != nil {
1809		ok := object.Key("ProductArn")
1810		ok.String(*v.ProductArn)
1811	}
1812
1813	return nil
1814}
1815
1816type awsRestjson1_serializeOpEnableOrganizationAdminAccount struct {
1817}
1818
1819func (*awsRestjson1_serializeOpEnableOrganizationAdminAccount) ID() string {
1820	return "OperationSerializer"
1821}
1822
1823func (m *awsRestjson1_serializeOpEnableOrganizationAdminAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1824	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1825) {
1826	request, ok := in.Request.(*smithyhttp.Request)
1827	if !ok {
1828		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1829	}
1830
1831	input, ok := in.Parameters.(*EnableOrganizationAdminAccountInput)
1832	_ = input
1833	if !ok {
1834		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1835	}
1836
1837	opPath, opQuery := httpbinding.SplitURI("/organization/admin/enable")
1838	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1839	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1840	request.Method = "POST"
1841	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1842	if err != nil {
1843		return out, metadata, &smithy.SerializationError{Err: err}
1844	}
1845
1846	restEncoder.SetHeader("Content-Type").String("application/json")
1847
1848	jsonEncoder := smithyjson.NewEncoder()
1849	if err := awsRestjson1_serializeOpDocumentEnableOrganizationAdminAccountInput(input, jsonEncoder.Value); err != nil {
1850		return out, metadata, &smithy.SerializationError{Err: err}
1851	}
1852
1853	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1854		return out, metadata, &smithy.SerializationError{Err: err}
1855	}
1856
1857	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1858		return out, metadata, &smithy.SerializationError{Err: err}
1859	}
1860	in.Request = request
1861
1862	return next.HandleSerialize(ctx, in)
1863}
1864func awsRestjson1_serializeOpHttpBindingsEnableOrganizationAdminAccountInput(v *EnableOrganizationAdminAccountInput, encoder *httpbinding.Encoder) error {
1865	if v == nil {
1866		return fmt.Errorf("unsupported serialization of nil %T", v)
1867	}
1868
1869	return nil
1870}
1871
1872func awsRestjson1_serializeOpDocumentEnableOrganizationAdminAccountInput(v *EnableOrganizationAdminAccountInput, value smithyjson.Value) error {
1873	object := value.Object()
1874	defer object.Close()
1875
1876	if v.AdminAccountId != nil {
1877		ok := object.Key("AdminAccountId")
1878		ok.String(*v.AdminAccountId)
1879	}
1880
1881	return nil
1882}
1883
1884type awsRestjson1_serializeOpEnableSecurityHub struct {
1885}
1886
1887func (*awsRestjson1_serializeOpEnableSecurityHub) ID() string {
1888	return "OperationSerializer"
1889}
1890
1891func (m *awsRestjson1_serializeOpEnableSecurityHub) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1892	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1893) {
1894	request, ok := in.Request.(*smithyhttp.Request)
1895	if !ok {
1896		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1897	}
1898
1899	input, ok := in.Parameters.(*EnableSecurityHubInput)
1900	_ = input
1901	if !ok {
1902		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1903	}
1904
1905	opPath, opQuery := httpbinding.SplitURI("/accounts")
1906	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1907	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1908	request.Method = "POST"
1909	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1910	if err != nil {
1911		return out, metadata, &smithy.SerializationError{Err: err}
1912	}
1913
1914	restEncoder.SetHeader("Content-Type").String("application/json")
1915
1916	jsonEncoder := smithyjson.NewEncoder()
1917	if err := awsRestjson1_serializeOpDocumentEnableSecurityHubInput(input, jsonEncoder.Value); err != nil {
1918		return out, metadata, &smithy.SerializationError{Err: err}
1919	}
1920
1921	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
1922		return out, metadata, &smithy.SerializationError{Err: err}
1923	}
1924
1925	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1926		return out, metadata, &smithy.SerializationError{Err: err}
1927	}
1928	in.Request = request
1929
1930	return next.HandleSerialize(ctx, in)
1931}
1932func awsRestjson1_serializeOpHttpBindingsEnableSecurityHubInput(v *EnableSecurityHubInput, encoder *httpbinding.Encoder) error {
1933	if v == nil {
1934		return fmt.Errorf("unsupported serialization of nil %T", v)
1935	}
1936
1937	return nil
1938}
1939
1940func awsRestjson1_serializeOpDocumentEnableSecurityHubInput(v *EnableSecurityHubInput, value smithyjson.Value) error {
1941	object := value.Object()
1942	defer object.Close()
1943
1944	if v.EnableDefaultStandards {
1945		ok := object.Key("EnableDefaultStandards")
1946		ok.Boolean(v.EnableDefaultStandards)
1947	}
1948
1949	if v.Tags != nil {
1950		ok := object.Key("Tags")
1951		if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil {
1952			return err
1953		}
1954	}
1955
1956	return nil
1957}
1958
1959type awsRestjson1_serializeOpGetAdministratorAccount struct {
1960}
1961
1962func (*awsRestjson1_serializeOpGetAdministratorAccount) ID() string {
1963	return "OperationSerializer"
1964}
1965
1966func (m *awsRestjson1_serializeOpGetAdministratorAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
1967	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
1968) {
1969	request, ok := in.Request.(*smithyhttp.Request)
1970	if !ok {
1971		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
1972	}
1973
1974	input, ok := in.Parameters.(*GetAdministratorAccountInput)
1975	_ = input
1976	if !ok {
1977		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
1978	}
1979
1980	opPath, opQuery := httpbinding.SplitURI("/administrator")
1981	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
1982	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
1983	request.Method = "GET"
1984	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
1985	if err != nil {
1986		return out, metadata, &smithy.SerializationError{Err: err}
1987	}
1988
1989	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
1990		return out, metadata, &smithy.SerializationError{Err: err}
1991	}
1992	in.Request = request
1993
1994	return next.HandleSerialize(ctx, in)
1995}
1996func awsRestjson1_serializeOpHttpBindingsGetAdministratorAccountInput(v *GetAdministratorAccountInput, encoder *httpbinding.Encoder) error {
1997	if v == nil {
1998		return fmt.Errorf("unsupported serialization of nil %T", v)
1999	}
2000
2001	return nil
2002}
2003
2004type awsRestjson1_serializeOpGetEnabledStandards struct {
2005}
2006
2007func (*awsRestjson1_serializeOpGetEnabledStandards) ID() string {
2008	return "OperationSerializer"
2009}
2010
2011func (m *awsRestjson1_serializeOpGetEnabledStandards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2012	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2013) {
2014	request, ok := in.Request.(*smithyhttp.Request)
2015	if !ok {
2016		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2017	}
2018
2019	input, ok := in.Parameters.(*GetEnabledStandardsInput)
2020	_ = input
2021	if !ok {
2022		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2023	}
2024
2025	opPath, opQuery := httpbinding.SplitURI("/standards/get")
2026	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2027	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2028	request.Method = "POST"
2029	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2030	if err != nil {
2031		return out, metadata, &smithy.SerializationError{Err: err}
2032	}
2033
2034	restEncoder.SetHeader("Content-Type").String("application/json")
2035
2036	jsonEncoder := smithyjson.NewEncoder()
2037	if err := awsRestjson1_serializeOpDocumentGetEnabledStandardsInput(input, jsonEncoder.Value); err != nil {
2038		return out, metadata, &smithy.SerializationError{Err: err}
2039	}
2040
2041	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2042		return out, metadata, &smithy.SerializationError{Err: err}
2043	}
2044
2045	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2046		return out, metadata, &smithy.SerializationError{Err: err}
2047	}
2048	in.Request = request
2049
2050	return next.HandleSerialize(ctx, in)
2051}
2052func awsRestjson1_serializeOpHttpBindingsGetEnabledStandardsInput(v *GetEnabledStandardsInput, encoder *httpbinding.Encoder) error {
2053	if v == nil {
2054		return fmt.Errorf("unsupported serialization of nil %T", v)
2055	}
2056
2057	return nil
2058}
2059
2060func awsRestjson1_serializeOpDocumentGetEnabledStandardsInput(v *GetEnabledStandardsInput, value smithyjson.Value) error {
2061	object := value.Object()
2062	defer object.Close()
2063
2064	if v.MaxResults != 0 {
2065		ok := object.Key("MaxResults")
2066		ok.Integer(v.MaxResults)
2067	}
2068
2069	if v.NextToken != nil {
2070		ok := object.Key("NextToken")
2071		ok.String(*v.NextToken)
2072	}
2073
2074	if v.StandardsSubscriptionArns != nil {
2075		ok := object.Key("StandardsSubscriptionArns")
2076		if err := awsRestjson1_serializeDocumentStandardsSubscriptionArns(v.StandardsSubscriptionArns, ok); err != nil {
2077			return err
2078		}
2079	}
2080
2081	return nil
2082}
2083
2084type awsRestjson1_serializeOpGetFindings struct {
2085}
2086
2087func (*awsRestjson1_serializeOpGetFindings) ID() string {
2088	return "OperationSerializer"
2089}
2090
2091func (m *awsRestjson1_serializeOpGetFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2092	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2093) {
2094	request, ok := in.Request.(*smithyhttp.Request)
2095	if !ok {
2096		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2097	}
2098
2099	input, ok := in.Parameters.(*GetFindingsInput)
2100	_ = input
2101	if !ok {
2102		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2103	}
2104
2105	opPath, opQuery := httpbinding.SplitURI("/findings")
2106	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2107	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2108	request.Method = "POST"
2109	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2110	if err != nil {
2111		return out, metadata, &smithy.SerializationError{Err: err}
2112	}
2113
2114	restEncoder.SetHeader("Content-Type").String("application/json")
2115
2116	jsonEncoder := smithyjson.NewEncoder()
2117	if err := awsRestjson1_serializeOpDocumentGetFindingsInput(input, jsonEncoder.Value); err != nil {
2118		return out, metadata, &smithy.SerializationError{Err: err}
2119	}
2120
2121	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2122		return out, metadata, &smithy.SerializationError{Err: err}
2123	}
2124
2125	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2126		return out, metadata, &smithy.SerializationError{Err: err}
2127	}
2128	in.Request = request
2129
2130	return next.HandleSerialize(ctx, in)
2131}
2132func awsRestjson1_serializeOpHttpBindingsGetFindingsInput(v *GetFindingsInput, encoder *httpbinding.Encoder) error {
2133	if v == nil {
2134		return fmt.Errorf("unsupported serialization of nil %T", v)
2135	}
2136
2137	return nil
2138}
2139
2140func awsRestjson1_serializeOpDocumentGetFindingsInput(v *GetFindingsInput, value smithyjson.Value) error {
2141	object := value.Object()
2142	defer object.Close()
2143
2144	if v.Filters != nil {
2145		ok := object.Key("Filters")
2146		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
2147			return err
2148		}
2149	}
2150
2151	if v.MaxResults != 0 {
2152		ok := object.Key("MaxResults")
2153		ok.Integer(v.MaxResults)
2154	}
2155
2156	if v.NextToken != nil {
2157		ok := object.Key("NextToken")
2158		ok.String(*v.NextToken)
2159	}
2160
2161	if v.SortCriteria != nil {
2162		ok := object.Key("SortCriteria")
2163		if err := awsRestjson1_serializeDocumentSortCriteria(v.SortCriteria, ok); err != nil {
2164			return err
2165		}
2166	}
2167
2168	return nil
2169}
2170
2171type awsRestjson1_serializeOpGetInsightResults struct {
2172}
2173
2174func (*awsRestjson1_serializeOpGetInsightResults) ID() string {
2175	return "OperationSerializer"
2176}
2177
2178func (m *awsRestjson1_serializeOpGetInsightResults) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2179	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2180) {
2181	request, ok := in.Request.(*smithyhttp.Request)
2182	if !ok {
2183		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2184	}
2185
2186	input, ok := in.Parameters.(*GetInsightResultsInput)
2187	_ = input
2188	if !ok {
2189		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2190	}
2191
2192	opPath, opQuery := httpbinding.SplitURI("/insights/results/{InsightArn+}")
2193	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2194	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2195	request.Method = "GET"
2196	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2197	if err != nil {
2198		return out, metadata, &smithy.SerializationError{Err: err}
2199	}
2200
2201	if err := awsRestjson1_serializeOpHttpBindingsGetInsightResultsInput(input, restEncoder); err != nil {
2202		return out, metadata, &smithy.SerializationError{Err: err}
2203	}
2204
2205	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2206		return out, metadata, &smithy.SerializationError{Err: err}
2207	}
2208	in.Request = request
2209
2210	return next.HandleSerialize(ctx, in)
2211}
2212func awsRestjson1_serializeOpHttpBindingsGetInsightResultsInput(v *GetInsightResultsInput, encoder *httpbinding.Encoder) error {
2213	if v == nil {
2214		return fmt.Errorf("unsupported serialization of nil %T", v)
2215	}
2216
2217	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
2218		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
2219	}
2220	if v.InsightArn != nil {
2221		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
2222			return err
2223		}
2224	}
2225
2226	return nil
2227}
2228
2229type awsRestjson1_serializeOpGetInsights struct {
2230}
2231
2232func (*awsRestjson1_serializeOpGetInsights) ID() string {
2233	return "OperationSerializer"
2234}
2235
2236func (m *awsRestjson1_serializeOpGetInsights) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2237	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2238) {
2239	request, ok := in.Request.(*smithyhttp.Request)
2240	if !ok {
2241		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2242	}
2243
2244	input, ok := in.Parameters.(*GetInsightsInput)
2245	_ = input
2246	if !ok {
2247		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2248	}
2249
2250	opPath, opQuery := httpbinding.SplitURI("/insights/get")
2251	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2252	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2253	request.Method = "POST"
2254	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2255	if err != nil {
2256		return out, metadata, &smithy.SerializationError{Err: err}
2257	}
2258
2259	restEncoder.SetHeader("Content-Type").String("application/json")
2260
2261	jsonEncoder := smithyjson.NewEncoder()
2262	if err := awsRestjson1_serializeOpDocumentGetInsightsInput(input, jsonEncoder.Value); err != nil {
2263		return out, metadata, &smithy.SerializationError{Err: err}
2264	}
2265
2266	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2267		return out, metadata, &smithy.SerializationError{Err: err}
2268	}
2269
2270	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2271		return out, metadata, &smithy.SerializationError{Err: err}
2272	}
2273	in.Request = request
2274
2275	return next.HandleSerialize(ctx, in)
2276}
2277func awsRestjson1_serializeOpHttpBindingsGetInsightsInput(v *GetInsightsInput, encoder *httpbinding.Encoder) error {
2278	if v == nil {
2279		return fmt.Errorf("unsupported serialization of nil %T", v)
2280	}
2281
2282	return nil
2283}
2284
2285func awsRestjson1_serializeOpDocumentGetInsightsInput(v *GetInsightsInput, value smithyjson.Value) error {
2286	object := value.Object()
2287	defer object.Close()
2288
2289	if v.InsightArns != nil {
2290		ok := object.Key("InsightArns")
2291		if err := awsRestjson1_serializeDocumentArnList(v.InsightArns, ok); err != nil {
2292			return err
2293		}
2294	}
2295
2296	if v.MaxResults != 0 {
2297		ok := object.Key("MaxResults")
2298		ok.Integer(v.MaxResults)
2299	}
2300
2301	if v.NextToken != nil {
2302		ok := object.Key("NextToken")
2303		ok.String(*v.NextToken)
2304	}
2305
2306	return nil
2307}
2308
2309type awsRestjson1_serializeOpGetInvitationsCount struct {
2310}
2311
2312func (*awsRestjson1_serializeOpGetInvitationsCount) ID() string {
2313	return "OperationSerializer"
2314}
2315
2316func (m *awsRestjson1_serializeOpGetInvitationsCount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2317	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2318) {
2319	request, ok := in.Request.(*smithyhttp.Request)
2320	if !ok {
2321		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2322	}
2323
2324	input, ok := in.Parameters.(*GetInvitationsCountInput)
2325	_ = input
2326	if !ok {
2327		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2328	}
2329
2330	opPath, opQuery := httpbinding.SplitURI("/invitations/count")
2331	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2332	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2333	request.Method = "GET"
2334	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2335	if err != nil {
2336		return out, metadata, &smithy.SerializationError{Err: err}
2337	}
2338
2339	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2340		return out, metadata, &smithy.SerializationError{Err: err}
2341	}
2342	in.Request = request
2343
2344	return next.HandleSerialize(ctx, in)
2345}
2346func awsRestjson1_serializeOpHttpBindingsGetInvitationsCountInput(v *GetInvitationsCountInput, encoder *httpbinding.Encoder) error {
2347	if v == nil {
2348		return fmt.Errorf("unsupported serialization of nil %T", v)
2349	}
2350
2351	return nil
2352}
2353
2354type awsRestjson1_serializeOpGetMasterAccount struct {
2355}
2356
2357func (*awsRestjson1_serializeOpGetMasterAccount) ID() string {
2358	return "OperationSerializer"
2359}
2360
2361func (m *awsRestjson1_serializeOpGetMasterAccount) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2362	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2363) {
2364	request, ok := in.Request.(*smithyhttp.Request)
2365	if !ok {
2366		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2367	}
2368
2369	input, ok := in.Parameters.(*GetMasterAccountInput)
2370	_ = input
2371	if !ok {
2372		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2373	}
2374
2375	opPath, opQuery := httpbinding.SplitURI("/master")
2376	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2377	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2378	request.Method = "GET"
2379	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2380	if err != nil {
2381		return out, metadata, &smithy.SerializationError{Err: err}
2382	}
2383
2384	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2385		return out, metadata, &smithy.SerializationError{Err: err}
2386	}
2387	in.Request = request
2388
2389	return next.HandleSerialize(ctx, in)
2390}
2391func awsRestjson1_serializeOpHttpBindingsGetMasterAccountInput(v *GetMasterAccountInput, encoder *httpbinding.Encoder) error {
2392	if v == nil {
2393		return fmt.Errorf("unsupported serialization of nil %T", v)
2394	}
2395
2396	return nil
2397}
2398
2399type awsRestjson1_serializeOpGetMembers struct {
2400}
2401
2402func (*awsRestjson1_serializeOpGetMembers) ID() string {
2403	return "OperationSerializer"
2404}
2405
2406func (m *awsRestjson1_serializeOpGetMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2407	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2408) {
2409	request, ok := in.Request.(*smithyhttp.Request)
2410	if !ok {
2411		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2412	}
2413
2414	input, ok := in.Parameters.(*GetMembersInput)
2415	_ = input
2416	if !ok {
2417		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2418	}
2419
2420	opPath, opQuery := httpbinding.SplitURI("/members/get")
2421	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2422	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2423	request.Method = "POST"
2424	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2425	if err != nil {
2426		return out, metadata, &smithy.SerializationError{Err: err}
2427	}
2428
2429	restEncoder.SetHeader("Content-Type").String("application/json")
2430
2431	jsonEncoder := smithyjson.NewEncoder()
2432	if err := awsRestjson1_serializeOpDocumentGetMembersInput(input, jsonEncoder.Value); err != nil {
2433		return out, metadata, &smithy.SerializationError{Err: err}
2434	}
2435
2436	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2437		return out, metadata, &smithy.SerializationError{Err: err}
2438	}
2439
2440	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2441		return out, metadata, &smithy.SerializationError{Err: err}
2442	}
2443	in.Request = request
2444
2445	return next.HandleSerialize(ctx, in)
2446}
2447func awsRestjson1_serializeOpHttpBindingsGetMembersInput(v *GetMembersInput, encoder *httpbinding.Encoder) error {
2448	if v == nil {
2449		return fmt.Errorf("unsupported serialization of nil %T", v)
2450	}
2451
2452	return nil
2453}
2454
2455func awsRestjson1_serializeOpDocumentGetMembersInput(v *GetMembersInput, value smithyjson.Value) error {
2456	object := value.Object()
2457	defer object.Close()
2458
2459	if v.AccountIds != nil {
2460		ok := object.Key("AccountIds")
2461		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
2462			return err
2463		}
2464	}
2465
2466	return nil
2467}
2468
2469type awsRestjson1_serializeOpInviteMembers struct {
2470}
2471
2472func (*awsRestjson1_serializeOpInviteMembers) ID() string {
2473	return "OperationSerializer"
2474}
2475
2476func (m *awsRestjson1_serializeOpInviteMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2477	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2478) {
2479	request, ok := in.Request.(*smithyhttp.Request)
2480	if !ok {
2481		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2482	}
2483
2484	input, ok := in.Parameters.(*InviteMembersInput)
2485	_ = input
2486	if !ok {
2487		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2488	}
2489
2490	opPath, opQuery := httpbinding.SplitURI("/members/invite")
2491	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2492	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2493	request.Method = "POST"
2494	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2495	if err != nil {
2496		return out, metadata, &smithy.SerializationError{Err: err}
2497	}
2498
2499	restEncoder.SetHeader("Content-Type").String("application/json")
2500
2501	jsonEncoder := smithyjson.NewEncoder()
2502	if err := awsRestjson1_serializeOpDocumentInviteMembersInput(input, jsonEncoder.Value); err != nil {
2503		return out, metadata, &smithy.SerializationError{Err: err}
2504	}
2505
2506	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2507		return out, metadata, &smithy.SerializationError{Err: err}
2508	}
2509
2510	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2511		return out, metadata, &smithy.SerializationError{Err: err}
2512	}
2513	in.Request = request
2514
2515	return next.HandleSerialize(ctx, in)
2516}
2517func awsRestjson1_serializeOpHttpBindingsInviteMembersInput(v *InviteMembersInput, encoder *httpbinding.Encoder) error {
2518	if v == nil {
2519		return fmt.Errorf("unsupported serialization of nil %T", v)
2520	}
2521
2522	return nil
2523}
2524
2525func awsRestjson1_serializeOpDocumentInviteMembersInput(v *InviteMembersInput, value smithyjson.Value) error {
2526	object := value.Object()
2527	defer object.Close()
2528
2529	if v.AccountIds != nil {
2530		ok := object.Key("AccountIds")
2531		if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil {
2532			return err
2533		}
2534	}
2535
2536	return nil
2537}
2538
2539type awsRestjson1_serializeOpListEnabledProductsForImport struct {
2540}
2541
2542func (*awsRestjson1_serializeOpListEnabledProductsForImport) ID() string {
2543	return "OperationSerializer"
2544}
2545
2546func (m *awsRestjson1_serializeOpListEnabledProductsForImport) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2547	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2548) {
2549	request, ok := in.Request.(*smithyhttp.Request)
2550	if !ok {
2551		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2552	}
2553
2554	input, ok := in.Parameters.(*ListEnabledProductsForImportInput)
2555	_ = input
2556	if !ok {
2557		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2558	}
2559
2560	opPath, opQuery := httpbinding.SplitURI("/productSubscriptions")
2561	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2562	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2563	request.Method = "GET"
2564	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2565	if err != nil {
2566		return out, metadata, &smithy.SerializationError{Err: err}
2567	}
2568
2569	if err := awsRestjson1_serializeOpHttpBindingsListEnabledProductsForImportInput(input, restEncoder); err != nil {
2570		return out, metadata, &smithy.SerializationError{Err: err}
2571	}
2572
2573	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2574		return out, metadata, &smithy.SerializationError{Err: err}
2575	}
2576	in.Request = request
2577
2578	return next.HandleSerialize(ctx, in)
2579}
2580func awsRestjson1_serializeOpHttpBindingsListEnabledProductsForImportInput(v *ListEnabledProductsForImportInput, encoder *httpbinding.Encoder) error {
2581	if v == nil {
2582		return fmt.Errorf("unsupported serialization of nil %T", v)
2583	}
2584
2585	if v.MaxResults != 0 {
2586		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2587	}
2588
2589	if v.NextToken != nil {
2590		encoder.SetQuery("NextToken").String(*v.NextToken)
2591	}
2592
2593	return nil
2594}
2595
2596type awsRestjson1_serializeOpListInvitations struct {
2597}
2598
2599func (*awsRestjson1_serializeOpListInvitations) ID() string {
2600	return "OperationSerializer"
2601}
2602
2603func (m *awsRestjson1_serializeOpListInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2604	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2605) {
2606	request, ok := in.Request.(*smithyhttp.Request)
2607	if !ok {
2608		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2609	}
2610
2611	input, ok := in.Parameters.(*ListInvitationsInput)
2612	_ = input
2613	if !ok {
2614		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2615	}
2616
2617	opPath, opQuery := httpbinding.SplitURI("/invitations")
2618	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2619	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2620	request.Method = "GET"
2621	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2622	if err != nil {
2623		return out, metadata, &smithy.SerializationError{Err: err}
2624	}
2625
2626	if err := awsRestjson1_serializeOpHttpBindingsListInvitationsInput(input, restEncoder); err != nil {
2627		return out, metadata, &smithy.SerializationError{Err: err}
2628	}
2629
2630	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2631		return out, metadata, &smithy.SerializationError{Err: err}
2632	}
2633	in.Request = request
2634
2635	return next.HandleSerialize(ctx, in)
2636}
2637func awsRestjson1_serializeOpHttpBindingsListInvitationsInput(v *ListInvitationsInput, encoder *httpbinding.Encoder) error {
2638	if v == nil {
2639		return fmt.Errorf("unsupported serialization of nil %T", v)
2640	}
2641
2642	if v.MaxResults != 0 {
2643		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2644	}
2645
2646	if v.NextToken != nil {
2647		encoder.SetQuery("NextToken").String(*v.NextToken)
2648	}
2649
2650	return nil
2651}
2652
2653type awsRestjson1_serializeOpListMembers struct {
2654}
2655
2656func (*awsRestjson1_serializeOpListMembers) ID() string {
2657	return "OperationSerializer"
2658}
2659
2660func (m *awsRestjson1_serializeOpListMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2661	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2662) {
2663	request, ok := in.Request.(*smithyhttp.Request)
2664	if !ok {
2665		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2666	}
2667
2668	input, ok := in.Parameters.(*ListMembersInput)
2669	_ = input
2670	if !ok {
2671		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2672	}
2673
2674	opPath, opQuery := httpbinding.SplitURI("/members")
2675	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2676	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2677	request.Method = "GET"
2678	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2679	if err != nil {
2680		return out, metadata, &smithy.SerializationError{Err: err}
2681	}
2682
2683	if err := awsRestjson1_serializeOpHttpBindingsListMembersInput(input, restEncoder); err != nil {
2684		return out, metadata, &smithy.SerializationError{Err: err}
2685	}
2686
2687	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2688		return out, metadata, &smithy.SerializationError{Err: err}
2689	}
2690	in.Request = request
2691
2692	return next.HandleSerialize(ctx, in)
2693}
2694func awsRestjson1_serializeOpHttpBindingsListMembersInput(v *ListMembersInput, encoder *httpbinding.Encoder) error {
2695	if v == nil {
2696		return fmt.Errorf("unsupported serialization of nil %T", v)
2697	}
2698
2699	if v.MaxResults != 0 {
2700		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2701	}
2702
2703	if v.NextToken != nil {
2704		encoder.SetQuery("NextToken").String(*v.NextToken)
2705	}
2706
2707	if v.OnlyAssociated {
2708		encoder.SetQuery("OnlyAssociated").Boolean(v.OnlyAssociated)
2709	}
2710
2711	return nil
2712}
2713
2714type awsRestjson1_serializeOpListOrganizationAdminAccounts struct {
2715}
2716
2717func (*awsRestjson1_serializeOpListOrganizationAdminAccounts) ID() string {
2718	return "OperationSerializer"
2719}
2720
2721func (m *awsRestjson1_serializeOpListOrganizationAdminAccounts) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2722	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2723) {
2724	request, ok := in.Request.(*smithyhttp.Request)
2725	if !ok {
2726		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2727	}
2728
2729	input, ok := in.Parameters.(*ListOrganizationAdminAccountsInput)
2730	_ = input
2731	if !ok {
2732		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2733	}
2734
2735	opPath, opQuery := httpbinding.SplitURI("/organization/admin")
2736	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2737	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2738	request.Method = "GET"
2739	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2740	if err != nil {
2741		return out, metadata, &smithy.SerializationError{Err: err}
2742	}
2743
2744	if err := awsRestjson1_serializeOpHttpBindingsListOrganizationAdminAccountsInput(input, restEncoder); err != nil {
2745		return out, metadata, &smithy.SerializationError{Err: err}
2746	}
2747
2748	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2749		return out, metadata, &smithy.SerializationError{Err: err}
2750	}
2751	in.Request = request
2752
2753	return next.HandleSerialize(ctx, in)
2754}
2755func awsRestjson1_serializeOpHttpBindingsListOrganizationAdminAccountsInput(v *ListOrganizationAdminAccountsInput, encoder *httpbinding.Encoder) error {
2756	if v == nil {
2757		return fmt.Errorf("unsupported serialization of nil %T", v)
2758	}
2759
2760	if v.MaxResults != 0 {
2761		encoder.SetQuery("MaxResults").Integer(v.MaxResults)
2762	}
2763
2764	if v.NextToken != nil {
2765		encoder.SetQuery("NextToken").String(*v.NextToken)
2766	}
2767
2768	return nil
2769}
2770
2771type awsRestjson1_serializeOpListTagsForResource struct {
2772}
2773
2774func (*awsRestjson1_serializeOpListTagsForResource) ID() string {
2775	return "OperationSerializer"
2776}
2777
2778func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2779	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2780) {
2781	request, ok := in.Request.(*smithyhttp.Request)
2782	if !ok {
2783		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2784	}
2785
2786	input, ok := in.Parameters.(*ListTagsForResourceInput)
2787	_ = input
2788	if !ok {
2789		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2790	}
2791
2792	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2793	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2794	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2795	request.Method = "GET"
2796	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2797	if err != nil {
2798		return out, metadata, &smithy.SerializationError{Err: err}
2799	}
2800
2801	if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil {
2802		return out, metadata, &smithy.SerializationError{Err: err}
2803	}
2804
2805	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2806		return out, metadata, &smithy.SerializationError{Err: err}
2807	}
2808	in.Request = request
2809
2810	return next.HandleSerialize(ctx, in)
2811}
2812func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error {
2813	if v == nil {
2814		return fmt.Errorf("unsupported serialization of nil %T", v)
2815	}
2816
2817	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
2818		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
2819	}
2820	if v.ResourceArn != nil {
2821		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
2822			return err
2823		}
2824	}
2825
2826	return nil
2827}
2828
2829type awsRestjson1_serializeOpTagResource struct {
2830}
2831
2832func (*awsRestjson1_serializeOpTagResource) ID() string {
2833	return "OperationSerializer"
2834}
2835
2836func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2837	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2838) {
2839	request, ok := in.Request.(*smithyhttp.Request)
2840	if !ok {
2841		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2842	}
2843
2844	input, ok := in.Parameters.(*TagResourceInput)
2845	_ = input
2846	if !ok {
2847		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2848	}
2849
2850	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2851	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2852	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2853	request.Method = "POST"
2854	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2855	if err != nil {
2856		return out, metadata, &smithy.SerializationError{Err: err}
2857	}
2858
2859	if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil {
2860		return out, metadata, &smithy.SerializationError{Err: err}
2861	}
2862
2863	restEncoder.SetHeader("Content-Type").String("application/json")
2864
2865	jsonEncoder := smithyjson.NewEncoder()
2866	if err := awsRestjson1_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil {
2867		return out, metadata, &smithy.SerializationError{Err: err}
2868	}
2869
2870	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
2871		return out, metadata, &smithy.SerializationError{Err: err}
2872	}
2873
2874	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2875		return out, metadata, &smithy.SerializationError{Err: err}
2876	}
2877	in.Request = request
2878
2879	return next.HandleSerialize(ctx, in)
2880}
2881func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error {
2882	if v == nil {
2883		return fmt.Errorf("unsupported serialization of nil %T", v)
2884	}
2885
2886	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
2887		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
2888	}
2889	if v.ResourceArn != nil {
2890		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
2891			return err
2892		}
2893	}
2894
2895	return nil
2896}
2897
2898func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error {
2899	object := value.Object()
2900	defer object.Close()
2901
2902	if v.Tags != nil {
2903		ok := object.Key("Tags")
2904		if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil {
2905			return err
2906		}
2907	}
2908
2909	return nil
2910}
2911
2912type awsRestjson1_serializeOpUntagResource struct {
2913}
2914
2915func (*awsRestjson1_serializeOpUntagResource) ID() string {
2916	return "OperationSerializer"
2917}
2918
2919func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2920	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2921) {
2922	request, ok := in.Request.(*smithyhttp.Request)
2923	if !ok {
2924		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2925	}
2926
2927	input, ok := in.Parameters.(*UntagResourceInput)
2928	_ = input
2929	if !ok {
2930		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2931	}
2932
2933	opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}")
2934	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2935	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
2936	request.Method = "DELETE"
2937	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
2938	if err != nil {
2939		return out, metadata, &smithy.SerializationError{Err: err}
2940	}
2941
2942	if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(input, restEncoder); err != nil {
2943		return out, metadata, &smithy.SerializationError{Err: err}
2944	}
2945
2946	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
2947		return out, metadata, &smithy.SerializationError{Err: err}
2948	}
2949	in.Request = request
2950
2951	return next.HandleSerialize(ctx, in)
2952}
2953func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error {
2954	if v == nil {
2955		return fmt.Errorf("unsupported serialization of nil %T", v)
2956	}
2957
2958	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
2959		return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")}
2960	}
2961	if v.ResourceArn != nil {
2962		if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil {
2963			return err
2964		}
2965	}
2966
2967	if v.TagKeys != nil {
2968		for i := range v.TagKeys {
2969			encoder.AddQuery("tagKeys").String(v.TagKeys[i])
2970		}
2971	}
2972
2973	return nil
2974}
2975
2976type awsRestjson1_serializeOpUpdateActionTarget struct {
2977}
2978
2979func (*awsRestjson1_serializeOpUpdateActionTarget) ID() string {
2980	return "OperationSerializer"
2981}
2982
2983func (m *awsRestjson1_serializeOpUpdateActionTarget) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
2984	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
2985) {
2986	request, ok := in.Request.(*smithyhttp.Request)
2987	if !ok {
2988		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
2989	}
2990
2991	input, ok := in.Parameters.(*UpdateActionTargetInput)
2992	_ = input
2993	if !ok {
2994		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
2995	}
2996
2997	opPath, opQuery := httpbinding.SplitURI("/actionTargets/{ActionTargetArn+}")
2998	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
2999	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3000	request.Method = "PATCH"
3001	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3002	if err != nil {
3003		return out, metadata, &smithy.SerializationError{Err: err}
3004	}
3005
3006	if err := awsRestjson1_serializeOpHttpBindingsUpdateActionTargetInput(input, restEncoder); err != nil {
3007		return out, metadata, &smithy.SerializationError{Err: err}
3008	}
3009
3010	restEncoder.SetHeader("Content-Type").String("application/json")
3011
3012	jsonEncoder := smithyjson.NewEncoder()
3013	if err := awsRestjson1_serializeOpDocumentUpdateActionTargetInput(input, jsonEncoder.Value); err != nil {
3014		return out, metadata, &smithy.SerializationError{Err: err}
3015	}
3016
3017	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3018		return out, metadata, &smithy.SerializationError{Err: err}
3019	}
3020
3021	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3022		return out, metadata, &smithy.SerializationError{Err: err}
3023	}
3024	in.Request = request
3025
3026	return next.HandleSerialize(ctx, in)
3027}
3028func awsRestjson1_serializeOpHttpBindingsUpdateActionTargetInput(v *UpdateActionTargetInput, encoder *httpbinding.Encoder) error {
3029	if v == nil {
3030		return fmt.Errorf("unsupported serialization of nil %T", v)
3031	}
3032
3033	if v.ActionTargetArn == nil || len(*v.ActionTargetArn) == 0 {
3034		return &smithy.SerializationError{Err: fmt.Errorf("input member ActionTargetArn must not be empty")}
3035	}
3036	if v.ActionTargetArn != nil {
3037		if err := encoder.SetURI("ActionTargetArn").String(*v.ActionTargetArn); err != nil {
3038			return err
3039		}
3040	}
3041
3042	return nil
3043}
3044
3045func awsRestjson1_serializeOpDocumentUpdateActionTargetInput(v *UpdateActionTargetInput, value smithyjson.Value) error {
3046	object := value.Object()
3047	defer object.Close()
3048
3049	if v.Description != nil {
3050		ok := object.Key("Description")
3051		ok.String(*v.Description)
3052	}
3053
3054	if v.Name != nil {
3055		ok := object.Key("Name")
3056		ok.String(*v.Name)
3057	}
3058
3059	return nil
3060}
3061
3062type awsRestjson1_serializeOpUpdateFindings struct {
3063}
3064
3065func (*awsRestjson1_serializeOpUpdateFindings) ID() string {
3066	return "OperationSerializer"
3067}
3068
3069func (m *awsRestjson1_serializeOpUpdateFindings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3070	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3071) {
3072	request, ok := in.Request.(*smithyhttp.Request)
3073	if !ok {
3074		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3075	}
3076
3077	input, ok := in.Parameters.(*UpdateFindingsInput)
3078	_ = input
3079	if !ok {
3080		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3081	}
3082
3083	opPath, opQuery := httpbinding.SplitURI("/findings")
3084	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
3085	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3086	request.Method = "PATCH"
3087	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3088	if err != nil {
3089		return out, metadata, &smithy.SerializationError{Err: err}
3090	}
3091
3092	restEncoder.SetHeader("Content-Type").String("application/json")
3093
3094	jsonEncoder := smithyjson.NewEncoder()
3095	if err := awsRestjson1_serializeOpDocumentUpdateFindingsInput(input, jsonEncoder.Value); err != nil {
3096		return out, metadata, &smithy.SerializationError{Err: err}
3097	}
3098
3099	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3100		return out, metadata, &smithy.SerializationError{Err: err}
3101	}
3102
3103	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3104		return out, metadata, &smithy.SerializationError{Err: err}
3105	}
3106	in.Request = request
3107
3108	return next.HandleSerialize(ctx, in)
3109}
3110func awsRestjson1_serializeOpHttpBindingsUpdateFindingsInput(v *UpdateFindingsInput, encoder *httpbinding.Encoder) error {
3111	if v == nil {
3112		return fmt.Errorf("unsupported serialization of nil %T", v)
3113	}
3114
3115	return nil
3116}
3117
3118func awsRestjson1_serializeOpDocumentUpdateFindingsInput(v *UpdateFindingsInput, value smithyjson.Value) error {
3119	object := value.Object()
3120	defer object.Close()
3121
3122	if v.Filters != nil {
3123		ok := object.Key("Filters")
3124		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
3125			return err
3126		}
3127	}
3128
3129	if v.Note != nil {
3130		ok := object.Key("Note")
3131		if err := awsRestjson1_serializeDocumentNoteUpdate(v.Note, ok); err != nil {
3132			return err
3133		}
3134	}
3135
3136	if len(v.RecordState) > 0 {
3137		ok := object.Key("RecordState")
3138		ok.String(string(v.RecordState))
3139	}
3140
3141	return nil
3142}
3143
3144type awsRestjson1_serializeOpUpdateInsight struct {
3145}
3146
3147func (*awsRestjson1_serializeOpUpdateInsight) ID() string {
3148	return "OperationSerializer"
3149}
3150
3151func (m *awsRestjson1_serializeOpUpdateInsight) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3152	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3153) {
3154	request, ok := in.Request.(*smithyhttp.Request)
3155	if !ok {
3156		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3157	}
3158
3159	input, ok := in.Parameters.(*UpdateInsightInput)
3160	_ = input
3161	if !ok {
3162		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3163	}
3164
3165	opPath, opQuery := httpbinding.SplitURI("/insights/{InsightArn+}")
3166	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
3167	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3168	request.Method = "PATCH"
3169	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3170	if err != nil {
3171		return out, metadata, &smithy.SerializationError{Err: err}
3172	}
3173
3174	if err := awsRestjson1_serializeOpHttpBindingsUpdateInsightInput(input, restEncoder); err != nil {
3175		return out, metadata, &smithy.SerializationError{Err: err}
3176	}
3177
3178	restEncoder.SetHeader("Content-Type").String("application/json")
3179
3180	jsonEncoder := smithyjson.NewEncoder()
3181	if err := awsRestjson1_serializeOpDocumentUpdateInsightInput(input, jsonEncoder.Value); err != nil {
3182		return out, metadata, &smithy.SerializationError{Err: err}
3183	}
3184
3185	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3186		return out, metadata, &smithy.SerializationError{Err: err}
3187	}
3188
3189	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3190		return out, metadata, &smithy.SerializationError{Err: err}
3191	}
3192	in.Request = request
3193
3194	return next.HandleSerialize(ctx, in)
3195}
3196func awsRestjson1_serializeOpHttpBindingsUpdateInsightInput(v *UpdateInsightInput, encoder *httpbinding.Encoder) error {
3197	if v == nil {
3198		return fmt.Errorf("unsupported serialization of nil %T", v)
3199	}
3200
3201	if v.InsightArn == nil || len(*v.InsightArn) == 0 {
3202		return &smithy.SerializationError{Err: fmt.Errorf("input member InsightArn must not be empty")}
3203	}
3204	if v.InsightArn != nil {
3205		if err := encoder.SetURI("InsightArn").String(*v.InsightArn); err != nil {
3206			return err
3207		}
3208	}
3209
3210	return nil
3211}
3212
3213func awsRestjson1_serializeOpDocumentUpdateInsightInput(v *UpdateInsightInput, value smithyjson.Value) error {
3214	object := value.Object()
3215	defer object.Close()
3216
3217	if v.Filters != nil {
3218		ok := object.Key("Filters")
3219		if err := awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v.Filters, ok); err != nil {
3220			return err
3221		}
3222	}
3223
3224	if v.GroupByAttribute != nil {
3225		ok := object.Key("GroupByAttribute")
3226		ok.String(*v.GroupByAttribute)
3227	}
3228
3229	if v.Name != nil {
3230		ok := object.Key("Name")
3231		ok.String(*v.Name)
3232	}
3233
3234	return nil
3235}
3236
3237type awsRestjson1_serializeOpUpdateOrganizationConfiguration struct {
3238}
3239
3240func (*awsRestjson1_serializeOpUpdateOrganizationConfiguration) ID() string {
3241	return "OperationSerializer"
3242}
3243
3244func (m *awsRestjson1_serializeOpUpdateOrganizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3245	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3246) {
3247	request, ok := in.Request.(*smithyhttp.Request)
3248	if !ok {
3249		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3250	}
3251
3252	input, ok := in.Parameters.(*UpdateOrganizationConfigurationInput)
3253	_ = input
3254	if !ok {
3255		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3256	}
3257
3258	opPath, opQuery := httpbinding.SplitURI("/organization/configuration")
3259	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
3260	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3261	request.Method = "POST"
3262	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3263	if err != nil {
3264		return out, metadata, &smithy.SerializationError{Err: err}
3265	}
3266
3267	restEncoder.SetHeader("Content-Type").String("application/json")
3268
3269	jsonEncoder := smithyjson.NewEncoder()
3270	if err := awsRestjson1_serializeOpDocumentUpdateOrganizationConfigurationInput(input, jsonEncoder.Value); err != nil {
3271		return out, metadata, &smithy.SerializationError{Err: err}
3272	}
3273
3274	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3275		return out, metadata, &smithy.SerializationError{Err: err}
3276	}
3277
3278	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3279		return out, metadata, &smithy.SerializationError{Err: err}
3280	}
3281	in.Request = request
3282
3283	return next.HandleSerialize(ctx, in)
3284}
3285func awsRestjson1_serializeOpHttpBindingsUpdateOrganizationConfigurationInput(v *UpdateOrganizationConfigurationInput, encoder *httpbinding.Encoder) error {
3286	if v == nil {
3287		return fmt.Errorf("unsupported serialization of nil %T", v)
3288	}
3289
3290	return nil
3291}
3292
3293func awsRestjson1_serializeOpDocumentUpdateOrganizationConfigurationInput(v *UpdateOrganizationConfigurationInput, value smithyjson.Value) error {
3294	object := value.Object()
3295	defer object.Close()
3296
3297	{
3298		ok := object.Key("AutoEnable")
3299		ok.Boolean(v.AutoEnable)
3300	}
3301
3302	return nil
3303}
3304
3305type awsRestjson1_serializeOpUpdateSecurityHubConfiguration struct {
3306}
3307
3308func (*awsRestjson1_serializeOpUpdateSecurityHubConfiguration) ID() string {
3309	return "OperationSerializer"
3310}
3311
3312func (m *awsRestjson1_serializeOpUpdateSecurityHubConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3313	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3314) {
3315	request, ok := in.Request.(*smithyhttp.Request)
3316	if !ok {
3317		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3318	}
3319
3320	input, ok := in.Parameters.(*UpdateSecurityHubConfigurationInput)
3321	_ = input
3322	if !ok {
3323		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3324	}
3325
3326	opPath, opQuery := httpbinding.SplitURI("/accounts")
3327	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
3328	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3329	request.Method = "PATCH"
3330	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3331	if err != nil {
3332		return out, metadata, &smithy.SerializationError{Err: err}
3333	}
3334
3335	restEncoder.SetHeader("Content-Type").String("application/json")
3336
3337	jsonEncoder := smithyjson.NewEncoder()
3338	if err := awsRestjson1_serializeOpDocumentUpdateSecurityHubConfigurationInput(input, jsonEncoder.Value); err != nil {
3339		return out, metadata, &smithy.SerializationError{Err: err}
3340	}
3341
3342	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3343		return out, metadata, &smithy.SerializationError{Err: err}
3344	}
3345
3346	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3347		return out, metadata, &smithy.SerializationError{Err: err}
3348	}
3349	in.Request = request
3350
3351	return next.HandleSerialize(ctx, in)
3352}
3353func awsRestjson1_serializeOpHttpBindingsUpdateSecurityHubConfigurationInput(v *UpdateSecurityHubConfigurationInput, encoder *httpbinding.Encoder) error {
3354	if v == nil {
3355		return fmt.Errorf("unsupported serialization of nil %T", v)
3356	}
3357
3358	return nil
3359}
3360
3361func awsRestjson1_serializeOpDocumentUpdateSecurityHubConfigurationInput(v *UpdateSecurityHubConfigurationInput, value smithyjson.Value) error {
3362	object := value.Object()
3363	defer object.Close()
3364
3365	if v.AutoEnableControls {
3366		ok := object.Key("AutoEnableControls")
3367		ok.Boolean(v.AutoEnableControls)
3368	}
3369
3370	return nil
3371}
3372
3373type awsRestjson1_serializeOpUpdateStandardsControl struct {
3374}
3375
3376func (*awsRestjson1_serializeOpUpdateStandardsControl) ID() string {
3377	return "OperationSerializer"
3378}
3379
3380func (m *awsRestjson1_serializeOpUpdateStandardsControl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
3381	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
3382) {
3383	request, ok := in.Request.(*smithyhttp.Request)
3384	if !ok {
3385		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
3386	}
3387
3388	input, ok := in.Parameters.(*UpdateStandardsControlInput)
3389	_ = input
3390	if !ok {
3391		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
3392	}
3393
3394	opPath, opQuery := httpbinding.SplitURI("/standards/control/{StandardsControlArn+}")
3395	request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
3396	request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
3397	request.Method = "PATCH"
3398	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
3399	if err != nil {
3400		return out, metadata, &smithy.SerializationError{Err: err}
3401	}
3402
3403	if err := awsRestjson1_serializeOpHttpBindingsUpdateStandardsControlInput(input, restEncoder); err != nil {
3404		return out, metadata, &smithy.SerializationError{Err: err}
3405	}
3406
3407	restEncoder.SetHeader("Content-Type").String("application/json")
3408
3409	jsonEncoder := smithyjson.NewEncoder()
3410	if err := awsRestjson1_serializeOpDocumentUpdateStandardsControlInput(input, jsonEncoder.Value); err != nil {
3411		return out, metadata, &smithy.SerializationError{Err: err}
3412	}
3413
3414	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
3415		return out, metadata, &smithy.SerializationError{Err: err}
3416	}
3417
3418	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
3419		return out, metadata, &smithy.SerializationError{Err: err}
3420	}
3421	in.Request = request
3422
3423	return next.HandleSerialize(ctx, in)
3424}
3425func awsRestjson1_serializeOpHttpBindingsUpdateStandardsControlInput(v *UpdateStandardsControlInput, encoder *httpbinding.Encoder) error {
3426	if v == nil {
3427		return fmt.Errorf("unsupported serialization of nil %T", v)
3428	}
3429
3430	if v.StandardsControlArn == nil || len(*v.StandardsControlArn) == 0 {
3431		return &smithy.SerializationError{Err: fmt.Errorf("input member StandardsControlArn must not be empty")}
3432	}
3433	if v.StandardsControlArn != nil {
3434		if err := encoder.SetURI("StandardsControlArn").String(*v.StandardsControlArn); err != nil {
3435			return err
3436		}
3437	}
3438
3439	return nil
3440}
3441
3442func awsRestjson1_serializeOpDocumentUpdateStandardsControlInput(v *UpdateStandardsControlInput, value smithyjson.Value) error {
3443	object := value.Object()
3444	defer object.Close()
3445
3446	if len(v.ControlStatus) > 0 {
3447		ok := object.Key("ControlStatus")
3448		ok.String(string(v.ControlStatus))
3449	}
3450
3451	if v.DisabledReason != nil {
3452		ok := object.Key("DisabledReason")
3453		ok.String(*v.DisabledReason)
3454	}
3455
3456	return nil
3457}
3458
3459func awsRestjson1_serializeDocumentAccountDetails(v *types.AccountDetails, value smithyjson.Value) error {
3460	object := value.Object()
3461	defer object.Close()
3462
3463	if v.AccountId != nil {
3464		ok := object.Key("AccountId")
3465		ok.String(*v.AccountId)
3466	}
3467
3468	if v.Email != nil {
3469		ok := object.Key("Email")
3470		ok.String(*v.Email)
3471	}
3472
3473	return nil
3474}
3475
3476func awsRestjson1_serializeDocumentAccountDetailsList(v []types.AccountDetails, value smithyjson.Value) error {
3477	array := value.Array()
3478	defer array.Close()
3479
3480	for i := range v {
3481		av := array.Value()
3482		if err := awsRestjson1_serializeDocumentAccountDetails(&v[i], av); err != nil {
3483			return err
3484		}
3485	}
3486	return nil
3487}
3488
3489func awsRestjson1_serializeDocumentAccountIdList(v []string, value smithyjson.Value) error {
3490	array := value.Array()
3491	defer array.Close()
3492
3493	for i := range v {
3494		av := array.Value()
3495		av.String(v[i])
3496	}
3497	return nil
3498}
3499
3500func awsRestjson1_serializeDocumentAction(v *types.Action, value smithyjson.Value) error {
3501	object := value.Object()
3502	defer object.Close()
3503
3504	if v.ActionType != nil {
3505		ok := object.Key("ActionType")
3506		ok.String(*v.ActionType)
3507	}
3508
3509	if v.AwsApiCallAction != nil {
3510		ok := object.Key("AwsApiCallAction")
3511		if err := awsRestjson1_serializeDocumentAwsApiCallAction(v.AwsApiCallAction, ok); err != nil {
3512			return err
3513		}
3514	}
3515
3516	if v.DnsRequestAction != nil {
3517		ok := object.Key("DnsRequestAction")
3518		if err := awsRestjson1_serializeDocumentDnsRequestAction(v.DnsRequestAction, ok); err != nil {
3519			return err
3520		}
3521	}
3522
3523	if v.NetworkConnectionAction != nil {
3524		ok := object.Key("NetworkConnectionAction")
3525		if err := awsRestjson1_serializeDocumentNetworkConnectionAction(v.NetworkConnectionAction, ok); err != nil {
3526			return err
3527		}
3528	}
3529
3530	if v.PortProbeAction != nil {
3531		ok := object.Key("PortProbeAction")
3532		if err := awsRestjson1_serializeDocumentPortProbeAction(v.PortProbeAction, ok); err != nil {
3533			return err
3534		}
3535	}
3536
3537	return nil
3538}
3539
3540func awsRestjson1_serializeDocumentActionLocalIpDetails(v *types.ActionLocalIpDetails, value smithyjson.Value) error {
3541	object := value.Object()
3542	defer object.Close()
3543
3544	if v.IpAddressV4 != nil {
3545		ok := object.Key("IpAddressV4")
3546		ok.String(*v.IpAddressV4)
3547	}
3548
3549	return nil
3550}
3551
3552func awsRestjson1_serializeDocumentActionLocalPortDetails(v *types.ActionLocalPortDetails, value smithyjson.Value) error {
3553	object := value.Object()
3554	defer object.Close()
3555
3556	if v.Port != 0 {
3557		ok := object.Key("Port")
3558		ok.Integer(v.Port)
3559	}
3560
3561	if v.PortName != nil {
3562		ok := object.Key("PortName")
3563		ok.String(*v.PortName)
3564	}
3565
3566	return nil
3567}
3568
3569func awsRestjson1_serializeDocumentActionRemoteIpDetails(v *types.ActionRemoteIpDetails, value smithyjson.Value) error {
3570	object := value.Object()
3571	defer object.Close()
3572
3573	if v.City != nil {
3574		ok := object.Key("City")
3575		if err := awsRestjson1_serializeDocumentCity(v.City, ok); err != nil {
3576			return err
3577		}
3578	}
3579
3580	if v.Country != nil {
3581		ok := object.Key("Country")
3582		if err := awsRestjson1_serializeDocumentCountry(v.Country, ok); err != nil {
3583			return err
3584		}
3585	}
3586
3587	if v.GeoLocation != nil {
3588		ok := object.Key("GeoLocation")
3589		if err := awsRestjson1_serializeDocumentGeoLocation(v.GeoLocation, ok); err != nil {
3590			return err
3591		}
3592	}
3593
3594	if v.IpAddressV4 != nil {
3595		ok := object.Key("IpAddressV4")
3596		ok.String(*v.IpAddressV4)
3597	}
3598
3599	if v.Organization != nil {
3600		ok := object.Key("Organization")
3601		if err := awsRestjson1_serializeDocumentIpOrganizationDetails(v.Organization, ok); err != nil {
3602			return err
3603		}
3604	}
3605
3606	return nil
3607}
3608
3609func awsRestjson1_serializeDocumentActionRemotePortDetails(v *types.ActionRemotePortDetails, value smithyjson.Value) error {
3610	object := value.Object()
3611	defer object.Close()
3612
3613	if v.Port != 0 {
3614		ok := object.Key("Port")
3615		ok.Integer(v.Port)
3616	}
3617
3618	if v.PortName != nil {
3619		ok := object.Key("PortName")
3620		ok.String(*v.PortName)
3621	}
3622
3623	return nil
3624}
3625
3626func awsRestjson1_serializeDocumentAdjustment(v *types.Adjustment, value smithyjson.Value) error {
3627	object := value.Object()
3628	defer object.Close()
3629
3630	if v.Metric != nil {
3631		ok := object.Key("Metric")
3632		ok.String(*v.Metric)
3633	}
3634
3635	if v.Reason != nil {
3636		ok := object.Key("Reason")
3637		ok.String(*v.Reason)
3638	}
3639
3640	return nil
3641}
3642
3643func awsRestjson1_serializeDocumentAdjustmentList(v []types.Adjustment, value smithyjson.Value) error {
3644	array := value.Array()
3645	defer array.Close()
3646
3647	for i := range v {
3648		av := array.Value()
3649		if err := awsRestjson1_serializeDocumentAdjustment(&v[i], av); err != nil {
3650			return err
3651		}
3652	}
3653	return nil
3654}
3655
3656func awsRestjson1_serializeDocumentArnList(v []string, value smithyjson.Value) error {
3657	array := value.Array()
3658	defer array.Close()
3659
3660	for i := range v {
3661		av := array.Value()
3662		av.String(v[i])
3663	}
3664	return nil
3665}
3666
3667func awsRestjson1_serializeDocumentAvailabilityZone(v *types.AvailabilityZone, value smithyjson.Value) error {
3668	object := value.Object()
3669	defer object.Close()
3670
3671	if v.SubnetId != nil {
3672		ok := object.Key("SubnetId")
3673		ok.String(*v.SubnetId)
3674	}
3675
3676	if v.ZoneName != nil {
3677		ok := object.Key("ZoneName")
3678		ok.String(*v.ZoneName)
3679	}
3680
3681	return nil
3682}
3683
3684func awsRestjson1_serializeDocumentAvailabilityZones(v []types.AvailabilityZone, value smithyjson.Value) error {
3685	array := value.Array()
3686	defer array.Close()
3687
3688	for i := range v {
3689		av := array.Value()
3690		if err := awsRestjson1_serializeDocumentAvailabilityZone(&v[i], av); err != nil {
3691			return err
3692		}
3693	}
3694	return nil
3695}
3696
3697func awsRestjson1_serializeDocumentAwsApiCallAction(v *types.AwsApiCallAction, value smithyjson.Value) error {
3698	object := value.Object()
3699	defer object.Close()
3700
3701	if v.AffectedResources != nil {
3702		ok := object.Key("AffectedResources")
3703		if err := awsRestjson1_serializeDocumentFieldMap(v.AffectedResources, ok); err != nil {
3704			return err
3705		}
3706	}
3707
3708	if v.Api != nil {
3709		ok := object.Key("Api")
3710		ok.String(*v.Api)
3711	}
3712
3713	if v.CallerType != nil {
3714		ok := object.Key("CallerType")
3715		ok.String(*v.CallerType)
3716	}
3717
3718	if v.DomainDetails != nil {
3719		ok := object.Key("DomainDetails")
3720		if err := awsRestjson1_serializeDocumentAwsApiCallActionDomainDetails(v.DomainDetails, ok); err != nil {
3721			return err
3722		}
3723	}
3724
3725	if v.FirstSeen != nil {
3726		ok := object.Key("FirstSeen")
3727		ok.String(*v.FirstSeen)
3728	}
3729
3730	if v.LastSeen != nil {
3731		ok := object.Key("LastSeen")
3732		ok.String(*v.LastSeen)
3733	}
3734
3735	if v.RemoteIpDetails != nil {
3736		ok := object.Key("RemoteIpDetails")
3737		if err := awsRestjson1_serializeDocumentActionRemoteIpDetails(v.RemoteIpDetails, ok); err != nil {
3738			return err
3739		}
3740	}
3741
3742	if v.ServiceName != nil {
3743		ok := object.Key("ServiceName")
3744		ok.String(*v.ServiceName)
3745	}
3746
3747	return nil
3748}
3749
3750func awsRestjson1_serializeDocumentAwsApiCallActionDomainDetails(v *types.AwsApiCallActionDomainDetails, value smithyjson.Value) error {
3751	object := value.Object()
3752	defer object.Close()
3753
3754	if v.Domain != nil {
3755		ok := object.Key("Domain")
3756		ok.String(*v.Domain)
3757	}
3758
3759	return nil
3760}
3761
3762func awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v *types.AwsApiGatewayAccessLogSettings, value smithyjson.Value) error {
3763	object := value.Object()
3764	defer object.Close()
3765
3766	if v.DestinationArn != nil {
3767		ok := object.Key("DestinationArn")
3768		ok.String(*v.DestinationArn)
3769	}
3770
3771	if v.Format != nil {
3772		ok := object.Key("Format")
3773		ok.String(*v.Format)
3774	}
3775
3776	return nil
3777}
3778
3779func awsRestjson1_serializeDocumentAwsApiGatewayCanarySettings(v *types.AwsApiGatewayCanarySettings, value smithyjson.Value) error {
3780	object := value.Object()
3781	defer object.Close()
3782
3783	if v.DeploymentId != nil {
3784		ok := object.Key("DeploymentId")
3785		ok.String(*v.DeploymentId)
3786	}
3787
3788	if v.PercentTraffic != 0 {
3789		ok := object.Key("PercentTraffic")
3790		switch {
3791		case math.IsNaN(v.PercentTraffic):
3792			ok.String("NaN")
3793
3794		case math.IsInf(v.PercentTraffic, 1):
3795			ok.String("Infinity")
3796
3797		case math.IsInf(v.PercentTraffic, -1):
3798			ok.String("-Infinity")
3799
3800		default:
3801			ok.Double(v.PercentTraffic)
3802
3803		}
3804	}
3805
3806	if v.StageVariableOverrides != nil {
3807		ok := object.Key("StageVariableOverrides")
3808		if err := awsRestjson1_serializeDocumentFieldMap(v.StageVariableOverrides, ok); err != nil {
3809			return err
3810		}
3811	}
3812
3813	if v.UseStageCache {
3814		ok := object.Key("UseStageCache")
3815		ok.Boolean(v.UseStageCache)
3816	}
3817
3818	return nil
3819}
3820
3821func awsRestjson1_serializeDocumentAwsApiGatewayEndpointConfiguration(v *types.AwsApiGatewayEndpointConfiguration, value smithyjson.Value) error {
3822	object := value.Object()
3823	defer object.Close()
3824
3825	if v.Types != nil {
3826		ok := object.Key("Types")
3827		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Types, ok); err != nil {
3828			return err
3829		}
3830	}
3831
3832	return nil
3833}
3834
3835func awsRestjson1_serializeDocumentAwsApiGatewayMethodSettings(v *types.AwsApiGatewayMethodSettings, value smithyjson.Value) error {
3836	object := value.Object()
3837	defer object.Close()
3838
3839	if v.CacheDataEncrypted {
3840		ok := object.Key("CacheDataEncrypted")
3841		ok.Boolean(v.CacheDataEncrypted)
3842	}
3843
3844	if v.CacheTtlInSeconds != 0 {
3845		ok := object.Key("CacheTtlInSeconds")
3846		ok.Integer(v.CacheTtlInSeconds)
3847	}
3848
3849	if v.CachingEnabled {
3850		ok := object.Key("CachingEnabled")
3851		ok.Boolean(v.CachingEnabled)
3852	}
3853
3854	if v.DataTraceEnabled {
3855		ok := object.Key("DataTraceEnabled")
3856		ok.Boolean(v.DataTraceEnabled)
3857	}
3858
3859	if v.HttpMethod != nil {
3860		ok := object.Key("HttpMethod")
3861		ok.String(*v.HttpMethod)
3862	}
3863
3864	if v.LoggingLevel != nil {
3865		ok := object.Key("LoggingLevel")
3866		ok.String(*v.LoggingLevel)
3867	}
3868
3869	if v.MetricsEnabled {
3870		ok := object.Key("MetricsEnabled")
3871		ok.Boolean(v.MetricsEnabled)
3872	}
3873
3874	if v.RequireAuthorizationForCacheControl {
3875		ok := object.Key("RequireAuthorizationForCacheControl")
3876		ok.Boolean(v.RequireAuthorizationForCacheControl)
3877	}
3878
3879	if v.ResourcePath != nil {
3880		ok := object.Key("ResourcePath")
3881		ok.String(*v.ResourcePath)
3882	}
3883
3884	if v.ThrottlingBurstLimit != 0 {
3885		ok := object.Key("ThrottlingBurstLimit")
3886		ok.Integer(v.ThrottlingBurstLimit)
3887	}
3888
3889	if v.ThrottlingRateLimit != 0 {
3890		ok := object.Key("ThrottlingRateLimit")
3891		switch {
3892		case math.IsNaN(v.ThrottlingRateLimit):
3893			ok.String("NaN")
3894
3895		case math.IsInf(v.ThrottlingRateLimit, 1):
3896			ok.String("Infinity")
3897
3898		case math.IsInf(v.ThrottlingRateLimit, -1):
3899			ok.String("-Infinity")
3900
3901		default:
3902			ok.Double(v.ThrottlingRateLimit)
3903
3904		}
3905	}
3906
3907	if v.UnauthorizedCacheControlHeaderStrategy != nil {
3908		ok := object.Key("UnauthorizedCacheControlHeaderStrategy")
3909		ok.String(*v.UnauthorizedCacheControlHeaderStrategy)
3910	}
3911
3912	return nil
3913}
3914
3915func awsRestjson1_serializeDocumentAwsApiGatewayMethodSettingsList(v []types.AwsApiGatewayMethodSettings, value smithyjson.Value) error {
3916	array := value.Array()
3917	defer array.Close()
3918
3919	for i := range v {
3920		av := array.Value()
3921		if err := awsRestjson1_serializeDocumentAwsApiGatewayMethodSettings(&v[i], av); err != nil {
3922			return err
3923		}
3924	}
3925	return nil
3926}
3927
3928func awsRestjson1_serializeDocumentAwsApiGatewayRestApiDetails(v *types.AwsApiGatewayRestApiDetails, value smithyjson.Value) error {
3929	object := value.Object()
3930	defer object.Close()
3931
3932	if v.ApiKeySource != nil {
3933		ok := object.Key("ApiKeySource")
3934		ok.String(*v.ApiKeySource)
3935	}
3936
3937	if v.BinaryMediaTypes != nil {
3938		ok := object.Key("BinaryMediaTypes")
3939		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.BinaryMediaTypes, ok); err != nil {
3940			return err
3941		}
3942	}
3943
3944	if v.CreatedDate != nil {
3945		ok := object.Key("CreatedDate")
3946		ok.String(*v.CreatedDate)
3947	}
3948
3949	if v.Description != nil {
3950		ok := object.Key("Description")
3951		ok.String(*v.Description)
3952	}
3953
3954	if v.EndpointConfiguration != nil {
3955		ok := object.Key("EndpointConfiguration")
3956		if err := awsRestjson1_serializeDocumentAwsApiGatewayEndpointConfiguration(v.EndpointConfiguration, ok); err != nil {
3957			return err
3958		}
3959	}
3960
3961	if v.Id != nil {
3962		ok := object.Key("Id")
3963		ok.String(*v.Id)
3964	}
3965
3966	if v.MinimumCompressionSize != 0 {
3967		ok := object.Key("MinimumCompressionSize")
3968		ok.Integer(v.MinimumCompressionSize)
3969	}
3970
3971	if v.Name != nil {
3972		ok := object.Key("Name")
3973		ok.String(*v.Name)
3974	}
3975
3976	if v.Version != nil {
3977		ok := object.Key("Version")
3978		ok.String(*v.Version)
3979	}
3980
3981	return nil
3982}
3983
3984func awsRestjson1_serializeDocumentAwsApiGatewayStageDetails(v *types.AwsApiGatewayStageDetails, value smithyjson.Value) error {
3985	object := value.Object()
3986	defer object.Close()
3987
3988	if v.AccessLogSettings != nil {
3989		ok := object.Key("AccessLogSettings")
3990		if err := awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v.AccessLogSettings, ok); err != nil {
3991			return err
3992		}
3993	}
3994
3995	if v.CacheClusterEnabled {
3996		ok := object.Key("CacheClusterEnabled")
3997		ok.Boolean(v.CacheClusterEnabled)
3998	}
3999
4000	if v.CacheClusterSize != nil {
4001		ok := object.Key("CacheClusterSize")
4002		ok.String(*v.CacheClusterSize)
4003	}
4004
4005	if v.CacheClusterStatus != nil {
4006		ok := object.Key("CacheClusterStatus")
4007		ok.String(*v.CacheClusterStatus)
4008	}
4009
4010	if v.CanarySettings != nil {
4011		ok := object.Key("CanarySettings")
4012		if err := awsRestjson1_serializeDocumentAwsApiGatewayCanarySettings(v.CanarySettings, ok); err != nil {
4013			return err
4014		}
4015	}
4016
4017	if v.ClientCertificateId != nil {
4018		ok := object.Key("ClientCertificateId")
4019		ok.String(*v.ClientCertificateId)
4020	}
4021
4022	if v.CreatedDate != nil {
4023		ok := object.Key("CreatedDate")
4024		ok.String(*v.CreatedDate)
4025	}
4026
4027	if v.DeploymentId != nil {
4028		ok := object.Key("DeploymentId")
4029		ok.String(*v.DeploymentId)
4030	}
4031
4032	if v.Description != nil {
4033		ok := object.Key("Description")
4034		ok.String(*v.Description)
4035	}
4036
4037	if v.DocumentationVersion != nil {
4038		ok := object.Key("DocumentationVersion")
4039		ok.String(*v.DocumentationVersion)
4040	}
4041
4042	if v.LastUpdatedDate != nil {
4043		ok := object.Key("LastUpdatedDate")
4044		ok.String(*v.LastUpdatedDate)
4045	}
4046
4047	if v.MethodSettings != nil {
4048		ok := object.Key("MethodSettings")
4049		if err := awsRestjson1_serializeDocumentAwsApiGatewayMethodSettingsList(v.MethodSettings, ok); err != nil {
4050			return err
4051		}
4052	}
4053
4054	if v.StageName != nil {
4055		ok := object.Key("StageName")
4056		ok.String(*v.StageName)
4057	}
4058
4059	if v.TracingEnabled {
4060		ok := object.Key("TracingEnabled")
4061		ok.Boolean(v.TracingEnabled)
4062	}
4063
4064	if v.Variables != nil {
4065		ok := object.Key("Variables")
4066		if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil {
4067			return err
4068		}
4069	}
4070
4071	if v.WebAclArn != nil {
4072		ok := object.Key("WebAclArn")
4073		ok.String(*v.WebAclArn)
4074	}
4075
4076	return nil
4077}
4078
4079func awsRestjson1_serializeDocumentAwsApiGatewayV2ApiDetails(v *types.AwsApiGatewayV2ApiDetails, value smithyjson.Value) error {
4080	object := value.Object()
4081	defer object.Close()
4082
4083	if v.ApiEndpoint != nil {
4084		ok := object.Key("ApiEndpoint")
4085		ok.String(*v.ApiEndpoint)
4086	}
4087
4088	if v.ApiId != nil {
4089		ok := object.Key("ApiId")
4090		ok.String(*v.ApiId)
4091	}
4092
4093	if v.ApiKeySelectionExpression != nil {
4094		ok := object.Key("ApiKeySelectionExpression")
4095		ok.String(*v.ApiKeySelectionExpression)
4096	}
4097
4098	if v.CorsConfiguration != nil {
4099		ok := object.Key("CorsConfiguration")
4100		if err := awsRestjson1_serializeDocumentAwsCorsConfiguration(v.CorsConfiguration, ok); err != nil {
4101			return err
4102		}
4103	}
4104
4105	if v.CreatedDate != nil {
4106		ok := object.Key("CreatedDate")
4107		ok.String(*v.CreatedDate)
4108	}
4109
4110	if v.Description != nil {
4111		ok := object.Key("Description")
4112		ok.String(*v.Description)
4113	}
4114
4115	if v.Name != nil {
4116		ok := object.Key("Name")
4117		ok.String(*v.Name)
4118	}
4119
4120	if v.ProtocolType != nil {
4121		ok := object.Key("ProtocolType")
4122		ok.String(*v.ProtocolType)
4123	}
4124
4125	if v.RouteSelectionExpression != nil {
4126		ok := object.Key("RouteSelectionExpression")
4127		ok.String(*v.RouteSelectionExpression)
4128	}
4129
4130	if v.Version != nil {
4131		ok := object.Key("Version")
4132		ok.String(*v.Version)
4133	}
4134
4135	return nil
4136}
4137
4138func awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v *types.AwsApiGatewayV2RouteSettings, value smithyjson.Value) error {
4139	object := value.Object()
4140	defer object.Close()
4141
4142	if v.DataTraceEnabled {
4143		ok := object.Key("DataTraceEnabled")
4144		ok.Boolean(v.DataTraceEnabled)
4145	}
4146
4147	if v.DetailedMetricsEnabled {
4148		ok := object.Key("DetailedMetricsEnabled")
4149		ok.Boolean(v.DetailedMetricsEnabled)
4150	}
4151
4152	if v.LoggingLevel != nil {
4153		ok := object.Key("LoggingLevel")
4154		ok.String(*v.LoggingLevel)
4155	}
4156
4157	if v.ThrottlingBurstLimit != 0 {
4158		ok := object.Key("ThrottlingBurstLimit")
4159		ok.Integer(v.ThrottlingBurstLimit)
4160	}
4161
4162	if v.ThrottlingRateLimit != 0 {
4163		ok := object.Key("ThrottlingRateLimit")
4164		switch {
4165		case math.IsNaN(v.ThrottlingRateLimit):
4166			ok.String("NaN")
4167
4168		case math.IsInf(v.ThrottlingRateLimit, 1):
4169			ok.String("Infinity")
4170
4171		case math.IsInf(v.ThrottlingRateLimit, -1):
4172			ok.String("-Infinity")
4173
4174		default:
4175			ok.Double(v.ThrottlingRateLimit)
4176
4177		}
4178	}
4179
4180	return nil
4181}
4182
4183func awsRestjson1_serializeDocumentAwsApiGatewayV2StageDetails(v *types.AwsApiGatewayV2StageDetails, value smithyjson.Value) error {
4184	object := value.Object()
4185	defer object.Close()
4186
4187	if v.AccessLogSettings != nil {
4188		ok := object.Key("AccessLogSettings")
4189		if err := awsRestjson1_serializeDocumentAwsApiGatewayAccessLogSettings(v.AccessLogSettings, ok); err != nil {
4190			return err
4191		}
4192	}
4193
4194	if v.ApiGatewayManaged {
4195		ok := object.Key("ApiGatewayManaged")
4196		ok.Boolean(v.ApiGatewayManaged)
4197	}
4198
4199	if v.AutoDeploy {
4200		ok := object.Key("AutoDeploy")
4201		ok.Boolean(v.AutoDeploy)
4202	}
4203
4204	if v.ClientCertificateId != nil {
4205		ok := object.Key("ClientCertificateId")
4206		ok.String(*v.ClientCertificateId)
4207	}
4208
4209	if v.CreatedDate != nil {
4210		ok := object.Key("CreatedDate")
4211		ok.String(*v.CreatedDate)
4212	}
4213
4214	if v.DefaultRouteSettings != nil {
4215		ok := object.Key("DefaultRouteSettings")
4216		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v.DefaultRouteSettings, ok); err != nil {
4217			return err
4218		}
4219	}
4220
4221	if v.DeploymentId != nil {
4222		ok := object.Key("DeploymentId")
4223		ok.String(*v.DeploymentId)
4224	}
4225
4226	if v.Description != nil {
4227		ok := object.Key("Description")
4228		ok.String(*v.Description)
4229	}
4230
4231	if v.LastDeploymentStatusMessage != nil {
4232		ok := object.Key("LastDeploymentStatusMessage")
4233		ok.String(*v.LastDeploymentStatusMessage)
4234	}
4235
4236	if v.LastUpdatedDate != nil {
4237		ok := object.Key("LastUpdatedDate")
4238		ok.String(*v.LastUpdatedDate)
4239	}
4240
4241	if v.RouteSettings != nil {
4242		ok := object.Key("RouteSettings")
4243		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2RouteSettings(v.RouteSettings, ok); err != nil {
4244			return err
4245		}
4246	}
4247
4248	if v.StageName != nil {
4249		ok := object.Key("StageName")
4250		ok.String(*v.StageName)
4251	}
4252
4253	if v.StageVariables != nil {
4254		ok := object.Key("StageVariables")
4255		if err := awsRestjson1_serializeDocumentFieldMap(v.StageVariables, ok); err != nil {
4256			return err
4257		}
4258	}
4259
4260	return nil
4261}
4262
4263func awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v *types.AwsAutoScalingAutoScalingGroupDetails, value smithyjson.Value) error {
4264	object := value.Object()
4265	defer object.Close()
4266
4267	if v.CreatedTime != nil {
4268		ok := object.Key("CreatedTime")
4269		ok.String(*v.CreatedTime)
4270	}
4271
4272	if v.HealthCheckGracePeriod != 0 {
4273		ok := object.Key("HealthCheckGracePeriod")
4274		ok.Integer(v.HealthCheckGracePeriod)
4275	}
4276
4277	if v.HealthCheckType != nil {
4278		ok := object.Key("HealthCheckType")
4279		ok.String(*v.HealthCheckType)
4280	}
4281
4282	if v.LaunchConfigurationName != nil {
4283		ok := object.Key("LaunchConfigurationName")
4284		ok.String(*v.LaunchConfigurationName)
4285	}
4286
4287	if v.LoadBalancerNames != nil {
4288		ok := object.Key("LoadBalancerNames")
4289		if err := awsRestjson1_serializeDocumentStringList(v.LoadBalancerNames, ok); err != nil {
4290			return err
4291		}
4292	}
4293
4294	return nil
4295}
4296
4297func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(v *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value smithyjson.Value) error {
4298	object := value.Object()
4299	defer object.Close()
4300
4301	if v.DeviceName != nil {
4302		ok := object.Key("DeviceName")
4303		ok.String(*v.DeviceName)
4304	}
4305
4306	if v.Ebs != nil {
4307		ok := object.Key("Ebs")
4308		if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v.Ebs, ok); err != nil {
4309			return err
4310		}
4311	}
4312
4313	if v.NoDevice {
4314		ok := object.Key("NoDevice")
4315		ok.Boolean(v.NoDevice)
4316	}
4317
4318	if v.VirtualName != nil {
4319		ok := object.Key("VirtualName")
4320		ok.String(*v.VirtualName)
4321	}
4322
4323	return nil
4324}
4325
4326func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails(v *types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, value smithyjson.Value) error {
4327	object := value.Object()
4328	defer object.Close()
4329
4330	if v.DeleteOnTermination {
4331		ok := object.Key("DeleteOnTermination")
4332		ok.Boolean(v.DeleteOnTermination)
4333	}
4334
4335	if v.Encrypted {
4336		ok := object.Key("Encrypted")
4337		ok.Boolean(v.Encrypted)
4338	}
4339
4340	if v.Iops != 0 {
4341		ok := object.Key("Iops")
4342		ok.Integer(v.Iops)
4343	}
4344
4345	if v.SnapshotId != nil {
4346		ok := object.Key("SnapshotId")
4347		ok.String(*v.SnapshotId)
4348	}
4349
4350	if v.VolumeSize != 0 {
4351		ok := object.Key("VolumeSize")
4352		ok.Integer(v.VolumeSize)
4353	}
4354
4355	if v.VolumeType != nil {
4356		ok := object.Key("VolumeType")
4357		ok.String(*v.VolumeType)
4358	}
4359
4360	return nil
4361}
4362
4363func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v []types.AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, value smithyjson.Value) error {
4364	array := value.Array()
4365	defer array.Close()
4366
4367	for i := range v {
4368		av := array.Value()
4369		if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails(&v[i], av); err != nil {
4370			return err
4371		}
4372	}
4373	return nil
4374}
4375
4376func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationDetails(v *types.AwsAutoScalingLaunchConfigurationDetails, value smithyjson.Value) error {
4377	object := value.Object()
4378	defer object.Close()
4379
4380	if v.AssociatePublicIpAddress {
4381		ok := object.Key("AssociatePublicIpAddress")
4382		ok.Boolean(v.AssociatePublicIpAddress)
4383	}
4384
4385	if v.BlockDeviceMappings != nil {
4386		ok := object.Key("BlockDeviceMappings")
4387		if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationBlockDeviceMappingsList(v.BlockDeviceMappings, ok); err != nil {
4388			return err
4389		}
4390	}
4391
4392	if v.ClassicLinkVpcId != nil {
4393		ok := object.Key("ClassicLinkVpcId")
4394		ok.String(*v.ClassicLinkVpcId)
4395	}
4396
4397	if v.ClassicLinkVpcSecurityGroups != nil {
4398		ok := object.Key("ClassicLinkVpcSecurityGroups")
4399		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ClassicLinkVpcSecurityGroups, ok); err != nil {
4400			return err
4401		}
4402	}
4403
4404	if v.CreatedTime != nil {
4405		ok := object.Key("CreatedTime")
4406		ok.String(*v.CreatedTime)
4407	}
4408
4409	if v.EbsOptimized {
4410		ok := object.Key("EbsOptimized")
4411		ok.Boolean(v.EbsOptimized)
4412	}
4413
4414	if v.IamInstanceProfile != nil {
4415		ok := object.Key("IamInstanceProfile")
4416		ok.String(*v.IamInstanceProfile)
4417	}
4418
4419	if v.ImageId != nil {
4420		ok := object.Key("ImageId")
4421		ok.String(*v.ImageId)
4422	}
4423
4424	if v.InstanceMonitoring != nil {
4425		ok := object.Key("InstanceMonitoring")
4426		if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v.InstanceMonitoring, ok); err != nil {
4427			return err
4428		}
4429	}
4430
4431	if v.InstanceType != nil {
4432		ok := object.Key("InstanceType")
4433		ok.String(*v.InstanceType)
4434	}
4435
4436	if v.KernelId != nil {
4437		ok := object.Key("KernelId")
4438		ok.String(*v.KernelId)
4439	}
4440
4441	if v.KeyName != nil {
4442		ok := object.Key("KeyName")
4443		ok.String(*v.KeyName)
4444	}
4445
4446	if v.LaunchConfigurationName != nil {
4447		ok := object.Key("LaunchConfigurationName")
4448		ok.String(*v.LaunchConfigurationName)
4449	}
4450
4451	if v.PlacementTenancy != nil {
4452		ok := object.Key("PlacementTenancy")
4453		ok.String(*v.PlacementTenancy)
4454	}
4455
4456	if v.RamdiskId != nil {
4457		ok := object.Key("RamdiskId")
4458		ok.String(*v.RamdiskId)
4459	}
4460
4461	if v.SecurityGroups != nil {
4462		ok := object.Key("SecurityGroups")
4463		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroups, ok); err != nil {
4464			return err
4465		}
4466	}
4467
4468	if v.SpotPrice != nil {
4469		ok := object.Key("SpotPrice")
4470		ok.String(*v.SpotPrice)
4471	}
4472
4473	if v.UserData != nil {
4474		ok := object.Key("UserData")
4475		ok.String(*v.UserData)
4476	}
4477
4478	return nil
4479}
4480
4481func awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationInstanceMonitoringDetails(v *types.AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, value smithyjson.Value) error {
4482	object := value.Object()
4483	defer object.Close()
4484
4485	if v.Enabled {
4486		ok := object.Key("Enabled")
4487		ok.Boolean(v.Enabled)
4488	}
4489
4490	return nil
4491}
4492
4493func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v *types.AwsCertificateManagerCertificateDetails, value smithyjson.Value) error {
4494	object := value.Object()
4495	defer object.Close()
4496
4497	if v.CertificateAuthorityArn != nil {
4498		ok := object.Key("CertificateAuthorityArn")
4499		ok.String(*v.CertificateAuthorityArn)
4500	}
4501
4502	if v.CreatedAt != nil {
4503		ok := object.Key("CreatedAt")
4504		ok.String(*v.CreatedAt)
4505	}
4506
4507	if v.DomainName != nil {
4508		ok := object.Key("DomainName")
4509		ok.String(*v.DomainName)
4510	}
4511
4512	if v.DomainValidationOptions != nil {
4513		ok := object.Key("DomainValidationOptions")
4514		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v.DomainValidationOptions, ok); err != nil {
4515			return err
4516		}
4517	}
4518
4519	if v.ExtendedKeyUsages != nil {
4520		ok := object.Key("ExtendedKeyUsages")
4521		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v.ExtendedKeyUsages, ok); err != nil {
4522			return err
4523		}
4524	}
4525
4526	if v.FailureReason != nil {
4527		ok := object.Key("FailureReason")
4528		ok.String(*v.FailureReason)
4529	}
4530
4531	if v.ImportedAt != nil {
4532		ok := object.Key("ImportedAt")
4533		ok.String(*v.ImportedAt)
4534	}
4535
4536	if v.InUseBy != nil {
4537		ok := object.Key("InUseBy")
4538		if err := awsRestjson1_serializeDocumentStringList(v.InUseBy, ok); err != nil {
4539			return err
4540		}
4541	}
4542
4543	if v.IssuedAt != nil {
4544		ok := object.Key("IssuedAt")
4545		ok.String(*v.IssuedAt)
4546	}
4547
4548	if v.Issuer != nil {
4549		ok := object.Key("Issuer")
4550		ok.String(*v.Issuer)
4551	}
4552
4553	if v.KeyAlgorithm != nil {
4554		ok := object.Key("KeyAlgorithm")
4555		ok.String(*v.KeyAlgorithm)
4556	}
4557
4558	if v.KeyUsages != nil {
4559		ok := object.Key("KeyUsages")
4560		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsages(v.KeyUsages, ok); err != nil {
4561			return err
4562		}
4563	}
4564
4565	if v.NotAfter != nil {
4566		ok := object.Key("NotAfter")
4567		ok.String(*v.NotAfter)
4568	}
4569
4570	if v.NotBefore != nil {
4571		ok := object.Key("NotBefore")
4572		ok.String(*v.NotBefore)
4573	}
4574
4575	if v.Options != nil {
4576		ok := object.Key("Options")
4577		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateOptions(v.Options, ok); err != nil {
4578			return err
4579		}
4580	}
4581
4582	if v.RenewalEligibility != nil {
4583		ok := object.Key("RenewalEligibility")
4584		ok.String(*v.RenewalEligibility)
4585	}
4586
4587	if v.RenewalSummary != nil {
4588		ok := object.Key("RenewalSummary")
4589		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateRenewalSummary(v.RenewalSummary, ok); err != nil {
4590			return err
4591		}
4592	}
4593
4594	if v.Serial != nil {
4595		ok := object.Key("Serial")
4596		ok.String(*v.Serial)
4597	}
4598
4599	if v.SignatureAlgorithm != nil {
4600		ok := object.Key("SignatureAlgorithm")
4601		ok.String(*v.SignatureAlgorithm)
4602	}
4603
4604	if v.Status != nil {
4605		ok := object.Key("Status")
4606		ok.String(*v.Status)
4607	}
4608
4609	if v.Subject != nil {
4610		ok := object.Key("Subject")
4611		ok.String(*v.Subject)
4612	}
4613
4614	if v.SubjectAlternativeNames != nil {
4615		ok := object.Key("SubjectAlternativeNames")
4616		if err := awsRestjson1_serializeDocumentStringList(v.SubjectAlternativeNames, ok); err != nil {
4617			return err
4618		}
4619	}
4620
4621	if v.Type != nil {
4622		ok := object.Key("Type")
4623		ok.String(*v.Type)
4624	}
4625
4626	return nil
4627}
4628
4629func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOption(v *types.AwsCertificateManagerCertificateDomainValidationOption, value smithyjson.Value) error {
4630	object := value.Object()
4631	defer object.Close()
4632
4633	if v.DomainName != nil {
4634		ok := object.Key("DomainName")
4635		ok.String(*v.DomainName)
4636	}
4637
4638	if v.ResourceRecord != nil {
4639		ok := object.Key("ResourceRecord")
4640		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateResourceRecord(v.ResourceRecord, ok); err != nil {
4641			return err
4642		}
4643	}
4644
4645	if v.ValidationDomain != nil {
4646		ok := object.Key("ValidationDomain")
4647		ok.String(*v.ValidationDomain)
4648	}
4649
4650	if v.ValidationEmails != nil {
4651		ok := object.Key("ValidationEmails")
4652		if err := awsRestjson1_serializeDocumentStringList(v.ValidationEmails, ok); err != nil {
4653			return err
4654		}
4655	}
4656
4657	if v.ValidationMethod != nil {
4658		ok := object.Key("ValidationMethod")
4659		ok.String(*v.ValidationMethod)
4660	}
4661
4662	if v.ValidationStatus != nil {
4663		ok := object.Key("ValidationStatus")
4664		ok.String(*v.ValidationStatus)
4665	}
4666
4667	return nil
4668}
4669
4670func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v []types.AwsCertificateManagerCertificateDomainValidationOption, value smithyjson.Value) error {
4671	array := value.Array()
4672	defer array.Close()
4673
4674	for i := range v {
4675		av := array.Value()
4676		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOption(&v[i], av); err != nil {
4677			return err
4678		}
4679	}
4680	return nil
4681}
4682
4683func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(v *types.AwsCertificateManagerCertificateExtendedKeyUsage, value smithyjson.Value) error {
4684	object := value.Object()
4685	defer object.Close()
4686
4687	if v.Name != nil {
4688		ok := object.Key("Name")
4689		ok.String(*v.Name)
4690	}
4691
4692	if v.OId != nil {
4693		ok := object.Key("OId")
4694		ok.String(*v.OId)
4695	}
4696
4697	return nil
4698}
4699
4700func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsages(v []types.AwsCertificateManagerCertificateExtendedKeyUsage, value smithyjson.Value) error {
4701	array := value.Array()
4702	defer array.Close()
4703
4704	for i := range v {
4705		av := array.Value()
4706		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateExtendedKeyUsage(&v[i], av); err != nil {
4707			return err
4708		}
4709	}
4710	return nil
4711}
4712
4713func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsage(v *types.AwsCertificateManagerCertificateKeyUsage, value smithyjson.Value) error {
4714	object := value.Object()
4715	defer object.Close()
4716
4717	if v.Name != nil {
4718		ok := object.Key("Name")
4719		ok.String(*v.Name)
4720	}
4721
4722	return nil
4723}
4724
4725func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsages(v []types.AwsCertificateManagerCertificateKeyUsage, value smithyjson.Value) error {
4726	array := value.Array()
4727	defer array.Close()
4728
4729	for i := range v {
4730		av := array.Value()
4731		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateKeyUsage(&v[i], av); err != nil {
4732			return err
4733		}
4734	}
4735	return nil
4736}
4737
4738func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateOptions(v *types.AwsCertificateManagerCertificateOptions, value smithyjson.Value) error {
4739	object := value.Object()
4740	defer object.Close()
4741
4742	if v.CertificateTransparencyLoggingPreference != nil {
4743		ok := object.Key("CertificateTransparencyLoggingPreference")
4744		ok.String(*v.CertificateTransparencyLoggingPreference)
4745	}
4746
4747	return nil
4748}
4749
4750func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateRenewalSummary(v *types.AwsCertificateManagerCertificateRenewalSummary, value smithyjson.Value) error {
4751	object := value.Object()
4752	defer object.Close()
4753
4754	if v.DomainValidationOptions != nil {
4755		ok := object.Key("DomainValidationOptions")
4756		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDomainValidationOptions(v.DomainValidationOptions, ok); err != nil {
4757			return err
4758		}
4759	}
4760
4761	if v.RenewalStatus != nil {
4762		ok := object.Key("RenewalStatus")
4763		ok.String(*v.RenewalStatus)
4764	}
4765
4766	if v.RenewalStatusReason != nil {
4767		ok := object.Key("RenewalStatusReason")
4768		ok.String(*v.RenewalStatusReason)
4769	}
4770
4771	if v.UpdatedAt != nil {
4772		ok := object.Key("UpdatedAt")
4773		ok.String(*v.UpdatedAt)
4774	}
4775
4776	return nil
4777}
4778
4779func awsRestjson1_serializeDocumentAwsCertificateManagerCertificateResourceRecord(v *types.AwsCertificateManagerCertificateResourceRecord, value smithyjson.Value) error {
4780	object := value.Object()
4781	defer object.Close()
4782
4783	if v.Name != nil {
4784		ok := object.Key("Name")
4785		ok.String(*v.Name)
4786	}
4787
4788	if v.Type != nil {
4789		ok := object.Key("Type")
4790		ok.String(*v.Type)
4791	}
4792
4793	if v.Value != nil {
4794		ok := object.Key("Value")
4795		ok.String(*v.Value)
4796	}
4797
4798	return nil
4799}
4800
4801func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehavior(v *types.AwsCloudFrontDistributionCacheBehavior, value smithyjson.Value) error {
4802	object := value.Object()
4803	defer object.Close()
4804
4805	if v.ViewerProtocolPolicy != nil {
4806		ok := object.Key("ViewerProtocolPolicy")
4807		ok.String(*v.ViewerProtocolPolicy)
4808	}
4809
4810	return nil
4811}
4812
4813func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviors(v *types.AwsCloudFrontDistributionCacheBehaviors, value smithyjson.Value) error {
4814	object := value.Object()
4815	defer object.Close()
4816
4817	if v.Items != nil {
4818		ok := object.Key("Items")
4819		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v.Items, ok); err != nil {
4820			return err
4821		}
4822	}
4823
4824	return nil
4825}
4826
4827func awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviorsItemList(v []types.AwsCloudFrontDistributionCacheBehavior, value smithyjson.Value) error {
4828	array := value.Array()
4829	defer array.Close()
4830
4831	for i := range v {
4832		av := array.Value()
4833		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehavior(&v[i], av); err != nil {
4834			return err
4835		}
4836	}
4837	return nil
4838}
4839
4840func awsRestjson1_serializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v *types.AwsCloudFrontDistributionDefaultCacheBehavior, value smithyjson.Value) error {
4841	object := value.Object()
4842	defer object.Close()
4843
4844	if v.ViewerProtocolPolicy != nil {
4845		ok := object.Key("ViewerProtocolPolicy")
4846		ok.String(*v.ViewerProtocolPolicy)
4847	}
4848
4849	return nil
4850}
4851
4852func awsRestjson1_serializeDocumentAwsCloudFrontDistributionDetails(v *types.AwsCloudFrontDistributionDetails, value smithyjson.Value) error {
4853	object := value.Object()
4854	defer object.Close()
4855
4856	if v.CacheBehaviors != nil {
4857		ok := object.Key("CacheBehaviors")
4858		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionCacheBehaviors(v.CacheBehaviors, ok); err != nil {
4859			return err
4860		}
4861	}
4862
4863	if v.DefaultCacheBehavior != nil {
4864		ok := object.Key("DefaultCacheBehavior")
4865		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionDefaultCacheBehavior(v.DefaultCacheBehavior, ok); err != nil {
4866			return err
4867		}
4868	}
4869
4870	if v.DefaultRootObject != nil {
4871		ok := object.Key("DefaultRootObject")
4872		ok.String(*v.DefaultRootObject)
4873	}
4874
4875	if v.DomainName != nil {
4876		ok := object.Key("DomainName")
4877		ok.String(*v.DomainName)
4878	}
4879
4880	if v.ETag != nil {
4881		ok := object.Key("ETag")
4882		ok.String(*v.ETag)
4883	}
4884
4885	if v.LastModifiedTime != nil {
4886		ok := object.Key("LastModifiedTime")
4887		ok.String(*v.LastModifiedTime)
4888	}
4889
4890	if v.Logging != nil {
4891		ok := object.Key("Logging")
4892		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionLogging(v.Logging, ok); err != nil {
4893			return err
4894		}
4895	}
4896
4897	if v.OriginGroups != nil {
4898		ok := object.Key("OriginGroups")
4899		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroups(v.OriginGroups, ok); err != nil {
4900			return err
4901		}
4902	}
4903
4904	if v.Origins != nil {
4905		ok := object.Key("Origins")
4906		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOrigins(v.Origins, ok); err != nil {
4907			return err
4908		}
4909	}
4910
4911	if v.Status != nil {
4912		ok := object.Key("Status")
4913		ok.String(*v.Status)
4914	}
4915
4916	if v.WebAclId != nil {
4917		ok := object.Key("WebAclId")
4918		ok.String(*v.WebAclId)
4919	}
4920
4921	return nil
4922}
4923
4924func awsRestjson1_serializeDocumentAwsCloudFrontDistributionLogging(v *types.AwsCloudFrontDistributionLogging, value smithyjson.Value) error {
4925	object := value.Object()
4926	defer object.Close()
4927
4928	if v.Bucket != nil {
4929		ok := object.Key("Bucket")
4930		ok.String(*v.Bucket)
4931	}
4932
4933	if v.Enabled {
4934		ok := object.Key("Enabled")
4935		ok.Boolean(v.Enabled)
4936	}
4937
4938	if v.IncludeCookies {
4939		ok := object.Key("IncludeCookies")
4940		ok.Boolean(v.IncludeCookies)
4941	}
4942
4943	if v.Prefix != nil {
4944		ok := object.Key("Prefix")
4945		ok.String(*v.Prefix)
4946	}
4947
4948	return nil
4949}
4950
4951func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroup(v *types.AwsCloudFrontDistributionOriginGroup, value smithyjson.Value) error {
4952	object := value.Object()
4953	defer object.Close()
4954
4955	if v.FailoverCriteria != nil {
4956		ok := object.Key("FailoverCriteria")
4957		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v.FailoverCriteria, ok); err != nil {
4958			return err
4959		}
4960	}
4961
4962	return nil
4963}
4964
4965func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailover(v *types.AwsCloudFrontDistributionOriginGroupFailover, value smithyjson.Value) error {
4966	object := value.Object()
4967	defer object.Close()
4968
4969	if v.StatusCodes != nil {
4970		ok := object.Key("StatusCodes")
4971		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v.StatusCodes, ok); err != nil {
4972			return err
4973		}
4974	}
4975
4976	return nil
4977}
4978
4979func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodes(v *types.AwsCloudFrontDistributionOriginGroupFailoverStatusCodes, value smithyjson.Value) error {
4980	object := value.Object()
4981	defer object.Close()
4982
4983	if v.Items != nil {
4984		ok := object.Key("Items")
4985		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v.Items, ok); err != nil {
4986			return err
4987		}
4988	}
4989
4990	if v.Quantity != 0 {
4991		ok := object.Key("Quantity")
4992		ok.Integer(v.Quantity)
4993	}
4994
4995	return nil
4996}
4997
4998func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList(v []int32, value smithyjson.Value) error {
4999	array := value.Array()
5000	defer array.Close()
5001
5002	for i := range v {
5003		av := array.Value()
5004		av.Integer(v[i])
5005	}
5006	return nil
5007}
5008
5009func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroups(v *types.AwsCloudFrontDistributionOriginGroups, value smithyjson.Value) error {
5010	object := value.Object()
5011	defer object.Close()
5012
5013	if v.Items != nil {
5014		ok := object.Key("Items")
5015		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v.Items, ok); err != nil {
5016			return err
5017		}
5018	}
5019
5020	return nil
5021}
5022
5023func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroupsItemList(v []types.AwsCloudFrontDistributionOriginGroup, value smithyjson.Value) error {
5024	array := value.Array()
5025	defer array.Close()
5026
5027	for i := range v {
5028		av := array.Value()
5029		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginGroup(&v[i], av); err != nil {
5030			return err
5031		}
5032	}
5033	return nil
5034}
5035
5036func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItem(v *types.AwsCloudFrontDistributionOriginItem, value smithyjson.Value) error {
5037	object := value.Object()
5038	defer object.Close()
5039
5040	if v.DomainName != nil {
5041		ok := object.Key("DomainName")
5042		ok.String(*v.DomainName)
5043	}
5044
5045	if v.Id != nil {
5046		ok := object.Key("Id")
5047		ok.String(*v.Id)
5048	}
5049
5050	if v.OriginPath != nil {
5051		ok := object.Key("OriginPath")
5052		ok.String(*v.OriginPath)
5053	}
5054
5055	if v.S3OriginConfig != nil {
5056		ok := object.Key("S3OriginConfig")
5057		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v.S3OriginConfig, ok); err != nil {
5058			return err
5059		}
5060	}
5061
5062	return nil
5063}
5064
5065func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItemList(v []types.AwsCloudFrontDistributionOriginItem, value smithyjson.Value) error {
5066	array := value.Array()
5067	defer array.Close()
5068
5069	for i := range v {
5070		av := array.Value()
5071		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItem(&v[i], av); err != nil {
5072			return err
5073		}
5074	}
5075	return nil
5076}
5077
5078func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOrigins(v *types.AwsCloudFrontDistributionOrigins, value smithyjson.Value) error {
5079	object := value.Object()
5080	defer object.Close()
5081
5082	if v.Items != nil {
5083		ok := object.Key("Items")
5084		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginItemList(v.Items, ok); err != nil {
5085			return err
5086		}
5087	}
5088
5089	return nil
5090}
5091
5092func awsRestjson1_serializeDocumentAwsCloudFrontDistributionOriginS3OriginConfig(v *types.AwsCloudFrontDistributionOriginS3OriginConfig, value smithyjson.Value) error {
5093	object := value.Object()
5094	defer object.Close()
5095
5096	if v.OriginAccessIdentity != nil {
5097		ok := object.Key("OriginAccessIdentity")
5098		ok.String(*v.OriginAccessIdentity)
5099	}
5100
5101	return nil
5102}
5103
5104func awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v *types.AwsCloudTrailTrailDetails, value smithyjson.Value) error {
5105	object := value.Object()
5106	defer object.Close()
5107
5108	if v.CloudWatchLogsLogGroupArn != nil {
5109		ok := object.Key("CloudWatchLogsLogGroupArn")
5110		ok.String(*v.CloudWatchLogsLogGroupArn)
5111	}
5112
5113	if v.CloudWatchLogsRoleArn != nil {
5114		ok := object.Key("CloudWatchLogsRoleArn")
5115		ok.String(*v.CloudWatchLogsRoleArn)
5116	}
5117
5118	if v.HasCustomEventSelectors {
5119		ok := object.Key("HasCustomEventSelectors")
5120		ok.Boolean(v.HasCustomEventSelectors)
5121	}
5122
5123	if v.HomeRegion != nil {
5124		ok := object.Key("HomeRegion")
5125		ok.String(*v.HomeRegion)
5126	}
5127
5128	if v.IncludeGlobalServiceEvents {
5129		ok := object.Key("IncludeGlobalServiceEvents")
5130		ok.Boolean(v.IncludeGlobalServiceEvents)
5131	}
5132
5133	if v.IsMultiRegionTrail {
5134		ok := object.Key("IsMultiRegionTrail")
5135		ok.Boolean(v.IsMultiRegionTrail)
5136	}
5137
5138	if v.IsOrganizationTrail {
5139		ok := object.Key("IsOrganizationTrail")
5140		ok.Boolean(v.IsOrganizationTrail)
5141	}
5142
5143	if v.KmsKeyId != nil {
5144		ok := object.Key("KmsKeyId")
5145		ok.String(*v.KmsKeyId)
5146	}
5147
5148	if v.LogFileValidationEnabled {
5149		ok := object.Key("LogFileValidationEnabled")
5150		ok.Boolean(v.LogFileValidationEnabled)
5151	}
5152
5153	if v.Name != nil {
5154		ok := object.Key("Name")
5155		ok.String(*v.Name)
5156	}
5157
5158	if v.S3BucketName != nil {
5159		ok := object.Key("S3BucketName")
5160		ok.String(*v.S3BucketName)
5161	}
5162
5163	if v.S3KeyPrefix != nil {
5164		ok := object.Key("S3KeyPrefix")
5165		ok.String(*v.S3KeyPrefix)
5166	}
5167
5168	if v.SnsTopicArn != nil {
5169		ok := object.Key("SnsTopicArn")
5170		ok.String(*v.SnsTopicArn)
5171	}
5172
5173	if v.SnsTopicName != nil {
5174		ok := object.Key("SnsTopicName")
5175		ok.String(*v.SnsTopicName)
5176	}
5177
5178	if v.TrailArn != nil {
5179		ok := object.Key("TrailArn")
5180		ok.String(*v.TrailArn)
5181	}
5182
5183	return nil
5184}
5185
5186func awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v *types.AwsCodeBuildProjectDetails, value smithyjson.Value) error {
5187	object := value.Object()
5188	defer object.Close()
5189
5190	if v.EncryptionKey != nil {
5191		ok := object.Key("EncryptionKey")
5192		ok.String(*v.EncryptionKey)
5193	}
5194
5195	if v.Environment != nil {
5196		ok := object.Key("Environment")
5197		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v.Environment, ok); err != nil {
5198			return err
5199		}
5200	}
5201
5202	if v.Name != nil {
5203		ok := object.Key("Name")
5204		ok.String(*v.Name)
5205	}
5206
5207	if v.ServiceRole != nil {
5208		ok := object.Key("ServiceRole")
5209		ok.String(*v.ServiceRole)
5210	}
5211
5212	if v.Source != nil {
5213		ok := object.Key("Source")
5214		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectSource(v.Source, ok); err != nil {
5215			return err
5216		}
5217	}
5218
5219	if v.VpcConfig != nil {
5220		ok := object.Key("VpcConfig")
5221		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectVpcConfig(v.VpcConfig, ok); err != nil {
5222			return err
5223		}
5224	}
5225
5226	return nil
5227}
5228
5229func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironment(v *types.AwsCodeBuildProjectEnvironment, value smithyjson.Value) error {
5230	object := value.Object()
5231	defer object.Close()
5232
5233	if v.Certificate != nil {
5234		ok := object.Key("Certificate")
5235		ok.String(*v.Certificate)
5236	}
5237
5238	if v.ImagePullCredentialsType != nil {
5239		ok := object.Key("ImagePullCredentialsType")
5240		ok.String(*v.ImagePullCredentialsType)
5241	}
5242
5243	if v.RegistryCredential != nil {
5244		ok := object.Key("RegistryCredential")
5245		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v.RegistryCredential, ok); err != nil {
5246			return err
5247		}
5248	}
5249
5250	if v.Type != nil {
5251		ok := object.Key("Type")
5252		ok.String(*v.Type)
5253	}
5254
5255	return nil
5256}
5257
5258func awsRestjson1_serializeDocumentAwsCodeBuildProjectEnvironmentRegistryCredential(v *types.AwsCodeBuildProjectEnvironmentRegistryCredential, value smithyjson.Value) error {
5259	object := value.Object()
5260	defer object.Close()
5261
5262	if v.Credential != nil {
5263		ok := object.Key("Credential")
5264		ok.String(*v.Credential)
5265	}
5266
5267	if v.CredentialProvider != nil {
5268		ok := object.Key("CredentialProvider")
5269		ok.String(*v.CredentialProvider)
5270	}
5271
5272	return nil
5273}
5274
5275func awsRestjson1_serializeDocumentAwsCodeBuildProjectSource(v *types.AwsCodeBuildProjectSource, value smithyjson.Value) error {
5276	object := value.Object()
5277	defer object.Close()
5278
5279	if v.GitCloneDepth != 0 {
5280		ok := object.Key("GitCloneDepth")
5281		ok.Integer(v.GitCloneDepth)
5282	}
5283
5284	if v.InsecureSsl {
5285		ok := object.Key("InsecureSsl")
5286		ok.Boolean(v.InsecureSsl)
5287	}
5288
5289	if v.Location != nil {
5290		ok := object.Key("Location")
5291		ok.String(*v.Location)
5292	}
5293
5294	if v.Type != nil {
5295		ok := object.Key("Type")
5296		ok.String(*v.Type)
5297	}
5298
5299	return nil
5300}
5301
5302func awsRestjson1_serializeDocumentAwsCodeBuildProjectVpcConfig(v *types.AwsCodeBuildProjectVpcConfig, value smithyjson.Value) error {
5303	object := value.Object()
5304	defer object.Close()
5305
5306	if v.SecurityGroupIds != nil {
5307		ok := object.Key("SecurityGroupIds")
5308		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
5309			return err
5310		}
5311	}
5312
5313	if v.Subnets != nil {
5314		ok := object.Key("Subnets")
5315		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Subnets, ok); err != nil {
5316			return err
5317		}
5318	}
5319
5320	if v.VpcId != nil {
5321		ok := object.Key("VpcId")
5322		ok.String(*v.VpcId)
5323	}
5324
5325	return nil
5326}
5327
5328func awsRestjson1_serializeDocumentAwsCorsConfiguration(v *types.AwsCorsConfiguration, value smithyjson.Value) error {
5329	object := value.Object()
5330	defer object.Close()
5331
5332	if v.AllowCredentials {
5333		ok := object.Key("AllowCredentials")
5334		ok.Boolean(v.AllowCredentials)
5335	}
5336
5337	if v.AllowHeaders != nil {
5338		ok := object.Key("AllowHeaders")
5339		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowHeaders, ok); err != nil {
5340			return err
5341		}
5342	}
5343
5344	if v.AllowMethods != nil {
5345		ok := object.Key("AllowMethods")
5346		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowMethods, ok); err != nil {
5347			return err
5348		}
5349	}
5350
5351	if v.AllowOrigins != nil {
5352		ok := object.Key("AllowOrigins")
5353		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AllowOrigins, ok); err != nil {
5354			return err
5355		}
5356	}
5357
5358	if v.ExposeHeaders != nil {
5359		ok := object.Key("ExposeHeaders")
5360		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ExposeHeaders, ok); err != nil {
5361			return err
5362		}
5363	}
5364
5365	if v.MaxAge != 0 {
5366		ok := object.Key("MaxAge")
5367		ok.Integer(v.MaxAge)
5368	}
5369
5370	return nil
5371}
5372
5373func awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinition(v *types.AwsDynamoDbTableAttributeDefinition, value smithyjson.Value) error {
5374	object := value.Object()
5375	defer object.Close()
5376
5377	if v.AttributeName != nil {
5378		ok := object.Key("AttributeName")
5379		ok.String(*v.AttributeName)
5380	}
5381
5382	if v.AttributeType != nil {
5383		ok := object.Key("AttributeType")
5384		ok.String(*v.AttributeType)
5385	}
5386
5387	return nil
5388}
5389
5390func awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinitionList(v []types.AwsDynamoDbTableAttributeDefinition, value smithyjson.Value) error {
5391	array := value.Array()
5392	defer array.Close()
5393
5394	for i := range v {
5395		av := array.Value()
5396		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinition(&v[i], av); err != nil {
5397			return err
5398		}
5399	}
5400	return nil
5401}
5402
5403func awsRestjson1_serializeDocumentAwsDynamoDbTableBillingModeSummary(v *types.AwsDynamoDbTableBillingModeSummary, value smithyjson.Value) error {
5404	object := value.Object()
5405	defer object.Close()
5406
5407	if v.BillingMode != nil {
5408		ok := object.Key("BillingMode")
5409		ok.String(*v.BillingMode)
5410	}
5411
5412	if v.LastUpdateToPayPerRequestDateTime != nil {
5413		ok := object.Key("LastUpdateToPayPerRequestDateTime")
5414		ok.String(*v.LastUpdateToPayPerRequestDateTime)
5415	}
5416
5417	return nil
5418}
5419
5420func awsRestjson1_serializeDocumentAwsDynamoDbTableDetails(v *types.AwsDynamoDbTableDetails, value smithyjson.Value) error {
5421	object := value.Object()
5422	defer object.Close()
5423
5424	if v.AttributeDefinitions != nil {
5425		ok := object.Key("AttributeDefinitions")
5426		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableAttributeDefinitionList(v.AttributeDefinitions, ok); err != nil {
5427			return err
5428		}
5429	}
5430
5431	if v.BillingModeSummary != nil {
5432		ok := object.Key("BillingModeSummary")
5433		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableBillingModeSummary(v.BillingModeSummary, ok); err != nil {
5434			return err
5435		}
5436	}
5437
5438	if v.CreationDateTime != nil {
5439		ok := object.Key("CreationDateTime")
5440		ok.String(*v.CreationDateTime)
5441	}
5442
5443	if v.GlobalSecondaryIndexes != nil {
5444		ok := object.Key("GlobalSecondaryIndexes")
5445		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v.GlobalSecondaryIndexes, ok); err != nil {
5446			return err
5447		}
5448	}
5449
5450	if v.GlobalTableVersion != nil {
5451		ok := object.Key("GlobalTableVersion")
5452		ok.String(*v.GlobalTableVersion)
5453	}
5454
5455	if v.ItemCount != 0 {
5456		ok := object.Key("ItemCount")
5457		ok.Integer(v.ItemCount)
5458	}
5459
5460	if v.KeySchema != nil {
5461		ok := object.Key("KeySchema")
5462		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5463			return err
5464		}
5465	}
5466
5467	if v.LatestStreamArn != nil {
5468		ok := object.Key("LatestStreamArn")
5469		ok.String(*v.LatestStreamArn)
5470	}
5471
5472	if v.LatestStreamLabel != nil {
5473		ok := object.Key("LatestStreamLabel")
5474		ok.String(*v.LatestStreamLabel)
5475	}
5476
5477	if v.LocalSecondaryIndexes != nil {
5478		ok := object.Key("LocalSecondaryIndexes")
5479		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v.LocalSecondaryIndexes, ok); err != nil {
5480			return err
5481		}
5482	}
5483
5484	if v.ProvisionedThroughput != nil {
5485		ok := object.Key("ProvisionedThroughput")
5486		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v.ProvisionedThroughput, ok); err != nil {
5487			return err
5488		}
5489	}
5490
5491	if v.Replicas != nil {
5492		ok := object.Key("Replicas")
5493		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaList(v.Replicas, ok); err != nil {
5494			return err
5495		}
5496	}
5497
5498	if v.RestoreSummary != nil {
5499		ok := object.Key("RestoreSummary")
5500		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableRestoreSummary(v.RestoreSummary, ok); err != nil {
5501			return err
5502		}
5503	}
5504
5505	if v.SseDescription != nil {
5506		ok := object.Key("SseDescription")
5507		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableSseDescription(v.SseDescription, ok); err != nil {
5508			return err
5509		}
5510	}
5511
5512	if v.StreamSpecification != nil {
5513		ok := object.Key("StreamSpecification")
5514		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableStreamSpecification(v.StreamSpecification, ok); err != nil {
5515			return err
5516		}
5517	}
5518
5519	if v.TableId != nil {
5520		ok := object.Key("TableId")
5521		ok.String(*v.TableId)
5522	}
5523
5524	if v.TableName != nil {
5525		ok := object.Key("TableName")
5526		ok.String(*v.TableName)
5527	}
5528
5529	if v.TableSizeBytes != 0 {
5530		ok := object.Key("TableSizeBytes")
5531		ok.Long(v.TableSizeBytes)
5532	}
5533
5534	if v.TableStatus != nil {
5535		ok := object.Key("TableStatus")
5536		ok.String(*v.TableStatus)
5537	}
5538
5539	return nil
5540}
5541
5542func awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(v *types.AwsDynamoDbTableGlobalSecondaryIndex, value smithyjson.Value) error {
5543	object := value.Object()
5544	defer object.Close()
5545
5546	if v.Backfilling {
5547		ok := object.Key("Backfilling")
5548		ok.Boolean(v.Backfilling)
5549	}
5550
5551	if v.IndexArn != nil {
5552		ok := object.Key("IndexArn")
5553		ok.String(*v.IndexArn)
5554	}
5555
5556	if v.IndexName != nil {
5557		ok := object.Key("IndexName")
5558		ok.String(*v.IndexName)
5559	}
5560
5561	if v.IndexSizeBytes != 0 {
5562		ok := object.Key("IndexSizeBytes")
5563		ok.Long(v.IndexSizeBytes)
5564	}
5565
5566	if v.IndexStatus != nil {
5567		ok := object.Key("IndexStatus")
5568		ok.String(*v.IndexStatus)
5569	}
5570
5571	if v.ItemCount != 0 {
5572		ok := object.Key("ItemCount")
5573		ok.Integer(v.ItemCount)
5574	}
5575
5576	if v.KeySchema != nil {
5577		ok := object.Key("KeySchema")
5578		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5579			return err
5580		}
5581	}
5582
5583	if v.Projection != nil {
5584		ok := object.Key("Projection")
5585		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v.Projection, ok); err != nil {
5586			return err
5587		}
5588	}
5589
5590	if v.ProvisionedThroughput != nil {
5591		ok := object.Key("ProvisionedThroughput")
5592		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v.ProvisionedThroughput, ok); err != nil {
5593			return err
5594		}
5595	}
5596
5597	return nil
5598}
5599
5600func awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndexList(v []types.AwsDynamoDbTableGlobalSecondaryIndex, value smithyjson.Value) error {
5601	array := value.Array()
5602	defer array.Close()
5603
5604	for i := range v {
5605		av := array.Value()
5606		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableGlobalSecondaryIndex(&v[i], av); err != nil {
5607			return err
5608		}
5609	}
5610	return nil
5611}
5612
5613func awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchema(v *types.AwsDynamoDbTableKeySchema, value smithyjson.Value) error {
5614	object := value.Object()
5615	defer object.Close()
5616
5617	if v.AttributeName != nil {
5618		ok := object.Key("AttributeName")
5619		ok.String(*v.AttributeName)
5620	}
5621
5622	if v.KeyType != nil {
5623		ok := object.Key("KeyType")
5624		ok.String(*v.KeyType)
5625	}
5626
5627	return nil
5628}
5629
5630func awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v []types.AwsDynamoDbTableKeySchema, value smithyjson.Value) error {
5631	array := value.Array()
5632	defer array.Close()
5633
5634	for i := range v {
5635		av := array.Value()
5636		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchema(&v[i], av); err != nil {
5637			return err
5638		}
5639	}
5640	return nil
5641}
5642
5643func awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndex(v *types.AwsDynamoDbTableLocalSecondaryIndex, value smithyjson.Value) error {
5644	object := value.Object()
5645	defer object.Close()
5646
5647	if v.IndexArn != nil {
5648		ok := object.Key("IndexArn")
5649		ok.String(*v.IndexArn)
5650	}
5651
5652	if v.IndexName != nil {
5653		ok := object.Key("IndexName")
5654		ok.String(*v.IndexName)
5655	}
5656
5657	if v.KeySchema != nil {
5658		ok := object.Key("KeySchema")
5659		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableKeySchemaList(v.KeySchema, ok); err != nil {
5660			return err
5661		}
5662	}
5663
5664	if v.Projection != nil {
5665		ok := object.Key("Projection")
5666		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v.Projection, ok); err != nil {
5667			return err
5668		}
5669	}
5670
5671	return nil
5672}
5673
5674func awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndexList(v []types.AwsDynamoDbTableLocalSecondaryIndex, value smithyjson.Value) error {
5675	array := value.Array()
5676	defer array.Close()
5677
5678	for i := range v {
5679		av := array.Value()
5680		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableLocalSecondaryIndex(&v[i], av); err != nil {
5681			return err
5682		}
5683	}
5684	return nil
5685}
5686
5687func awsRestjson1_serializeDocumentAwsDynamoDbTableProjection(v *types.AwsDynamoDbTableProjection, value smithyjson.Value) error {
5688	object := value.Object()
5689	defer object.Close()
5690
5691	if v.NonKeyAttributes != nil {
5692		ok := object.Key("NonKeyAttributes")
5693		if err := awsRestjson1_serializeDocumentStringList(v.NonKeyAttributes, ok); err != nil {
5694			return err
5695		}
5696	}
5697
5698	if v.ProjectionType != nil {
5699		ok := object.Key("ProjectionType")
5700		ok.String(*v.ProjectionType)
5701	}
5702
5703	return nil
5704}
5705
5706func awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughput(v *types.AwsDynamoDbTableProvisionedThroughput, value smithyjson.Value) error {
5707	object := value.Object()
5708	defer object.Close()
5709
5710	if v.LastDecreaseDateTime != nil {
5711		ok := object.Key("LastDecreaseDateTime")
5712		ok.String(*v.LastDecreaseDateTime)
5713	}
5714
5715	if v.LastIncreaseDateTime != nil {
5716		ok := object.Key("LastIncreaseDateTime")
5717		ok.String(*v.LastIncreaseDateTime)
5718	}
5719
5720	if v.NumberOfDecreasesToday != 0 {
5721		ok := object.Key("NumberOfDecreasesToday")
5722		ok.Integer(v.NumberOfDecreasesToday)
5723	}
5724
5725	if v.ReadCapacityUnits != 0 {
5726		ok := object.Key("ReadCapacityUnits")
5727		ok.Integer(v.ReadCapacityUnits)
5728	}
5729
5730	if v.WriteCapacityUnits != 0 {
5731		ok := object.Key("WriteCapacityUnits")
5732		ok.Integer(v.WriteCapacityUnits)
5733	}
5734
5735	return nil
5736}
5737
5738func awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v *types.AwsDynamoDbTableProvisionedThroughputOverride, value smithyjson.Value) error {
5739	object := value.Object()
5740	defer object.Close()
5741
5742	if v.ReadCapacityUnits != 0 {
5743		ok := object.Key("ReadCapacityUnits")
5744		ok.Integer(v.ReadCapacityUnits)
5745	}
5746
5747	return nil
5748}
5749
5750func awsRestjson1_serializeDocumentAwsDynamoDbTableReplica(v *types.AwsDynamoDbTableReplica, value smithyjson.Value) error {
5751	object := value.Object()
5752	defer object.Close()
5753
5754	if v.GlobalSecondaryIndexes != nil {
5755		ok := object.Key("GlobalSecondaryIndexes")
5756		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v.GlobalSecondaryIndexes, ok); err != nil {
5757			return err
5758		}
5759	}
5760
5761	if v.KmsMasterKeyId != nil {
5762		ok := object.Key("KmsMasterKeyId")
5763		ok.String(*v.KmsMasterKeyId)
5764	}
5765
5766	if v.ProvisionedThroughputOverride != nil {
5767		ok := object.Key("ProvisionedThroughputOverride")
5768		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v.ProvisionedThroughputOverride, ok); err != nil {
5769			return err
5770		}
5771	}
5772
5773	if v.RegionName != nil {
5774		ok := object.Key("RegionName")
5775		ok.String(*v.RegionName)
5776	}
5777
5778	if v.ReplicaStatus != nil {
5779		ok := object.Key("ReplicaStatus")
5780		ok.String(*v.ReplicaStatus)
5781	}
5782
5783	if v.ReplicaStatusDescription != nil {
5784		ok := object.Key("ReplicaStatusDescription")
5785		ok.String(*v.ReplicaStatusDescription)
5786	}
5787
5788	return nil
5789}
5790
5791func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(v *types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value smithyjson.Value) error {
5792	object := value.Object()
5793	defer object.Close()
5794
5795	if v.IndexName != nil {
5796		ok := object.Key("IndexName")
5797		ok.String(*v.IndexName)
5798	}
5799
5800	if v.ProvisionedThroughputOverride != nil {
5801		ok := object.Key("ProvisionedThroughputOverride")
5802		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableProvisionedThroughputOverride(v.ProvisionedThroughputOverride, ok); err != nil {
5803			return err
5804		}
5805	}
5806
5807	return nil
5808}
5809
5810func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndexList(v []types.AwsDynamoDbTableReplicaGlobalSecondaryIndex, value smithyjson.Value) error {
5811	array := value.Array()
5812	defer array.Close()
5813
5814	for i := range v {
5815		av := array.Value()
5816		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaGlobalSecondaryIndex(&v[i], av); err != nil {
5817			return err
5818		}
5819	}
5820	return nil
5821}
5822
5823func awsRestjson1_serializeDocumentAwsDynamoDbTableReplicaList(v []types.AwsDynamoDbTableReplica, value smithyjson.Value) error {
5824	array := value.Array()
5825	defer array.Close()
5826
5827	for i := range v {
5828		av := array.Value()
5829		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableReplica(&v[i], av); err != nil {
5830			return err
5831		}
5832	}
5833	return nil
5834}
5835
5836func awsRestjson1_serializeDocumentAwsDynamoDbTableRestoreSummary(v *types.AwsDynamoDbTableRestoreSummary, value smithyjson.Value) error {
5837	object := value.Object()
5838	defer object.Close()
5839
5840	if v.RestoreDateTime != nil {
5841		ok := object.Key("RestoreDateTime")
5842		ok.String(*v.RestoreDateTime)
5843	}
5844
5845	if v.RestoreInProgress {
5846		ok := object.Key("RestoreInProgress")
5847		ok.Boolean(v.RestoreInProgress)
5848	}
5849
5850	if v.SourceBackupArn != nil {
5851		ok := object.Key("SourceBackupArn")
5852		ok.String(*v.SourceBackupArn)
5853	}
5854
5855	if v.SourceTableArn != nil {
5856		ok := object.Key("SourceTableArn")
5857		ok.String(*v.SourceTableArn)
5858	}
5859
5860	return nil
5861}
5862
5863func awsRestjson1_serializeDocumentAwsDynamoDbTableSseDescription(v *types.AwsDynamoDbTableSseDescription, value smithyjson.Value) error {
5864	object := value.Object()
5865	defer object.Close()
5866
5867	if v.InaccessibleEncryptionDateTime != nil {
5868		ok := object.Key("InaccessibleEncryptionDateTime")
5869		ok.String(*v.InaccessibleEncryptionDateTime)
5870	}
5871
5872	if v.KmsMasterKeyArn != nil {
5873		ok := object.Key("KmsMasterKeyArn")
5874		ok.String(*v.KmsMasterKeyArn)
5875	}
5876
5877	if v.SseType != nil {
5878		ok := object.Key("SseType")
5879		ok.String(*v.SseType)
5880	}
5881
5882	if v.Status != nil {
5883		ok := object.Key("Status")
5884		ok.String(*v.Status)
5885	}
5886
5887	return nil
5888}
5889
5890func awsRestjson1_serializeDocumentAwsDynamoDbTableStreamSpecification(v *types.AwsDynamoDbTableStreamSpecification, value smithyjson.Value) error {
5891	object := value.Object()
5892	defer object.Close()
5893
5894	if v.StreamEnabled {
5895		ok := object.Key("StreamEnabled")
5896		ok.Boolean(v.StreamEnabled)
5897	}
5898
5899	if v.StreamViewType != nil {
5900		ok := object.Key("StreamViewType")
5901		ok.String(*v.StreamViewType)
5902	}
5903
5904	return nil
5905}
5906
5907func awsRestjson1_serializeDocumentAwsEc2EipDetails(v *types.AwsEc2EipDetails, value smithyjson.Value) error {
5908	object := value.Object()
5909	defer object.Close()
5910
5911	if v.AllocationId != nil {
5912		ok := object.Key("AllocationId")
5913		ok.String(*v.AllocationId)
5914	}
5915
5916	if v.AssociationId != nil {
5917		ok := object.Key("AssociationId")
5918		ok.String(*v.AssociationId)
5919	}
5920
5921	if v.Domain != nil {
5922		ok := object.Key("Domain")
5923		ok.String(*v.Domain)
5924	}
5925
5926	if v.InstanceId != nil {
5927		ok := object.Key("InstanceId")
5928		ok.String(*v.InstanceId)
5929	}
5930
5931	if v.NetworkBorderGroup != nil {
5932		ok := object.Key("NetworkBorderGroup")
5933		ok.String(*v.NetworkBorderGroup)
5934	}
5935
5936	if v.NetworkInterfaceId != nil {
5937		ok := object.Key("NetworkInterfaceId")
5938		ok.String(*v.NetworkInterfaceId)
5939	}
5940
5941	if v.NetworkInterfaceOwnerId != nil {
5942		ok := object.Key("NetworkInterfaceOwnerId")
5943		ok.String(*v.NetworkInterfaceOwnerId)
5944	}
5945
5946	if v.PrivateIpAddress != nil {
5947		ok := object.Key("PrivateIpAddress")
5948		ok.String(*v.PrivateIpAddress)
5949	}
5950
5951	if v.PublicIp != nil {
5952		ok := object.Key("PublicIp")
5953		ok.String(*v.PublicIp)
5954	}
5955
5956	if v.PublicIpv4Pool != nil {
5957		ok := object.Key("PublicIpv4Pool")
5958		ok.String(*v.PublicIpv4Pool)
5959	}
5960
5961	return nil
5962}
5963
5964func awsRestjson1_serializeDocumentAwsEc2InstanceDetails(v *types.AwsEc2InstanceDetails, value smithyjson.Value) error {
5965	object := value.Object()
5966	defer object.Close()
5967
5968	if v.IamInstanceProfileArn != nil {
5969		ok := object.Key("IamInstanceProfileArn")
5970		ok.String(*v.IamInstanceProfileArn)
5971	}
5972
5973	if v.ImageId != nil {
5974		ok := object.Key("ImageId")
5975		ok.String(*v.ImageId)
5976	}
5977
5978	if v.IpV4Addresses != nil {
5979		ok := object.Key("IpV4Addresses")
5980		if err := awsRestjson1_serializeDocumentStringList(v.IpV4Addresses, ok); err != nil {
5981			return err
5982		}
5983	}
5984
5985	if v.IpV6Addresses != nil {
5986		ok := object.Key("IpV6Addresses")
5987		if err := awsRestjson1_serializeDocumentStringList(v.IpV6Addresses, ok); err != nil {
5988			return err
5989		}
5990	}
5991
5992	if v.KeyName != nil {
5993		ok := object.Key("KeyName")
5994		ok.String(*v.KeyName)
5995	}
5996
5997	if v.LaunchedAt != nil {
5998		ok := object.Key("LaunchedAt")
5999		ok.String(*v.LaunchedAt)
6000	}
6001
6002	if v.NetworkInterfaces != nil {
6003		ok := object.Key("NetworkInterfaces")
6004		if err := awsRestjson1_serializeDocumentAwsEc2InstanceNetworkInterfacesList(v.NetworkInterfaces, ok); err != nil {
6005			return err
6006		}
6007	}
6008
6009	if v.SubnetId != nil {
6010		ok := object.Key("SubnetId")
6011		ok.String(*v.SubnetId)
6012	}
6013
6014	if v.Type != nil {
6015		ok := object.Key("Type")
6016		ok.String(*v.Type)
6017	}
6018
6019	if v.VpcId != nil {
6020		ok := object.Key("VpcId")
6021		ok.String(*v.VpcId)
6022	}
6023
6024	return nil
6025}
6026
6027func awsRestjson1_serializeDocumentAwsEc2InstanceNetworkInterfacesDetails(v *types.AwsEc2InstanceNetworkInterfacesDetails, value smithyjson.Value) error {
6028	object := value.Object()
6029	defer object.Close()
6030
6031	if v.NetworkInterfaceId != nil {
6032		ok := object.Key("NetworkInterfaceId")
6033		ok.String(*v.NetworkInterfaceId)
6034	}
6035
6036	return nil
6037}
6038
6039func awsRestjson1_serializeDocumentAwsEc2InstanceNetworkInterfacesList(v []types.AwsEc2InstanceNetworkInterfacesDetails, value smithyjson.Value) error {
6040	array := value.Array()
6041	defer array.Close()
6042
6043	for i := range v {
6044		av := array.Value()
6045		if err := awsRestjson1_serializeDocumentAwsEc2InstanceNetworkInterfacesDetails(&v[i], av); err != nil {
6046			return err
6047		}
6048	}
6049	return nil
6050}
6051
6052func awsRestjson1_serializeDocumentAwsEc2NetworkAclAssociation(v *types.AwsEc2NetworkAclAssociation, value smithyjson.Value) error {
6053	object := value.Object()
6054	defer object.Close()
6055
6056	if v.NetworkAclAssociationId != nil {
6057		ok := object.Key("NetworkAclAssociationId")
6058		ok.String(*v.NetworkAclAssociationId)
6059	}
6060
6061	if v.NetworkAclId != nil {
6062		ok := object.Key("NetworkAclId")
6063		ok.String(*v.NetworkAclId)
6064	}
6065
6066	if v.SubnetId != nil {
6067		ok := object.Key("SubnetId")
6068		ok.String(*v.SubnetId)
6069	}
6070
6071	return nil
6072}
6073
6074func awsRestjson1_serializeDocumentAwsEc2NetworkAclAssociationList(v []types.AwsEc2NetworkAclAssociation, value smithyjson.Value) error {
6075	array := value.Array()
6076	defer array.Close()
6077
6078	for i := range v {
6079		av := array.Value()
6080		if err := awsRestjson1_serializeDocumentAwsEc2NetworkAclAssociation(&v[i], av); err != nil {
6081			return err
6082		}
6083	}
6084	return nil
6085}
6086
6087func awsRestjson1_serializeDocumentAwsEc2NetworkAclDetails(v *types.AwsEc2NetworkAclDetails, value smithyjson.Value) error {
6088	object := value.Object()
6089	defer object.Close()
6090
6091	if v.Associations != nil {
6092		ok := object.Key("Associations")
6093		if err := awsRestjson1_serializeDocumentAwsEc2NetworkAclAssociationList(v.Associations, ok); err != nil {
6094			return err
6095		}
6096	}
6097
6098	if v.Entries != nil {
6099		ok := object.Key("Entries")
6100		if err := awsRestjson1_serializeDocumentAwsEc2NetworkAclEntryList(v.Entries, ok); err != nil {
6101			return err
6102		}
6103	}
6104
6105	if v.IsDefault {
6106		ok := object.Key("IsDefault")
6107		ok.Boolean(v.IsDefault)
6108	}
6109
6110	if v.NetworkAclId != nil {
6111		ok := object.Key("NetworkAclId")
6112		ok.String(*v.NetworkAclId)
6113	}
6114
6115	if v.OwnerId != nil {
6116		ok := object.Key("OwnerId")
6117		ok.String(*v.OwnerId)
6118	}
6119
6120	if v.VpcId != nil {
6121		ok := object.Key("VpcId")
6122		ok.String(*v.VpcId)
6123	}
6124
6125	return nil
6126}
6127
6128func awsRestjson1_serializeDocumentAwsEc2NetworkAclEntry(v *types.AwsEc2NetworkAclEntry, value smithyjson.Value) error {
6129	object := value.Object()
6130	defer object.Close()
6131
6132	if v.CidrBlock != nil {
6133		ok := object.Key("CidrBlock")
6134		ok.String(*v.CidrBlock)
6135	}
6136
6137	if v.Egress {
6138		ok := object.Key("Egress")
6139		ok.Boolean(v.Egress)
6140	}
6141
6142	if v.IcmpTypeCode != nil {
6143		ok := object.Key("IcmpTypeCode")
6144		if err := awsRestjson1_serializeDocumentIcmpTypeCode(v.IcmpTypeCode, ok); err != nil {
6145			return err
6146		}
6147	}
6148
6149	if v.Ipv6CidrBlock != nil {
6150		ok := object.Key("Ipv6CidrBlock")
6151		ok.String(*v.Ipv6CidrBlock)
6152	}
6153
6154	if v.PortRange != nil {
6155		ok := object.Key("PortRange")
6156		if err := awsRestjson1_serializeDocumentPortRangeFromTo(v.PortRange, ok); err != nil {
6157			return err
6158		}
6159	}
6160
6161	if v.Protocol != nil {
6162		ok := object.Key("Protocol")
6163		ok.String(*v.Protocol)
6164	}
6165
6166	if v.RuleAction != nil {
6167		ok := object.Key("RuleAction")
6168		ok.String(*v.RuleAction)
6169	}
6170
6171	if v.RuleNumber != 0 {
6172		ok := object.Key("RuleNumber")
6173		ok.Integer(v.RuleNumber)
6174	}
6175
6176	return nil
6177}
6178
6179func awsRestjson1_serializeDocumentAwsEc2NetworkAclEntryList(v []types.AwsEc2NetworkAclEntry, value smithyjson.Value) error {
6180	array := value.Array()
6181	defer array.Close()
6182
6183	for i := range v {
6184		av := array.Value()
6185		if err := awsRestjson1_serializeDocumentAwsEc2NetworkAclEntry(&v[i], av); err != nil {
6186			return err
6187		}
6188	}
6189	return nil
6190}
6191
6192func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceAttachment(v *types.AwsEc2NetworkInterfaceAttachment, value smithyjson.Value) error {
6193	object := value.Object()
6194	defer object.Close()
6195
6196	if v.AttachmentId != nil {
6197		ok := object.Key("AttachmentId")
6198		ok.String(*v.AttachmentId)
6199	}
6200
6201	if v.AttachTime != nil {
6202		ok := object.Key("AttachTime")
6203		ok.String(*v.AttachTime)
6204	}
6205
6206	if v.DeleteOnTermination {
6207		ok := object.Key("DeleteOnTermination")
6208		ok.Boolean(v.DeleteOnTermination)
6209	}
6210
6211	if v.DeviceIndex != 0 {
6212		ok := object.Key("DeviceIndex")
6213		ok.Integer(v.DeviceIndex)
6214	}
6215
6216	if v.InstanceId != nil {
6217		ok := object.Key("InstanceId")
6218		ok.String(*v.InstanceId)
6219	}
6220
6221	if v.InstanceOwnerId != nil {
6222		ok := object.Key("InstanceOwnerId")
6223		ok.String(*v.InstanceOwnerId)
6224	}
6225
6226	if v.Status != nil {
6227		ok := object.Key("Status")
6228		ok.String(*v.Status)
6229	}
6230
6231	return nil
6232}
6233
6234func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceDetails(v *types.AwsEc2NetworkInterfaceDetails, value smithyjson.Value) error {
6235	object := value.Object()
6236	defer object.Close()
6237
6238	if v.Attachment != nil {
6239		ok := object.Key("Attachment")
6240		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceAttachment(v.Attachment, ok); err != nil {
6241			return err
6242		}
6243	}
6244
6245	if v.IpV6Addresses != nil {
6246		ok := object.Key("IpV6Addresses")
6247		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(v.IpV6Addresses, ok); err != nil {
6248			return err
6249		}
6250	}
6251
6252	if v.NetworkInterfaceId != nil {
6253		ok := object.Key("NetworkInterfaceId")
6254		ok.String(*v.NetworkInterfaceId)
6255	}
6256
6257	if v.PrivateIpAddresses != nil {
6258		ok := object.Key("PrivateIpAddresses")
6259		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(v.PrivateIpAddresses, ok); err != nil {
6260			return err
6261		}
6262	}
6263
6264	if v.PublicDnsName != nil {
6265		ok := object.Key("PublicDnsName")
6266		ok.String(*v.PublicDnsName)
6267	}
6268
6269	if v.PublicIp != nil {
6270		ok := object.Key("PublicIp")
6271		ok.String(*v.PublicIp)
6272	}
6273
6274	if v.SecurityGroups != nil {
6275		ok := object.Key("SecurityGroups")
6276		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v.SecurityGroups, ok); err != nil {
6277			return err
6278		}
6279	}
6280
6281	if v.SourceDestCheck {
6282		ok := object.Key("SourceDestCheck")
6283		ok.Boolean(v.SourceDestCheck)
6284	}
6285
6286	return nil
6287}
6288
6289func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(v *types.AwsEc2NetworkInterfaceIpV6AddressDetail, value smithyjson.Value) error {
6290	object := value.Object()
6291	defer object.Close()
6292
6293	if v.IpV6Address != nil {
6294		ok := object.Key("IpV6Address")
6295		ok.String(*v.IpV6Address)
6296	}
6297
6298	return nil
6299}
6300
6301func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceIpV6AddressList(v []types.AwsEc2NetworkInterfaceIpV6AddressDetail, value smithyjson.Value) error {
6302	array := value.Array()
6303	defer array.Close()
6304
6305	for i := range v {
6306		av := array.Value()
6307		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceIpV6AddressDetail(&v[i], av); err != nil {
6308			return err
6309		}
6310	}
6311	return nil
6312}
6313
6314func awsRestjson1_serializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(v *types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value smithyjson.Value) error {
6315	object := value.Object()
6316	defer object.Close()
6317
6318	if v.PrivateDnsName != nil {
6319		ok := object.Key("PrivateDnsName")
6320		ok.String(*v.PrivateDnsName)
6321	}
6322
6323	if v.PrivateIpAddress != nil {
6324		ok := object.Key("PrivateIpAddress")
6325		ok.String(*v.PrivateIpAddress)
6326	}
6327
6328	return nil
6329}
6330
6331func awsRestjson1_serializeDocumentAwsEc2NetworkInterfacePrivateIpAddressList(v []types.AwsEc2NetworkInterfacePrivateIpAddressDetail, value smithyjson.Value) error {
6332	array := value.Array()
6333	defer array.Close()
6334
6335	for i := range v {
6336		av := array.Value()
6337		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfacePrivateIpAddressDetail(&v[i], av); err != nil {
6338			return err
6339		}
6340	}
6341	return nil
6342}
6343
6344func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroup(v *types.AwsEc2NetworkInterfaceSecurityGroup, value smithyjson.Value) error {
6345	object := value.Object()
6346	defer object.Close()
6347
6348	if v.GroupId != nil {
6349		ok := object.Key("GroupId")
6350		ok.String(*v.GroupId)
6351	}
6352
6353	if v.GroupName != nil {
6354		ok := object.Key("GroupName")
6355		ok.String(*v.GroupName)
6356	}
6357
6358	return nil
6359}
6360
6361func awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroupList(v []types.AwsEc2NetworkInterfaceSecurityGroup, value smithyjson.Value) error {
6362	array := value.Array()
6363	defer array.Close()
6364
6365	for i := range v {
6366		av := array.Value()
6367		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceSecurityGroup(&v[i], av); err != nil {
6368			return err
6369		}
6370	}
6371	return nil
6372}
6373
6374func awsRestjson1_serializeDocumentAwsEc2SecurityGroupDetails(v *types.AwsEc2SecurityGroupDetails, value smithyjson.Value) error {
6375	object := value.Object()
6376	defer object.Close()
6377
6378	if v.GroupId != nil {
6379		ok := object.Key("GroupId")
6380		ok.String(*v.GroupId)
6381	}
6382
6383	if v.GroupName != nil {
6384		ok := object.Key("GroupName")
6385		ok.String(*v.GroupName)
6386	}
6387
6388	if v.IpPermissions != nil {
6389		ok := object.Key("IpPermissions")
6390		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v.IpPermissions, ok); err != nil {
6391			return err
6392		}
6393	}
6394
6395	if v.IpPermissionsEgress != nil {
6396		ok := object.Key("IpPermissionsEgress")
6397		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v.IpPermissionsEgress, ok); err != nil {
6398			return err
6399		}
6400	}
6401
6402	if v.OwnerId != nil {
6403		ok := object.Key("OwnerId")
6404		ok.String(*v.OwnerId)
6405	}
6406
6407	if v.VpcId != nil {
6408		ok := object.Key("VpcId")
6409		ok.String(*v.VpcId)
6410	}
6411
6412	return nil
6413}
6414
6415func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermission(v *types.AwsEc2SecurityGroupIpPermission, value smithyjson.Value) error {
6416	object := value.Object()
6417	defer object.Close()
6418
6419	if v.FromPort != 0 {
6420		ok := object.Key("FromPort")
6421		ok.Integer(v.FromPort)
6422	}
6423
6424	if v.IpProtocol != nil {
6425		ok := object.Key("IpProtocol")
6426		ok.String(*v.IpProtocol)
6427	}
6428
6429	if v.IpRanges != nil {
6430		ok := object.Key("IpRanges")
6431		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRangeList(v.IpRanges, ok); err != nil {
6432			return err
6433		}
6434	}
6435
6436	if v.Ipv6Ranges != nil {
6437		ok := object.Key("Ipv6Ranges")
6438		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6RangeList(v.Ipv6Ranges, ok); err != nil {
6439			return err
6440		}
6441	}
6442
6443	if v.PrefixListIds != nil {
6444		ok := object.Key("PrefixListIds")
6445		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListIdList(v.PrefixListIds, ok); err != nil {
6446			return err
6447		}
6448	}
6449
6450	if v.ToPort != 0 {
6451		ok := object.Key("ToPort")
6452		ok.Integer(v.ToPort)
6453	}
6454
6455	if v.UserIdGroupPairs != nil {
6456		ok := object.Key("UserIdGroupPairs")
6457		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v.UserIdGroupPairs, ok); err != nil {
6458			return err
6459		}
6460	}
6461
6462	return nil
6463}
6464
6465func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermissionList(v []types.AwsEc2SecurityGroupIpPermission, value smithyjson.Value) error {
6466	array := value.Array()
6467	defer array.Close()
6468
6469	for i := range v {
6470		av := array.Value()
6471		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpPermission(&v[i], av); err != nil {
6472			return err
6473		}
6474	}
6475	return nil
6476}
6477
6478func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRange(v *types.AwsEc2SecurityGroupIpRange, value smithyjson.Value) error {
6479	object := value.Object()
6480	defer object.Close()
6481
6482	if v.CidrIp != nil {
6483		ok := object.Key("CidrIp")
6484		ok.String(*v.CidrIp)
6485	}
6486
6487	return nil
6488}
6489
6490func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRangeList(v []types.AwsEc2SecurityGroupIpRange, value smithyjson.Value) error {
6491	array := value.Array()
6492	defer array.Close()
6493
6494	for i := range v {
6495		av := array.Value()
6496		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpRange(&v[i], av); err != nil {
6497			return err
6498		}
6499	}
6500	return nil
6501}
6502
6503func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6Range(v *types.AwsEc2SecurityGroupIpv6Range, value smithyjson.Value) error {
6504	object := value.Object()
6505	defer object.Close()
6506
6507	if v.CidrIpv6 != nil {
6508		ok := object.Key("CidrIpv6")
6509		ok.String(*v.CidrIpv6)
6510	}
6511
6512	return nil
6513}
6514
6515func awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6RangeList(v []types.AwsEc2SecurityGroupIpv6Range, value smithyjson.Value) error {
6516	array := value.Array()
6517	defer array.Close()
6518
6519	for i := range v {
6520		av := array.Value()
6521		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupIpv6Range(&v[i], av); err != nil {
6522			return err
6523		}
6524	}
6525	return nil
6526}
6527
6528func awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListId(v *types.AwsEc2SecurityGroupPrefixListId, value smithyjson.Value) error {
6529	object := value.Object()
6530	defer object.Close()
6531
6532	if v.PrefixListId != nil {
6533		ok := object.Key("PrefixListId")
6534		ok.String(*v.PrefixListId)
6535	}
6536
6537	return nil
6538}
6539
6540func awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListIdList(v []types.AwsEc2SecurityGroupPrefixListId, value smithyjson.Value) error {
6541	array := value.Array()
6542	defer array.Close()
6543
6544	for i := range v {
6545		av := array.Value()
6546		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupPrefixListId(&v[i], av); err != nil {
6547			return err
6548		}
6549	}
6550	return nil
6551}
6552
6553func awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPair(v *types.AwsEc2SecurityGroupUserIdGroupPair, value smithyjson.Value) error {
6554	object := value.Object()
6555	defer object.Close()
6556
6557	if v.GroupId != nil {
6558		ok := object.Key("GroupId")
6559		ok.String(*v.GroupId)
6560	}
6561
6562	if v.GroupName != nil {
6563		ok := object.Key("GroupName")
6564		ok.String(*v.GroupName)
6565	}
6566
6567	if v.PeeringStatus != nil {
6568		ok := object.Key("PeeringStatus")
6569		ok.String(*v.PeeringStatus)
6570	}
6571
6572	if v.UserId != nil {
6573		ok := object.Key("UserId")
6574		ok.String(*v.UserId)
6575	}
6576
6577	if v.VpcId != nil {
6578		ok := object.Key("VpcId")
6579		ok.String(*v.VpcId)
6580	}
6581
6582	if v.VpcPeeringConnectionId != nil {
6583		ok := object.Key("VpcPeeringConnectionId")
6584		ok.String(*v.VpcPeeringConnectionId)
6585	}
6586
6587	return nil
6588}
6589
6590func awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPairList(v []types.AwsEc2SecurityGroupUserIdGroupPair, value smithyjson.Value) error {
6591	array := value.Array()
6592	defer array.Close()
6593
6594	for i := range v {
6595		av := array.Value()
6596		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupUserIdGroupPair(&v[i], av); err != nil {
6597			return err
6598		}
6599	}
6600	return nil
6601}
6602
6603func awsRestjson1_serializeDocumentAwsEc2SubnetDetails(v *types.AwsEc2SubnetDetails, value smithyjson.Value) error {
6604	object := value.Object()
6605	defer object.Close()
6606
6607	if v.AssignIpv6AddressOnCreation {
6608		ok := object.Key("AssignIpv6AddressOnCreation")
6609		ok.Boolean(v.AssignIpv6AddressOnCreation)
6610	}
6611
6612	if v.AvailabilityZone != nil {
6613		ok := object.Key("AvailabilityZone")
6614		ok.String(*v.AvailabilityZone)
6615	}
6616
6617	if v.AvailabilityZoneId != nil {
6618		ok := object.Key("AvailabilityZoneId")
6619		ok.String(*v.AvailabilityZoneId)
6620	}
6621
6622	if v.AvailableIpAddressCount != 0 {
6623		ok := object.Key("AvailableIpAddressCount")
6624		ok.Integer(v.AvailableIpAddressCount)
6625	}
6626
6627	if v.CidrBlock != nil {
6628		ok := object.Key("CidrBlock")
6629		ok.String(*v.CidrBlock)
6630	}
6631
6632	if v.DefaultForAz {
6633		ok := object.Key("DefaultForAz")
6634		ok.Boolean(v.DefaultForAz)
6635	}
6636
6637	if v.Ipv6CidrBlockAssociationSet != nil {
6638		ok := object.Key("Ipv6CidrBlockAssociationSet")
6639		if err := awsRestjson1_serializeDocumentIpv6CidrBlockAssociationList(v.Ipv6CidrBlockAssociationSet, ok); err != nil {
6640			return err
6641		}
6642	}
6643
6644	if v.MapPublicIpOnLaunch {
6645		ok := object.Key("MapPublicIpOnLaunch")
6646		ok.Boolean(v.MapPublicIpOnLaunch)
6647	}
6648
6649	if v.OwnerId != nil {
6650		ok := object.Key("OwnerId")
6651		ok.String(*v.OwnerId)
6652	}
6653
6654	if v.State != nil {
6655		ok := object.Key("State")
6656		ok.String(*v.State)
6657	}
6658
6659	if v.SubnetArn != nil {
6660		ok := object.Key("SubnetArn")
6661		ok.String(*v.SubnetArn)
6662	}
6663
6664	if v.SubnetId != nil {
6665		ok := object.Key("SubnetId")
6666		ok.String(*v.SubnetId)
6667	}
6668
6669	if v.VpcId != nil {
6670		ok := object.Key("VpcId")
6671		ok.String(*v.VpcId)
6672	}
6673
6674	return nil
6675}
6676
6677func awsRestjson1_serializeDocumentAwsEc2VolumeAttachment(v *types.AwsEc2VolumeAttachment, value smithyjson.Value) error {
6678	object := value.Object()
6679	defer object.Close()
6680
6681	if v.AttachTime != nil {
6682		ok := object.Key("AttachTime")
6683		ok.String(*v.AttachTime)
6684	}
6685
6686	if v.DeleteOnTermination {
6687		ok := object.Key("DeleteOnTermination")
6688		ok.Boolean(v.DeleteOnTermination)
6689	}
6690
6691	if v.InstanceId != nil {
6692		ok := object.Key("InstanceId")
6693		ok.String(*v.InstanceId)
6694	}
6695
6696	if v.Status != nil {
6697		ok := object.Key("Status")
6698		ok.String(*v.Status)
6699	}
6700
6701	return nil
6702}
6703
6704func awsRestjson1_serializeDocumentAwsEc2VolumeAttachmentList(v []types.AwsEc2VolumeAttachment, value smithyjson.Value) error {
6705	array := value.Array()
6706	defer array.Close()
6707
6708	for i := range v {
6709		av := array.Value()
6710		if err := awsRestjson1_serializeDocumentAwsEc2VolumeAttachment(&v[i], av); err != nil {
6711			return err
6712		}
6713	}
6714	return nil
6715}
6716
6717func awsRestjson1_serializeDocumentAwsEc2VolumeDetails(v *types.AwsEc2VolumeDetails, value smithyjson.Value) error {
6718	object := value.Object()
6719	defer object.Close()
6720
6721	if v.Attachments != nil {
6722		ok := object.Key("Attachments")
6723		if err := awsRestjson1_serializeDocumentAwsEc2VolumeAttachmentList(v.Attachments, ok); err != nil {
6724			return err
6725		}
6726	}
6727
6728	if v.CreateTime != nil {
6729		ok := object.Key("CreateTime")
6730		ok.String(*v.CreateTime)
6731	}
6732
6733	if v.Encrypted {
6734		ok := object.Key("Encrypted")
6735		ok.Boolean(v.Encrypted)
6736	}
6737
6738	if v.KmsKeyId != nil {
6739		ok := object.Key("KmsKeyId")
6740		ok.String(*v.KmsKeyId)
6741	}
6742
6743	if v.Size != 0 {
6744		ok := object.Key("Size")
6745		ok.Integer(v.Size)
6746	}
6747
6748	if v.SnapshotId != nil {
6749		ok := object.Key("SnapshotId")
6750		ok.String(*v.SnapshotId)
6751	}
6752
6753	if v.Status != nil {
6754		ok := object.Key("Status")
6755		ok.String(*v.Status)
6756	}
6757
6758	return nil
6759}
6760
6761func awsRestjson1_serializeDocumentAwsEc2VpcDetails(v *types.AwsEc2VpcDetails, value smithyjson.Value) error {
6762	object := value.Object()
6763	defer object.Close()
6764
6765	if v.CidrBlockAssociationSet != nil {
6766		ok := object.Key("CidrBlockAssociationSet")
6767		if err := awsRestjson1_serializeDocumentCidrBlockAssociationList(v.CidrBlockAssociationSet, ok); err != nil {
6768			return err
6769		}
6770	}
6771
6772	if v.DhcpOptionsId != nil {
6773		ok := object.Key("DhcpOptionsId")
6774		ok.String(*v.DhcpOptionsId)
6775	}
6776
6777	if v.Ipv6CidrBlockAssociationSet != nil {
6778		ok := object.Key("Ipv6CidrBlockAssociationSet")
6779		if err := awsRestjson1_serializeDocumentIpv6CidrBlockAssociationList(v.Ipv6CidrBlockAssociationSet, ok); err != nil {
6780			return err
6781		}
6782	}
6783
6784	if v.State != nil {
6785		ok := object.Key("State")
6786		ok.String(*v.State)
6787	}
6788
6789	return nil
6790}
6791
6792func awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v *types.AwsEc2VpnConnectionDetails, value smithyjson.Value) error {
6793	object := value.Object()
6794	defer object.Close()
6795
6796	if v.Category != nil {
6797		ok := object.Key("Category")
6798		ok.String(*v.Category)
6799	}
6800
6801	if v.CustomerGatewayConfiguration != nil {
6802		ok := object.Key("CustomerGatewayConfiguration")
6803		ok.String(*v.CustomerGatewayConfiguration)
6804	}
6805
6806	if v.CustomerGatewayId != nil {
6807		ok := object.Key("CustomerGatewayId")
6808		ok.String(*v.CustomerGatewayId)
6809	}
6810
6811	if v.Options != nil {
6812		ok := object.Key("Options")
6813		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsDetails(v.Options, ok); err != nil {
6814			return err
6815		}
6816	}
6817
6818	if v.Routes != nil {
6819		ok := object.Key("Routes")
6820		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesList(v.Routes, ok); err != nil {
6821			return err
6822		}
6823	}
6824
6825	if v.State != nil {
6826		ok := object.Key("State")
6827		ok.String(*v.State)
6828	}
6829
6830	if v.TransitGatewayId != nil {
6831		ok := object.Key("TransitGatewayId")
6832		ok.String(*v.TransitGatewayId)
6833	}
6834
6835	if v.Type != nil {
6836		ok := object.Key("Type")
6837		ok.String(*v.Type)
6838	}
6839
6840	if v.VgwTelemetry != nil {
6841		ok := object.Key("VgwTelemetry")
6842		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v.VgwTelemetry, ok); err != nil {
6843			return err
6844		}
6845	}
6846
6847	if v.VpnConnectionId != nil {
6848		ok := object.Key("VpnConnectionId")
6849		ok.String(*v.VpnConnectionId)
6850	}
6851
6852	if v.VpnGatewayId != nil {
6853		ok := object.Key("VpnGatewayId")
6854		ok.String(*v.VpnGatewayId)
6855	}
6856
6857	return nil
6858}
6859
6860func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsDetails(v *types.AwsEc2VpnConnectionOptionsDetails, value smithyjson.Value) error {
6861	object := value.Object()
6862	defer object.Close()
6863
6864	if v.StaticRoutesOnly {
6865		ok := object.Key("StaticRoutesOnly")
6866		ok.Boolean(v.StaticRoutesOnly)
6867	}
6868
6869	if v.TunnelOptions != nil {
6870		ok := object.Key("TunnelOptions")
6871		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v.TunnelOptions, ok); err != nil {
6872			return err
6873		}
6874	}
6875
6876	return nil
6877}
6878
6879func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(v *types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value smithyjson.Value) error {
6880	object := value.Object()
6881	defer object.Close()
6882
6883	if v.DpdTimeoutSeconds != 0 {
6884		ok := object.Key("DpdTimeoutSeconds")
6885		ok.Integer(v.DpdTimeoutSeconds)
6886	}
6887
6888	if v.IkeVersions != nil {
6889		ok := object.Key("IkeVersions")
6890		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.IkeVersions, ok); err != nil {
6891			return err
6892		}
6893	}
6894
6895	if v.OutsideIpAddress != nil {
6896		ok := object.Key("OutsideIpAddress")
6897		ok.String(*v.OutsideIpAddress)
6898	}
6899
6900	if v.Phase1DhGroupNumbers != nil {
6901		ok := object.Key("Phase1DhGroupNumbers")
6902		if err := awsRestjson1_serializeDocumentIntegerList(v.Phase1DhGroupNumbers, ok); err != nil {
6903			return err
6904		}
6905	}
6906
6907	if v.Phase1EncryptionAlgorithms != nil {
6908		ok := object.Key("Phase1EncryptionAlgorithms")
6909		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase1EncryptionAlgorithms, ok); err != nil {
6910			return err
6911		}
6912	}
6913
6914	if v.Phase1IntegrityAlgorithms != nil {
6915		ok := object.Key("Phase1IntegrityAlgorithms")
6916		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase1IntegrityAlgorithms, ok); err != nil {
6917			return err
6918		}
6919	}
6920
6921	if v.Phase1LifetimeSeconds != 0 {
6922		ok := object.Key("Phase1LifetimeSeconds")
6923		ok.Integer(v.Phase1LifetimeSeconds)
6924	}
6925
6926	if v.Phase2DhGroupNumbers != nil {
6927		ok := object.Key("Phase2DhGroupNumbers")
6928		if err := awsRestjson1_serializeDocumentIntegerList(v.Phase2DhGroupNumbers, ok); err != nil {
6929			return err
6930		}
6931	}
6932
6933	if v.Phase2EncryptionAlgorithms != nil {
6934		ok := object.Key("Phase2EncryptionAlgorithms")
6935		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase2EncryptionAlgorithms, ok); err != nil {
6936			return err
6937		}
6938	}
6939
6940	if v.Phase2IntegrityAlgorithms != nil {
6941		ok := object.Key("Phase2IntegrityAlgorithms")
6942		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Phase2IntegrityAlgorithms, ok); err != nil {
6943			return err
6944		}
6945	}
6946
6947	if v.Phase2LifetimeSeconds != 0 {
6948		ok := object.Key("Phase2LifetimeSeconds")
6949		ok.Integer(v.Phase2LifetimeSeconds)
6950	}
6951
6952	if v.PreSharedKey != nil {
6953		ok := object.Key("PreSharedKey")
6954		ok.String(*v.PreSharedKey)
6955	}
6956
6957	if v.RekeyFuzzPercentage != 0 {
6958		ok := object.Key("RekeyFuzzPercentage")
6959		ok.Integer(v.RekeyFuzzPercentage)
6960	}
6961
6962	if v.RekeyMarginTimeSeconds != 0 {
6963		ok := object.Key("RekeyMarginTimeSeconds")
6964		ok.Integer(v.RekeyMarginTimeSeconds)
6965	}
6966
6967	if v.ReplayWindowSize != 0 {
6968		ok := object.Key("ReplayWindowSize")
6969		ok.Integer(v.ReplayWindowSize)
6970	}
6971
6972	if v.TunnelInsideCidr != nil {
6973		ok := object.Key("TunnelInsideCidr")
6974		ok.String(*v.TunnelInsideCidr)
6975	}
6976
6977	return nil
6978}
6979
6980func awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsList(v []types.AwsEc2VpnConnectionOptionsTunnelOptionsDetails, value smithyjson.Value) error {
6981	array := value.Array()
6982	defer array.Close()
6983
6984	for i := range v {
6985		av := array.Value()
6986		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionOptionsTunnelOptionsDetails(&v[i], av); err != nil {
6987			return err
6988		}
6989	}
6990	return nil
6991}
6992
6993func awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesDetails(v *types.AwsEc2VpnConnectionRoutesDetails, value smithyjson.Value) error {
6994	object := value.Object()
6995	defer object.Close()
6996
6997	if v.DestinationCidrBlock != nil {
6998		ok := object.Key("DestinationCidrBlock")
6999		ok.String(*v.DestinationCidrBlock)
7000	}
7001
7002	if v.State != nil {
7003		ok := object.Key("State")
7004		ok.String(*v.State)
7005	}
7006
7007	return nil
7008}
7009
7010func awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesList(v []types.AwsEc2VpnConnectionRoutesDetails, value smithyjson.Value) error {
7011	array := value.Array()
7012	defer array.Close()
7013
7014	for i := range v {
7015		av := array.Value()
7016		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionRoutesDetails(&v[i], av); err != nil {
7017			return err
7018		}
7019	}
7020	return nil
7021}
7022
7023func awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(v *types.AwsEc2VpnConnectionVgwTelemetryDetails, value smithyjson.Value) error {
7024	object := value.Object()
7025	defer object.Close()
7026
7027	if v.AcceptedRouteCount != 0 {
7028		ok := object.Key("AcceptedRouteCount")
7029		ok.Integer(v.AcceptedRouteCount)
7030	}
7031
7032	if v.CertificateArn != nil {
7033		ok := object.Key("CertificateArn")
7034		ok.String(*v.CertificateArn)
7035	}
7036
7037	if v.LastStatusChange != nil {
7038		ok := object.Key("LastStatusChange")
7039		ok.String(*v.LastStatusChange)
7040	}
7041
7042	if v.OutsideIpAddress != nil {
7043		ok := object.Key("OutsideIpAddress")
7044		ok.String(*v.OutsideIpAddress)
7045	}
7046
7047	if v.Status != nil {
7048		ok := object.Key("Status")
7049		ok.String(*v.Status)
7050	}
7051
7052	if v.StatusMessage != nil {
7053		ok := object.Key("StatusMessage")
7054		ok.String(*v.StatusMessage)
7055	}
7056
7057	return nil
7058}
7059
7060func awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryList(v []types.AwsEc2VpnConnectionVgwTelemetryDetails, value smithyjson.Value) error {
7061	array := value.Array()
7062	defer array.Close()
7063
7064	for i := range v {
7065		av := array.Value()
7066		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionVgwTelemetryDetails(&v[i], av); err != nil {
7067			return err
7068		}
7069	}
7070	return nil
7071}
7072
7073func awsRestjson1_serializeDocumentAwsEcrContainerImageDetails(v *types.AwsEcrContainerImageDetails, value smithyjson.Value) error {
7074	object := value.Object()
7075	defer object.Close()
7076
7077	if v.Architecture != nil {
7078		ok := object.Key("Architecture")
7079		ok.String(*v.Architecture)
7080	}
7081
7082	if v.ImageDigest != nil {
7083		ok := object.Key("ImageDigest")
7084		ok.String(*v.ImageDigest)
7085	}
7086
7087	if v.ImagePublishedAt != nil {
7088		ok := object.Key("ImagePublishedAt")
7089		ok.String(*v.ImagePublishedAt)
7090	}
7091
7092	if v.ImageTags != nil {
7093		ok := object.Key("ImageTags")
7094		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.ImageTags, ok); err != nil {
7095			return err
7096		}
7097	}
7098
7099	if v.RegistryId != nil {
7100		ok := object.Key("RegistryId")
7101		ok.String(*v.RegistryId)
7102	}
7103
7104	if v.RepositoryName != nil {
7105		ok := object.Key("RepositoryName")
7106		ok.String(*v.RepositoryName)
7107	}
7108
7109	return nil
7110}
7111
7112func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(v *types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error {
7113	object := value.Object()
7114	defer object.Close()
7115
7116	if v.Name != nil {
7117		ok := object.Key("Name")
7118		ok.String(*v.Name)
7119	}
7120
7121	if v.Value != nil {
7122		ok := object.Key("Value")
7123		ok.String(*v.Value)
7124	}
7125
7126	return nil
7127}
7128
7129func awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsList(v []types.AwsEcsClusterClusterSettingsDetails, value smithyjson.Value) error {
7130	array := value.Array()
7131	defer array.Close()
7132
7133	for i := range v {
7134		av := array.Value()
7135		if err := awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsDetails(&v[i], av); err != nil {
7136			return err
7137		}
7138	}
7139	return nil
7140}
7141
7142func awsRestjson1_serializeDocumentAwsEcsClusterConfigurationDetails(v *types.AwsEcsClusterConfigurationDetails, value smithyjson.Value) error {
7143	object := value.Object()
7144	defer object.Close()
7145
7146	if v.ExecuteCommandConfiguration != nil {
7147		ok := object.Key("ExecuteCommandConfiguration")
7148		if err := awsRestjson1_serializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v.ExecuteCommandConfiguration, ok); err != nil {
7149			return err
7150		}
7151	}
7152
7153	return nil
7154}
7155
7156func awsRestjson1_serializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationDetails(v *types.AwsEcsClusterConfigurationExecuteCommandConfigurationDetails, value smithyjson.Value) error {
7157	object := value.Object()
7158	defer object.Close()
7159
7160	if v.KmsKeyId != nil {
7161		ok := object.Key("KmsKeyId")
7162		ok.String(*v.KmsKeyId)
7163	}
7164
7165	if v.LogConfiguration != nil {
7166		ok := object.Key("LogConfiguration")
7167		if err := awsRestjson1_serializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v.LogConfiguration, ok); err != nil {
7168			return err
7169		}
7170	}
7171
7172	if v.Logging != nil {
7173		ok := object.Key("Logging")
7174		ok.String(*v.Logging)
7175	}
7176
7177	return nil
7178}
7179
7180func awsRestjson1_serializeDocumentAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails(v *types.AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails, value smithyjson.Value) error {
7181	object := value.Object()
7182	defer object.Close()
7183
7184	if v.CloudWatchEncryptionEnabled {
7185		ok := object.Key("CloudWatchEncryptionEnabled")
7186		ok.Boolean(v.CloudWatchEncryptionEnabled)
7187	}
7188
7189	if v.CloudWatchLogGroupName != nil {
7190		ok := object.Key("CloudWatchLogGroupName")
7191		ok.String(*v.CloudWatchLogGroupName)
7192	}
7193
7194	if v.S3BucketName != nil {
7195		ok := object.Key("S3BucketName")
7196		ok.String(*v.S3BucketName)
7197	}
7198
7199	if v.S3EncryptionEnabled {
7200		ok := object.Key("S3EncryptionEnabled")
7201		ok.Boolean(v.S3EncryptionEnabled)
7202	}
7203
7204	if v.S3KeyPrefix != nil {
7205		ok := object.Key("S3KeyPrefix")
7206		ok.String(*v.S3KeyPrefix)
7207	}
7208
7209	return nil
7210}
7211
7212func awsRestjson1_serializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(v *types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value smithyjson.Value) error {
7213	object := value.Object()
7214	defer object.Close()
7215
7216	if v.Base != 0 {
7217		ok := object.Key("Base")
7218		ok.Integer(v.Base)
7219	}
7220
7221	if v.CapacityProvider != nil {
7222		ok := object.Key("CapacityProvider")
7223		ok.String(*v.CapacityProvider)
7224	}
7225
7226	if v.Weight != 0 {
7227		ok := object.Key("Weight")
7228		ok.Integer(v.Weight)
7229	}
7230
7231	return nil
7232}
7233
7234func awsRestjson1_serializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(v []types.AwsEcsClusterDefaultCapacityProviderStrategyDetails, value smithyjson.Value) error {
7235	array := value.Array()
7236	defer array.Close()
7237
7238	for i := range v {
7239		av := array.Value()
7240		if err := awsRestjson1_serializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyDetails(&v[i], av); err != nil {
7241			return err
7242		}
7243	}
7244	return nil
7245}
7246
7247func awsRestjson1_serializeDocumentAwsEcsClusterDetails(v *types.AwsEcsClusterDetails, value smithyjson.Value) error {
7248	object := value.Object()
7249	defer object.Close()
7250
7251	if v.CapacityProviders != nil {
7252		ok := object.Key("CapacityProviders")
7253		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.CapacityProviders, ok); err != nil {
7254			return err
7255		}
7256	}
7257
7258	if v.ClusterSettings != nil {
7259		ok := object.Key("ClusterSettings")
7260		if err := awsRestjson1_serializeDocumentAwsEcsClusterClusterSettingsList(v.ClusterSettings, ok); err != nil {
7261			return err
7262		}
7263	}
7264
7265	if v.Configuration != nil {
7266		ok := object.Key("Configuration")
7267		if err := awsRestjson1_serializeDocumentAwsEcsClusterConfigurationDetails(v.Configuration, ok); err != nil {
7268			return err
7269		}
7270	}
7271
7272	if v.DefaultCapacityProviderStrategy != nil {
7273		ok := object.Key("DefaultCapacityProviderStrategy")
7274		if err := awsRestjson1_serializeDocumentAwsEcsClusterDefaultCapacityProviderStrategyList(v.DefaultCapacityProviderStrategy, ok); err != nil {
7275			return err
7276		}
7277	}
7278
7279	return nil
7280}
7281
7282func awsRestjson1_serializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(v *types.AwsEcsServiceCapacityProviderStrategyDetails, value smithyjson.Value) error {
7283	object := value.Object()
7284	defer object.Close()
7285
7286	if v.Base != 0 {
7287		ok := object.Key("Base")
7288		ok.Integer(v.Base)
7289	}
7290
7291	if v.CapacityProvider != nil {
7292		ok := object.Key("CapacityProvider")
7293		ok.String(*v.CapacityProvider)
7294	}
7295
7296	if v.Weight != 0 {
7297		ok := object.Key("Weight")
7298		ok.Integer(v.Weight)
7299	}
7300
7301	return nil
7302}
7303
7304func awsRestjson1_serializeDocumentAwsEcsServiceCapacityProviderStrategyList(v []types.AwsEcsServiceCapacityProviderStrategyDetails, value smithyjson.Value) error {
7305	array := value.Array()
7306	defer array.Close()
7307
7308	for i := range v {
7309		av := array.Value()
7310		if err := awsRestjson1_serializeDocumentAwsEcsServiceCapacityProviderStrategyDetails(&v[i], av); err != nil {
7311			return err
7312		}
7313	}
7314	return nil
7315}
7316
7317func awsRestjson1_serializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(v *types.AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails, value smithyjson.Value) error {
7318	object := value.Object()
7319	defer object.Close()
7320
7321	if v.Enable {
7322		ok := object.Key("Enable")
7323		ok.Boolean(v.Enable)
7324	}
7325
7326	if v.Rollback {
7327		ok := object.Key("Rollback")
7328		ok.Boolean(v.Rollback)
7329	}
7330
7331	return nil
7332}
7333
7334func awsRestjson1_serializeDocumentAwsEcsServiceDeploymentConfigurationDetails(v *types.AwsEcsServiceDeploymentConfigurationDetails, value smithyjson.Value) error {
7335	object := value.Object()
7336	defer object.Close()
7337
7338	if v.DeploymentCircuitBreaker != nil {
7339		ok := object.Key("DeploymentCircuitBreaker")
7340		if err := awsRestjson1_serializeDocumentAwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails(v.DeploymentCircuitBreaker, ok); err != nil {
7341			return err
7342		}
7343	}
7344
7345	if v.MaximumPercent != 0 {
7346		ok := object.Key("MaximumPercent")
7347		ok.Integer(v.MaximumPercent)
7348	}
7349
7350	if v.MinimumHealthyPercent != 0 {
7351		ok := object.Key("MinimumHealthyPercent")
7352		ok.Integer(v.MinimumHealthyPercent)
7353	}
7354
7355	return nil
7356}
7357
7358func awsRestjson1_serializeDocumentAwsEcsServiceDeploymentControllerDetails(v *types.AwsEcsServiceDeploymentControllerDetails, value smithyjson.Value) error {
7359	object := value.Object()
7360	defer object.Close()
7361
7362	if v.Type != nil {
7363		ok := object.Key("Type")
7364		ok.String(*v.Type)
7365	}
7366
7367	return nil
7368}
7369
7370func awsRestjson1_serializeDocumentAwsEcsServiceDetails(v *types.AwsEcsServiceDetails, value smithyjson.Value) error {
7371	object := value.Object()
7372	defer object.Close()
7373
7374	if v.CapacityProviderStrategy != nil {
7375		ok := object.Key("CapacityProviderStrategy")
7376		if err := awsRestjson1_serializeDocumentAwsEcsServiceCapacityProviderStrategyList(v.CapacityProviderStrategy, ok); err != nil {
7377			return err
7378		}
7379	}
7380
7381	if v.Cluster != nil {
7382		ok := object.Key("Cluster")
7383		ok.String(*v.Cluster)
7384	}
7385
7386	if v.DeploymentConfiguration != nil {
7387		ok := object.Key("DeploymentConfiguration")
7388		if err := awsRestjson1_serializeDocumentAwsEcsServiceDeploymentConfigurationDetails(v.DeploymentConfiguration, ok); err != nil {
7389			return err
7390		}
7391	}
7392
7393	if v.DeploymentController != nil {
7394		ok := object.Key("DeploymentController")
7395		if err := awsRestjson1_serializeDocumentAwsEcsServiceDeploymentControllerDetails(v.DeploymentController, ok); err != nil {
7396			return err
7397		}
7398	}
7399
7400	if v.DesiredCount != 0 {
7401		ok := object.Key("DesiredCount")
7402		ok.Integer(v.DesiredCount)
7403	}
7404
7405	if v.EnableEcsManagedTags {
7406		ok := object.Key("EnableEcsManagedTags")
7407		ok.Boolean(v.EnableEcsManagedTags)
7408	}
7409
7410	if v.EnableExecuteCommand {
7411		ok := object.Key("EnableExecuteCommand")
7412		ok.Boolean(v.EnableExecuteCommand)
7413	}
7414
7415	if v.HealthCheckGracePeriodSeconds != 0 {
7416		ok := object.Key("HealthCheckGracePeriodSeconds")
7417		ok.Integer(v.HealthCheckGracePeriodSeconds)
7418	}
7419
7420	if v.LaunchType != nil {
7421		ok := object.Key("LaunchType")
7422		ok.String(*v.LaunchType)
7423	}
7424
7425	if v.LoadBalancers != nil {
7426		ok := object.Key("LoadBalancers")
7427		if err := awsRestjson1_serializeDocumentAwsEcsServiceLoadBalancersList(v.LoadBalancers, ok); err != nil {
7428			return err
7429		}
7430	}
7431
7432	if v.Name != nil {
7433		ok := object.Key("Name")
7434		ok.String(*v.Name)
7435	}
7436
7437	if v.NetworkConfiguration != nil {
7438		ok := object.Key("NetworkConfiguration")
7439		if err := awsRestjson1_serializeDocumentAwsEcsServiceNetworkConfigurationDetails(v.NetworkConfiguration, ok); err != nil {
7440			return err
7441		}
7442	}
7443
7444	if v.PlacementConstraints != nil {
7445		ok := object.Key("PlacementConstraints")
7446		if err := awsRestjson1_serializeDocumentAwsEcsServicePlacementConstraintsList(v.PlacementConstraints, ok); err != nil {
7447			return err
7448		}
7449	}
7450
7451	if v.PlacementStrategies != nil {
7452		ok := object.Key("PlacementStrategies")
7453		if err := awsRestjson1_serializeDocumentAwsEcsServicePlacementStrategiesList(v.PlacementStrategies, ok); err != nil {
7454			return err
7455		}
7456	}
7457
7458	if v.PlatformVersion != nil {
7459		ok := object.Key("PlatformVersion")
7460		ok.String(*v.PlatformVersion)
7461	}
7462
7463	if v.PropagateTags != nil {
7464		ok := object.Key("PropagateTags")
7465		ok.String(*v.PropagateTags)
7466	}
7467
7468	if v.Role != nil {
7469		ok := object.Key("Role")
7470		ok.String(*v.Role)
7471	}
7472
7473	if v.SchedulingStrategy != nil {
7474		ok := object.Key("SchedulingStrategy")
7475		ok.String(*v.SchedulingStrategy)
7476	}
7477
7478	if v.ServiceArn != nil {
7479		ok := object.Key("ServiceArn")
7480		ok.String(*v.ServiceArn)
7481	}
7482
7483	if v.ServiceName != nil {
7484		ok := object.Key("ServiceName")
7485		ok.String(*v.ServiceName)
7486	}
7487
7488	if v.ServiceRegistries != nil {
7489		ok := object.Key("ServiceRegistries")
7490		if err := awsRestjson1_serializeDocumentAwsEcsServiceServiceRegistriesList(v.ServiceRegistries, ok); err != nil {
7491			return err
7492		}
7493	}
7494
7495	if v.TaskDefinition != nil {
7496		ok := object.Key("TaskDefinition")
7497		ok.String(*v.TaskDefinition)
7498	}
7499
7500	return nil
7501}
7502
7503func awsRestjson1_serializeDocumentAwsEcsServiceLoadBalancersDetails(v *types.AwsEcsServiceLoadBalancersDetails, value smithyjson.Value) error {
7504	object := value.Object()
7505	defer object.Close()
7506
7507	if v.ContainerName != nil {
7508		ok := object.Key("ContainerName")
7509		ok.String(*v.ContainerName)
7510	}
7511
7512	if v.ContainerPort != 0 {
7513		ok := object.Key("ContainerPort")
7514		ok.Integer(v.ContainerPort)
7515	}
7516
7517	if v.LoadBalancerName != nil {
7518		ok := object.Key("LoadBalancerName")
7519		ok.String(*v.LoadBalancerName)
7520	}
7521
7522	if v.TargetGroupArn != nil {
7523		ok := object.Key("TargetGroupArn")
7524		ok.String(*v.TargetGroupArn)
7525	}
7526
7527	return nil
7528}
7529
7530func awsRestjson1_serializeDocumentAwsEcsServiceLoadBalancersList(v []types.AwsEcsServiceLoadBalancersDetails, value smithyjson.Value) error {
7531	array := value.Array()
7532	defer array.Close()
7533
7534	for i := range v {
7535		av := array.Value()
7536		if err := awsRestjson1_serializeDocumentAwsEcsServiceLoadBalancersDetails(&v[i], av); err != nil {
7537			return err
7538		}
7539	}
7540	return nil
7541}
7542
7543func awsRestjson1_serializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(v *types.AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails, value smithyjson.Value) error {
7544	object := value.Object()
7545	defer object.Close()
7546
7547	if v.AssignPublicIp != nil {
7548		ok := object.Key("AssignPublicIp")
7549		ok.String(*v.AssignPublicIp)
7550	}
7551
7552	if v.SecurityGroups != nil {
7553		ok := object.Key("SecurityGroups")
7554		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroups, ok); err != nil {
7555			return err
7556		}
7557	}
7558
7559	if v.Subnets != nil {
7560		ok := object.Key("Subnets")
7561		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Subnets, ok); err != nil {
7562			return err
7563		}
7564	}
7565
7566	return nil
7567}
7568
7569func awsRestjson1_serializeDocumentAwsEcsServiceNetworkConfigurationDetails(v *types.AwsEcsServiceNetworkConfigurationDetails, value smithyjson.Value) error {
7570	object := value.Object()
7571	defer object.Close()
7572
7573	if v.AwsVpcConfiguration != nil {
7574		ok := object.Key("AwsVpcConfiguration")
7575		if err := awsRestjson1_serializeDocumentAwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails(v.AwsVpcConfiguration, ok); err != nil {
7576			return err
7577		}
7578	}
7579
7580	return nil
7581}
7582
7583func awsRestjson1_serializeDocumentAwsEcsServicePlacementConstraintsDetails(v *types.AwsEcsServicePlacementConstraintsDetails, value smithyjson.Value) error {
7584	object := value.Object()
7585	defer object.Close()
7586
7587	if v.Expression != nil {
7588		ok := object.Key("Expression")
7589		ok.String(*v.Expression)
7590	}
7591
7592	if v.Type != nil {
7593		ok := object.Key("Type")
7594		ok.String(*v.Type)
7595	}
7596
7597	return nil
7598}
7599
7600func awsRestjson1_serializeDocumentAwsEcsServicePlacementConstraintsList(v []types.AwsEcsServicePlacementConstraintsDetails, value smithyjson.Value) error {
7601	array := value.Array()
7602	defer array.Close()
7603
7604	for i := range v {
7605		av := array.Value()
7606		if err := awsRestjson1_serializeDocumentAwsEcsServicePlacementConstraintsDetails(&v[i], av); err != nil {
7607			return err
7608		}
7609	}
7610	return nil
7611}
7612
7613func awsRestjson1_serializeDocumentAwsEcsServicePlacementStrategiesDetails(v *types.AwsEcsServicePlacementStrategiesDetails, value smithyjson.Value) error {
7614	object := value.Object()
7615	defer object.Close()
7616
7617	if v.Field != nil {
7618		ok := object.Key("Field")
7619		ok.String(*v.Field)
7620	}
7621
7622	if v.Type != nil {
7623		ok := object.Key("Type")
7624		ok.String(*v.Type)
7625	}
7626
7627	return nil
7628}
7629
7630func awsRestjson1_serializeDocumentAwsEcsServicePlacementStrategiesList(v []types.AwsEcsServicePlacementStrategiesDetails, value smithyjson.Value) error {
7631	array := value.Array()
7632	defer array.Close()
7633
7634	for i := range v {
7635		av := array.Value()
7636		if err := awsRestjson1_serializeDocumentAwsEcsServicePlacementStrategiesDetails(&v[i], av); err != nil {
7637			return err
7638		}
7639	}
7640	return nil
7641}
7642
7643func awsRestjson1_serializeDocumentAwsEcsServiceServiceRegistriesDetails(v *types.AwsEcsServiceServiceRegistriesDetails, value smithyjson.Value) error {
7644	object := value.Object()
7645	defer object.Close()
7646
7647	if v.ContainerName != nil {
7648		ok := object.Key("ContainerName")
7649		ok.String(*v.ContainerName)
7650	}
7651
7652	if v.ContainerPort != 0 {
7653		ok := object.Key("ContainerPort")
7654		ok.Integer(v.ContainerPort)
7655	}
7656
7657	if v.Port != 0 {
7658		ok := object.Key("Port")
7659		ok.Integer(v.Port)
7660	}
7661
7662	if v.RegistryArn != nil {
7663		ok := object.Key("RegistryArn")
7664		ok.String(*v.RegistryArn)
7665	}
7666
7667	return nil
7668}
7669
7670func awsRestjson1_serializeDocumentAwsEcsServiceServiceRegistriesList(v []types.AwsEcsServiceServiceRegistriesDetails, value smithyjson.Value) error {
7671	array := value.Array()
7672	defer array.Close()
7673
7674	for i := range v {
7675		av := array.Value()
7676		if err := awsRestjson1_serializeDocumentAwsEcsServiceServiceRegistriesDetails(&v[i], av); err != nil {
7677			return err
7678		}
7679	}
7680	return nil
7681}
7682
7683func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value smithyjson.Value) error {
7684	object := value.Object()
7685	defer object.Close()
7686
7687	if v.Condition != nil {
7688		ok := object.Key("Condition")
7689		ok.String(*v.Condition)
7690	}
7691
7692	if v.ContainerName != nil {
7693		ok := object.Key("ContainerName")
7694		ok.String(*v.ContainerName)
7695	}
7696
7697	return nil
7698}
7699
7700func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(v []types.AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails, value smithyjson.Value) error {
7701	array := value.Array()
7702	defer array.Close()
7703
7704	for i := range v {
7705		av := array.Value()
7706		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails(&v[i], av); err != nil {
7707			return err
7708		}
7709	}
7710	return nil
7711}
7712
7713func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value smithyjson.Value) error {
7714	object := value.Object()
7715	defer object.Close()
7716
7717	if v.Command != nil {
7718		ok := object.Key("Command")
7719		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Command, ok); err != nil {
7720			return err
7721		}
7722	}
7723
7724	if v.Cpu != 0 {
7725		ok := object.Key("Cpu")
7726		ok.Integer(v.Cpu)
7727	}
7728
7729	if v.DependsOn != nil {
7730		ok := object.Key("DependsOn")
7731		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDependsOnList(v.DependsOn, ok); err != nil {
7732			return err
7733		}
7734	}
7735
7736	if v.DisableNetworking {
7737		ok := object.Key("DisableNetworking")
7738		ok.Boolean(v.DisableNetworking)
7739	}
7740
7741	if v.DnsSearchDomains != nil {
7742		ok := object.Key("DnsSearchDomains")
7743		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.DnsSearchDomains, ok); err != nil {
7744			return err
7745		}
7746	}
7747
7748	if v.DnsServers != nil {
7749		ok := object.Key("DnsServers")
7750		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.DnsServers, ok); err != nil {
7751			return err
7752		}
7753	}
7754
7755	if v.DockerLabels != nil {
7756		ok := object.Key("DockerLabels")
7757		if err := awsRestjson1_serializeDocumentFieldMap(v.DockerLabels, ok); err != nil {
7758			return err
7759		}
7760	}
7761
7762	if v.DockerSecurityOptions != nil {
7763		ok := object.Key("DockerSecurityOptions")
7764		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.DockerSecurityOptions, ok); err != nil {
7765			return err
7766		}
7767	}
7768
7769	if v.EntryPoint != nil {
7770		ok := object.Key("EntryPoint")
7771		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.EntryPoint, ok); err != nil {
7772			return err
7773		}
7774	}
7775
7776	if v.Environment != nil {
7777		ok := object.Key("Environment")
7778		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(v.Environment, ok); err != nil {
7779			return err
7780		}
7781	}
7782
7783	if v.EnvironmentFiles != nil {
7784		ok := object.Key("EnvironmentFiles")
7785		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(v.EnvironmentFiles, ok); err != nil {
7786			return err
7787		}
7788	}
7789
7790	if v.Essential {
7791		ok := object.Key("Essential")
7792		ok.Boolean(v.Essential)
7793	}
7794
7795	if v.ExtraHosts != nil {
7796		ok := object.Key("ExtraHosts")
7797		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(v.ExtraHosts, ok); err != nil {
7798			return err
7799		}
7800	}
7801
7802	if v.FirelensConfiguration != nil {
7803		ok := object.Key("FirelensConfiguration")
7804		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(v.FirelensConfiguration, ok); err != nil {
7805			return err
7806		}
7807	}
7808
7809	if v.HealthCheck != nil {
7810		ok := object.Key("HealthCheck")
7811		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(v.HealthCheck, ok); err != nil {
7812			return err
7813		}
7814	}
7815
7816	if v.Hostname != nil {
7817		ok := object.Key("Hostname")
7818		ok.String(*v.Hostname)
7819	}
7820
7821	if v.Image != nil {
7822		ok := object.Key("Image")
7823		ok.String(*v.Image)
7824	}
7825
7826	if v.Interactive {
7827		ok := object.Key("Interactive")
7828		ok.Boolean(v.Interactive)
7829	}
7830
7831	if v.Links != nil {
7832		ok := object.Key("Links")
7833		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Links, ok); err != nil {
7834			return err
7835		}
7836	}
7837
7838	if v.LinuxParameters != nil {
7839		ok := object.Key("LinuxParameters")
7840		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(v.LinuxParameters, ok); err != nil {
7841			return err
7842		}
7843	}
7844
7845	if v.LogConfiguration != nil {
7846		ok := object.Key("LogConfiguration")
7847		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(v.LogConfiguration, ok); err != nil {
7848			return err
7849		}
7850	}
7851
7852	if v.Memory != 0 {
7853		ok := object.Key("Memory")
7854		ok.Integer(v.Memory)
7855	}
7856
7857	if v.MemoryReservation != 0 {
7858		ok := object.Key("MemoryReservation")
7859		ok.Integer(v.MemoryReservation)
7860	}
7861
7862	if v.MountPoints != nil {
7863		ok := object.Key("MountPoints")
7864		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(v.MountPoints, ok); err != nil {
7865			return err
7866		}
7867	}
7868
7869	if v.Name != nil {
7870		ok := object.Key("Name")
7871		ok.String(*v.Name)
7872	}
7873
7874	if v.PortMappings != nil {
7875		ok := object.Key("PortMappings")
7876		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(v.PortMappings, ok); err != nil {
7877			return err
7878		}
7879	}
7880
7881	if v.Privileged {
7882		ok := object.Key("Privileged")
7883		ok.Boolean(v.Privileged)
7884	}
7885
7886	if v.PseudoTerminal {
7887		ok := object.Key("PseudoTerminal")
7888		ok.Boolean(v.PseudoTerminal)
7889	}
7890
7891	if v.ReadonlyRootFilesystem {
7892		ok := object.Key("ReadonlyRootFilesystem")
7893		ok.Boolean(v.ReadonlyRootFilesystem)
7894	}
7895
7896	if v.RepositoryCredentials != nil {
7897		ok := object.Key("RepositoryCredentials")
7898		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(v.RepositoryCredentials, ok); err != nil {
7899			return err
7900		}
7901	}
7902
7903	if v.ResourceRequirements != nil {
7904		ok := object.Key("ResourceRequirements")
7905		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(v.ResourceRequirements, ok); err != nil {
7906			return err
7907		}
7908	}
7909
7910	if v.Secrets != nil {
7911		ok := object.Key("Secrets")
7912		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(v.Secrets, ok); err != nil {
7913			return err
7914		}
7915	}
7916
7917	if v.StartTimeout != 0 {
7918		ok := object.Key("StartTimeout")
7919		ok.Integer(v.StartTimeout)
7920	}
7921
7922	if v.StopTimeout != 0 {
7923		ok := object.Key("StopTimeout")
7924		ok.Integer(v.StopTimeout)
7925	}
7926
7927	if v.SystemControls != nil {
7928		ok := object.Key("SystemControls")
7929		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(v.SystemControls, ok); err != nil {
7930			return err
7931		}
7932	}
7933
7934	if v.Ulimits != nil {
7935		ok := object.Key("Ulimits")
7936		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(v.Ulimits, ok); err != nil {
7937			return err
7938		}
7939	}
7940
7941	if v.User != nil {
7942		ok := object.Key("User")
7943		ok.String(*v.User)
7944	}
7945
7946	if v.VolumesFrom != nil {
7947		ok := object.Key("VolumesFrom")
7948		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(v.VolumesFrom, ok); err != nil {
7949			return err
7950		}
7951	}
7952
7953	if v.WorkingDirectory != nil {
7954		ok := object.Key("WorkingDirectory")
7955		ok.String(*v.WorkingDirectory)
7956	}
7957
7958	return nil
7959}
7960
7961func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value smithyjson.Value) error {
7962	object := value.Object()
7963	defer object.Close()
7964
7965	if v.Name != nil {
7966		ok := object.Key("Name")
7967		ok.String(*v.Name)
7968	}
7969
7970	if v.Value != nil {
7971		ok := object.Key("Value")
7972		ok.String(*v.Value)
7973	}
7974
7975	return nil
7976}
7977
7978func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value smithyjson.Value) error {
7979	object := value.Object()
7980	defer object.Close()
7981
7982	if v.Type != nil {
7983		ok := object.Key("Type")
7984		ok.String(*v.Type)
7985	}
7986
7987	if v.Value != nil {
7988		ok := object.Key("Value")
7989		ok.String(*v.Value)
7990	}
7991
7992	return nil
7993}
7994
7995func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList(v []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails, value smithyjson.Value) error {
7996	array := value.Array()
7997	defer array.Close()
7998
7999	for i := range v {
8000		av := array.Value()
8001		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails(&v[i], av); err != nil {
8002			return err
8003		}
8004	}
8005	return nil
8006}
8007
8008func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentList(v []types.AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails, value smithyjson.Value) error {
8009	array := value.Array()
8010	defer array.Close()
8011
8012	for i := range v {
8013		av := array.Value()
8014		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails(&v[i], av); err != nil {
8015			return err
8016		}
8017	}
8018	return nil
8019}
8020
8021func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value smithyjson.Value) error {
8022	object := value.Object()
8023	defer object.Close()
8024
8025	if v.Hostname != nil {
8026		ok := object.Key("Hostname")
8027		ok.String(*v.Hostname)
8028	}
8029
8030	if v.IpAddress != nil {
8031		ok := object.Key("IpAddress")
8032		ok.String(*v.IpAddress)
8033	}
8034
8035	return nil
8036}
8037
8038func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails, value smithyjson.Value) error {
8039	array := value.Array()
8040	defer array.Close()
8041
8042	for i := range v {
8043		av := array.Value()
8044		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails(&v[i], av); err != nil {
8045			return err
8046		}
8047	}
8048	return nil
8049}
8050
8051func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails, value smithyjson.Value) error {
8052	object := value.Object()
8053	defer object.Close()
8054
8055	if v.Options != nil {
8056		ok := object.Key("Options")
8057		if err := awsRestjson1_serializeDocumentFieldMap(v.Options, ok); err != nil {
8058			return err
8059		}
8060	}
8061
8062	if v.Type != nil {
8063		ok := object.Key("Type")
8064		ok.String(*v.Type)
8065	}
8066
8067	return nil
8068}
8069
8070func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails, value smithyjson.Value) error {
8071	object := value.Object()
8072	defer object.Close()
8073
8074	if v.Command != nil {
8075		ok := object.Key("Command")
8076		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Command, ok); err != nil {
8077			return err
8078		}
8079	}
8080
8081	if v.Interval != 0 {
8082		ok := object.Key("Interval")
8083		ok.Integer(v.Interval)
8084	}
8085
8086	if v.Retries != 0 {
8087		ok := object.Key("Retries")
8088		ok.Integer(v.Retries)
8089	}
8090
8091	if v.StartPeriod != 0 {
8092		ok := object.Key("StartPeriod")
8093		ok.Integer(v.StartPeriod)
8094	}
8095
8096	if v.Timeout != 0 {
8097		ok := object.Key("Timeout")
8098		ok.Integer(v.Timeout)
8099	}
8100
8101	return nil
8102}
8103
8104func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails, value smithyjson.Value) error {
8105	object := value.Object()
8106	defer object.Close()
8107
8108	if v.Add != nil {
8109		ok := object.Key("Add")
8110		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Add, ok); err != nil {
8111			return err
8112		}
8113	}
8114
8115	if v.Drop != nil {
8116		ok := object.Key("Drop")
8117		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Drop, ok); err != nil {
8118			return err
8119		}
8120	}
8121
8122	return nil
8123}
8124
8125func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails, value smithyjson.Value) error {
8126	object := value.Object()
8127	defer object.Close()
8128
8129	if v.Capabilities != nil {
8130		ok := object.Key("Capabilities")
8131		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails(v.Capabilities, ok); err != nil {
8132			return err
8133		}
8134	}
8135
8136	if v.Devices != nil {
8137		ok := object.Key("Devices")
8138		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(v.Devices, ok); err != nil {
8139			return err
8140		}
8141	}
8142
8143	if v.InitProcessEnabled {
8144		ok := object.Key("InitProcessEnabled")
8145		ok.Boolean(v.InitProcessEnabled)
8146	}
8147
8148	if v.MaxSwap != 0 {
8149		ok := object.Key("MaxSwap")
8150		ok.Integer(v.MaxSwap)
8151	}
8152
8153	if v.SharedMemorySize != 0 {
8154		ok := object.Key("SharedMemorySize")
8155		ok.Integer(v.SharedMemorySize)
8156	}
8157
8158	if v.Swappiness != 0 {
8159		ok := object.Key("Swappiness")
8160		ok.Integer(v.Swappiness)
8161	}
8162
8163	if v.Tmpfs != nil {
8164		ok := object.Key("Tmpfs")
8165		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(v.Tmpfs, ok); err != nil {
8166			return err
8167		}
8168	}
8169
8170	return nil
8171}
8172
8173func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value smithyjson.Value) error {
8174	object := value.Object()
8175	defer object.Close()
8176
8177	if v.ContainerPath != nil {
8178		ok := object.Key("ContainerPath")
8179		ok.String(*v.ContainerPath)
8180	}
8181
8182	if v.HostPath != nil {
8183		ok := object.Key("HostPath")
8184		ok.String(*v.HostPath)
8185	}
8186
8187	if v.Permissions != nil {
8188		ok := object.Key("Permissions")
8189		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.Permissions, ok); err != nil {
8190			return err
8191		}
8192	}
8193
8194	return nil
8195}
8196
8197func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList(v []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails, value smithyjson.Value) error {
8198	array := value.Array()
8199	defer array.Close()
8200
8201	for i := range v {
8202		av := array.Value()
8203		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails(&v[i], av); err != nil {
8204			return err
8205		}
8206	}
8207	return nil
8208}
8209
8210func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value smithyjson.Value) error {
8211	object := value.Object()
8212	defer object.Close()
8213
8214	if v.ContainerPath != nil {
8215		ok := object.Key("ContainerPath")
8216		ok.String(*v.ContainerPath)
8217	}
8218
8219	if v.MountOptions != nil {
8220		ok := object.Key("MountOptions")
8221		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.MountOptions, ok); err != nil {
8222			return err
8223		}
8224	}
8225
8226	if v.Size != 0 {
8227		ok := object.Key("Size")
8228		ok.Integer(v.Size)
8229	}
8230
8231	return nil
8232}
8233
8234func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails, value smithyjson.Value) error {
8235	array := value.Array()
8236	defer array.Close()
8237
8238	for i := range v {
8239		av := array.Value()
8240		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails(&v[i], av); err != nil {
8241			return err
8242		}
8243	}
8244	return nil
8245}
8246
8247func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsDetails, value smithyjson.Value) error {
8248	array := value.Array()
8249	defer array.Close()
8250
8251	for i := range v {
8252		av := array.Value()
8253		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsDetails(&v[i], av); err != nil {
8254			return err
8255		}
8256	}
8257	return nil
8258}
8259
8260func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails, value smithyjson.Value) error {
8261	object := value.Object()
8262	defer object.Close()
8263
8264	if v.LogDriver != nil {
8265		ok := object.Key("LogDriver")
8266		ok.String(*v.LogDriver)
8267	}
8268
8269	if v.Options != nil {
8270		ok := object.Key("Options")
8271		if err := awsRestjson1_serializeDocumentFieldMap(v.Options, ok); err != nil {
8272			return err
8273		}
8274	}
8275
8276	if v.SecretOptions != nil {
8277		ok := object.Key("SecretOptions")
8278		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(v.SecretOptions, ok); err != nil {
8279			return err
8280		}
8281	}
8282
8283	return nil
8284}
8285
8286func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, value smithyjson.Value) error {
8287	object := value.Object()
8288	defer object.Close()
8289
8290	if v.Name != nil {
8291		ok := object.Key("Name")
8292		ok.String(*v.Name)
8293	}
8294
8295	if v.ValueFrom != nil {
8296		ok := object.Key("ValueFrom")
8297		ok.String(*v.ValueFrom)
8298	}
8299
8300	return nil
8301}
8302
8303func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails, 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_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails(&v[i], av); err != nil {
8310			return err
8311		}
8312	}
8313	return nil
8314}
8315
8316func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value smithyjson.Value) error {
8317	object := value.Object()
8318	defer object.Close()
8319
8320	if v.ContainerPath != nil {
8321		ok := object.Key("ContainerPath")
8322		ok.String(*v.ContainerPath)
8323	}
8324
8325	if v.ReadOnly {
8326		ok := object.Key("ReadOnly")
8327		ok.Boolean(v.ReadOnly)
8328	}
8329
8330	if v.SourceVolume != nil {
8331		ok := object.Key("SourceVolume")
8332		ok.String(*v.SourceVolume)
8333	}
8334
8335	return nil
8336}
8337
8338func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails, value smithyjson.Value) error {
8339	array := value.Array()
8340	defer array.Close()
8341
8342	for i := range v {
8343		av := array.Value()
8344		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails(&v[i], av); err != nil {
8345			return err
8346		}
8347	}
8348	return nil
8349}
8350
8351func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value smithyjson.Value) error {
8352	object := value.Object()
8353	defer object.Close()
8354
8355	if v.ContainerPort != 0 {
8356		ok := object.Key("ContainerPort")
8357		ok.Integer(v.ContainerPort)
8358	}
8359
8360	if v.HostPort != 0 {
8361		ok := object.Key("HostPort")
8362		ok.Integer(v.HostPort)
8363	}
8364
8365	if v.Protocol != nil {
8366		ok := object.Key("Protocol")
8367		ok.String(*v.Protocol)
8368	}
8369
8370	return nil
8371}
8372
8373func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails, value smithyjson.Value) error {
8374	array := value.Array()
8375	defer array.Close()
8376
8377	for i := range v {
8378		av := array.Value()
8379		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails(&v[i], av); err != nil {
8380			return err
8381		}
8382	}
8383	return nil
8384}
8385
8386func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails, value smithyjson.Value) error {
8387	object := value.Object()
8388	defer object.Close()
8389
8390	if v.CredentialsParameter != nil {
8391		ok := object.Key("CredentialsParameter")
8392		ok.String(*v.CredentialsParameter)
8393	}
8394
8395	return nil
8396}
8397
8398func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value smithyjson.Value) error {
8399	object := value.Object()
8400	defer object.Close()
8401
8402	if v.Type != nil {
8403		ok := object.Key("Type")
8404		ok.String(*v.Type)
8405	}
8406
8407	if v.Value != nil {
8408		ok := object.Key("Value")
8409		ok.String(*v.Value)
8410	}
8411
8412	return nil
8413}
8414
8415func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails, value smithyjson.Value) error {
8416	array := value.Array()
8417	defer array.Close()
8418
8419	for i := range v {
8420		av := array.Value()
8421		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails(&v[i], av); err != nil {
8422			return err
8423		}
8424	}
8425	return nil
8426}
8427
8428func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value smithyjson.Value) error {
8429	object := value.Object()
8430	defer object.Close()
8431
8432	if v.Name != nil {
8433		ok := object.Key("Name")
8434		ok.String(*v.Name)
8435	}
8436
8437	if v.ValueFrom != nil {
8438		ok := object.Key("ValueFrom")
8439		ok.String(*v.ValueFrom)
8440	}
8441
8442	return nil
8443}
8444
8445func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails, value smithyjson.Value) error {
8446	array := value.Array()
8447	defer array.Close()
8448
8449	for i := range v {
8450		av := array.Value()
8451		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSecretsDetails(&v[i], av); err != nil {
8452			return err
8453		}
8454	}
8455	return nil
8456}
8457
8458func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value smithyjson.Value) error {
8459	object := value.Object()
8460	defer object.Close()
8461
8462	if v.Namespace != nil {
8463		ok := object.Key("Namespace")
8464		ok.String(*v.Namespace)
8465	}
8466
8467	if v.Value != nil {
8468		ok := object.Key("Value")
8469		ok.String(*v.Value)
8470	}
8471
8472	return nil
8473}
8474
8475func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails, value smithyjson.Value) error {
8476	array := value.Array()
8477	defer array.Close()
8478
8479	for i := range v {
8480		av := array.Value()
8481		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails(&v[i], av); err != nil {
8482			return err
8483		}
8484	}
8485	return nil
8486}
8487
8488func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value smithyjson.Value) error {
8489	object := value.Object()
8490	defer object.Close()
8491
8492	if v.HardLimit != 0 {
8493		ok := object.Key("HardLimit")
8494		ok.Integer(v.HardLimit)
8495	}
8496
8497	if v.Name != nil {
8498		ok := object.Key("Name")
8499		ok.String(*v.Name)
8500	}
8501
8502	if v.SoftLimit != 0 {
8503		ok := object.Key("SoftLimit")
8504		ok.Integer(v.SoftLimit)
8505	}
8506
8507	return nil
8508}
8509
8510func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsList(v []types.AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails, value smithyjson.Value) error {
8511	array := value.Array()
8512	defer array.Close()
8513
8514	for i := range v {
8515		av := array.Value()
8516		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails(&v[i], av); err != nil {
8517			return err
8518		}
8519	}
8520	return nil
8521}
8522
8523func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(v *types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value smithyjson.Value) error {
8524	object := value.Object()
8525	defer object.Close()
8526
8527	if v.ReadOnly {
8528		ok := object.Key("ReadOnly")
8529		ok.Boolean(v.ReadOnly)
8530	}
8531
8532	if v.SourceContainer != nil {
8533		ok := object.Key("SourceContainer")
8534		ok.String(*v.SourceContainer)
8535	}
8536
8537	return nil
8538}
8539
8540func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromList(v []types.AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails, value smithyjson.Value) error {
8541	array := value.Array()
8542	defer array.Close()
8543
8544	for i := range v {
8545		av := array.Value()
8546		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails(&v[i], av); err != nil {
8547			return err
8548		}
8549	}
8550	return nil
8551}
8552
8553func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionDetails(v *types.AwsEcsTaskDefinitionDetails, value smithyjson.Value) error {
8554	object := value.Object()
8555	defer object.Close()
8556
8557	if v.ContainerDefinitions != nil {
8558		ok := object.Key("ContainerDefinitions")
8559		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionContainerDefinitionsList(v.ContainerDefinitions, ok); err != nil {
8560			return err
8561		}
8562	}
8563
8564	if v.Cpu != nil {
8565		ok := object.Key("Cpu")
8566		ok.String(*v.Cpu)
8567	}
8568
8569	if v.ExecutionRoleArn != nil {
8570		ok := object.Key("ExecutionRoleArn")
8571		ok.String(*v.ExecutionRoleArn)
8572	}
8573
8574	if v.Family != nil {
8575		ok := object.Key("Family")
8576		ok.String(*v.Family)
8577	}
8578
8579	if v.InferenceAccelerators != nil {
8580		ok := object.Key("InferenceAccelerators")
8581		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(v.InferenceAccelerators, ok); err != nil {
8582			return err
8583		}
8584	}
8585
8586	if v.IpcMode != nil {
8587		ok := object.Key("IpcMode")
8588		ok.String(*v.IpcMode)
8589	}
8590
8591	if v.Memory != nil {
8592		ok := object.Key("Memory")
8593		ok.String(*v.Memory)
8594	}
8595
8596	if v.NetworkMode != nil {
8597		ok := object.Key("NetworkMode")
8598		ok.String(*v.NetworkMode)
8599	}
8600
8601	if v.PidMode != nil {
8602		ok := object.Key("PidMode")
8603		ok.String(*v.PidMode)
8604	}
8605
8606	if v.PlacementConstraints != nil {
8607		ok := object.Key("PlacementConstraints")
8608		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(v.PlacementConstraints, ok); err != nil {
8609			return err
8610		}
8611	}
8612
8613	if v.ProxyConfiguration != nil {
8614		ok := object.Key("ProxyConfiguration")
8615		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(v.ProxyConfiguration, ok); err != nil {
8616			return err
8617		}
8618	}
8619
8620	if v.RequiresCompatibilities != nil {
8621		ok := object.Key("RequiresCompatibilities")
8622		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.RequiresCompatibilities, ok); err != nil {
8623			return err
8624		}
8625	}
8626
8627	if v.TaskRoleArn != nil {
8628		ok := object.Key("TaskRoleArn")
8629		ok.String(*v.TaskRoleArn)
8630	}
8631
8632	if v.Volumes != nil {
8633		ok := object.Key("Volumes")
8634		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesList(v.Volumes, ok); err != nil {
8635			return err
8636		}
8637	}
8638
8639	return nil
8640}
8641
8642func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(v *types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value smithyjson.Value) error {
8643	object := value.Object()
8644	defer object.Close()
8645
8646	if v.DeviceName != nil {
8647		ok := object.Key("DeviceName")
8648		ok.String(*v.DeviceName)
8649	}
8650
8651	if v.DeviceType != nil {
8652		ok := object.Key("DeviceType")
8653		ok.String(*v.DeviceType)
8654	}
8655
8656	return nil
8657}
8658
8659func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsList(v []types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails, value smithyjson.Value) error {
8660	array := value.Array()
8661	defer array.Close()
8662
8663	for i := range v {
8664		av := array.Value()
8665		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionInferenceAcceleratorsDetails(&v[i], av); err != nil {
8666			return err
8667		}
8668	}
8669	return nil
8670}
8671
8672func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(v *types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value smithyjson.Value) error {
8673	object := value.Object()
8674	defer object.Close()
8675
8676	if v.Expression != nil {
8677		ok := object.Key("Expression")
8678		ok.String(*v.Expression)
8679	}
8680
8681	if v.Type != nil {
8682		ok := object.Key("Type")
8683		ok.String(*v.Type)
8684	}
8685
8686	return nil
8687}
8688
8689func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionPlacementConstraintsList(v []types.AwsEcsTaskDefinitionPlacementConstraintsDetails, value smithyjson.Value) error {
8690	array := value.Array()
8691	defer array.Close()
8692
8693	for i := range v {
8694		av := array.Value()
8695		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionPlacementConstraintsDetails(&v[i], av); err != nil {
8696			return err
8697		}
8698	}
8699	return nil
8700}
8701
8702func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationDetails(v *types.AwsEcsTaskDefinitionProxyConfigurationDetails, value smithyjson.Value) error {
8703	object := value.Object()
8704	defer object.Close()
8705
8706	if v.ContainerName != nil {
8707		ok := object.Key("ContainerName")
8708		ok.String(*v.ContainerName)
8709	}
8710
8711	if v.ProxyConfigurationProperties != nil {
8712		ok := object.Key("ProxyConfigurationProperties")
8713		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(v.ProxyConfigurationProperties, ok); err != nil {
8714			return err
8715		}
8716	}
8717
8718	if v.Type != nil {
8719		ok := object.Key("Type")
8720		ok.String(*v.Type)
8721	}
8722
8723	return nil
8724}
8725
8726func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(v *types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value smithyjson.Value) error {
8727	object := value.Object()
8728	defer object.Close()
8729
8730	if v.Name != nil {
8731		ok := object.Key("Name")
8732		ok.String(*v.Name)
8733	}
8734
8735	if v.Value != nil {
8736		ok := object.Key("Value")
8737		ok.String(*v.Value)
8738	}
8739
8740	return nil
8741}
8742
8743func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList(v []types.AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails, value smithyjson.Value) error {
8744	array := value.Array()
8745	defer array.Close()
8746
8747	for i := range v {
8748		av := array.Value()
8749		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails(&v[i], av); err != nil {
8750			return err
8751		}
8752	}
8753	return nil
8754}
8755
8756func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesDetails(v *types.AwsEcsTaskDefinitionVolumesDetails, value smithyjson.Value) error {
8757	object := value.Object()
8758	defer object.Close()
8759
8760	if v.DockerVolumeConfiguration != nil {
8761		ok := object.Key("DockerVolumeConfiguration")
8762		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(v.DockerVolumeConfiguration, ok); err != nil {
8763			return err
8764		}
8765	}
8766
8767	if v.EfsVolumeConfiguration != nil {
8768		ok := object.Key("EfsVolumeConfiguration")
8769		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(v.EfsVolumeConfiguration, ok); err != nil {
8770			return err
8771		}
8772	}
8773
8774	if v.Host != nil {
8775		ok := object.Key("Host")
8776		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v.Host, ok); err != nil {
8777			return err
8778		}
8779	}
8780
8781	if v.Name != nil {
8782		ok := object.Key("Name")
8783		ok.String(*v.Name)
8784	}
8785
8786	return nil
8787}
8788
8789func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails(v *types.AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails, value smithyjson.Value) error {
8790	object := value.Object()
8791	defer object.Close()
8792
8793	if v.Autoprovision {
8794		ok := object.Key("Autoprovision")
8795		ok.Boolean(v.Autoprovision)
8796	}
8797
8798	if v.Driver != nil {
8799		ok := object.Key("Driver")
8800		ok.String(*v.Driver)
8801	}
8802
8803	if v.DriverOpts != nil {
8804		ok := object.Key("DriverOpts")
8805		if err := awsRestjson1_serializeDocumentFieldMap(v.DriverOpts, ok); err != nil {
8806			return err
8807		}
8808	}
8809
8810	if v.Labels != nil {
8811		ok := object.Key("Labels")
8812		if err := awsRestjson1_serializeDocumentFieldMap(v.Labels, ok); err != nil {
8813			return err
8814		}
8815	}
8816
8817	if v.Scope != nil {
8818		ok := object.Key("Scope")
8819		ok.String(*v.Scope)
8820	}
8821
8822	return nil
8823}
8824
8825func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(v *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails, value smithyjson.Value) error {
8826	object := value.Object()
8827	defer object.Close()
8828
8829	if v.AccessPointId != nil {
8830		ok := object.Key("AccessPointId")
8831		ok.String(*v.AccessPointId)
8832	}
8833
8834	if v.Iam != nil {
8835		ok := object.Key("Iam")
8836		ok.String(*v.Iam)
8837	}
8838
8839	return nil
8840}
8841
8842func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(v *types.AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails, value smithyjson.Value) error {
8843	object := value.Object()
8844	defer object.Close()
8845
8846	if v.AuthorizationConfig != nil {
8847		ok := object.Key("AuthorizationConfig")
8848		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails(v.AuthorizationConfig, ok); err != nil {
8849			return err
8850		}
8851	}
8852
8853	if v.FilesystemId != nil {
8854		ok := object.Key("FilesystemId")
8855		ok.String(*v.FilesystemId)
8856	}
8857
8858	if v.RootDirectory != nil {
8859		ok := object.Key("RootDirectory")
8860		ok.String(*v.RootDirectory)
8861	}
8862
8863	if v.TransitEncryption != nil {
8864		ok := object.Key("TransitEncryption")
8865		ok.String(*v.TransitEncryption)
8866	}
8867
8868	if v.TransitEncryptionPort != 0 {
8869		ok := object.Key("TransitEncryptionPort")
8870		ok.Integer(v.TransitEncryptionPort)
8871	}
8872
8873	return nil
8874}
8875
8876func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesHostDetails(v *types.AwsEcsTaskDefinitionVolumesHostDetails, value smithyjson.Value) error {
8877	object := value.Object()
8878	defer object.Close()
8879
8880	if v.SourcePath != nil {
8881		ok := object.Key("SourcePath")
8882		ok.String(*v.SourcePath)
8883	}
8884
8885	return nil
8886}
8887
8888func awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesList(v []types.AwsEcsTaskDefinitionVolumesDetails, value smithyjson.Value) error {
8889	array := value.Array()
8890	defer array.Close()
8891
8892	for i := range v {
8893		av := array.Value()
8894		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionVolumesDetails(&v[i], av); err != nil {
8895			return err
8896		}
8897	}
8898	return nil
8899}
8900
8901func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentDetails(v *types.AwsElasticBeanstalkEnvironmentDetails, value smithyjson.Value) error {
8902	object := value.Object()
8903	defer object.Close()
8904
8905	if v.ApplicationName != nil {
8906		ok := object.Key("ApplicationName")
8907		ok.String(*v.ApplicationName)
8908	}
8909
8910	if v.Cname != nil {
8911		ok := object.Key("Cname")
8912		ok.String(*v.Cname)
8913	}
8914
8915	if v.DateCreated != nil {
8916		ok := object.Key("DateCreated")
8917		ok.String(*v.DateCreated)
8918	}
8919
8920	if v.DateUpdated != nil {
8921		ok := object.Key("DateUpdated")
8922		ok.String(*v.DateUpdated)
8923	}
8924
8925	if v.Description != nil {
8926		ok := object.Key("Description")
8927		ok.String(*v.Description)
8928	}
8929
8930	if v.EndpointUrl != nil {
8931		ok := object.Key("EndpointUrl")
8932		ok.String(*v.EndpointUrl)
8933	}
8934
8935	if v.EnvironmentArn != nil {
8936		ok := object.Key("EnvironmentArn")
8937		ok.String(*v.EnvironmentArn)
8938	}
8939
8940	if v.EnvironmentId != nil {
8941		ok := object.Key("EnvironmentId")
8942		ok.String(*v.EnvironmentId)
8943	}
8944
8945	if v.EnvironmentLinks != nil {
8946		ok := object.Key("EnvironmentLinks")
8947		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v.EnvironmentLinks, ok); err != nil {
8948			return err
8949		}
8950	}
8951
8952	if v.EnvironmentName != nil {
8953		ok := object.Key("EnvironmentName")
8954		ok.String(*v.EnvironmentName)
8955	}
8956
8957	if v.OptionSettings != nil {
8958		ok := object.Key("OptionSettings")
8959		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v.OptionSettings, ok); err != nil {
8960			return err
8961		}
8962	}
8963
8964	if v.PlatformArn != nil {
8965		ok := object.Key("PlatformArn")
8966		ok.String(*v.PlatformArn)
8967	}
8968
8969	if v.SolutionStackName != nil {
8970		ok := object.Key("SolutionStackName")
8971		ok.String(*v.SolutionStackName)
8972	}
8973
8974	if v.Status != nil {
8975		ok := object.Key("Status")
8976		ok.String(*v.Status)
8977	}
8978
8979	if v.Tier != nil {
8980		ok := object.Key("Tier")
8981		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentTier(v.Tier, ok); err != nil {
8982			return err
8983		}
8984	}
8985
8986	if v.VersionLabel != nil {
8987		ok := object.Key("VersionLabel")
8988		ok.String(*v.VersionLabel)
8989	}
8990
8991	return nil
8992}
8993
8994func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(v *types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value smithyjson.Value) error {
8995	object := value.Object()
8996	defer object.Close()
8997
8998	if v.EnvironmentName != nil {
8999		ok := object.Key("EnvironmentName")
9000		ok.String(*v.EnvironmentName)
9001	}
9002
9003	if v.LinkName != nil {
9004		ok := object.Key("LinkName")
9005		ok.String(*v.LinkName)
9006	}
9007
9008	return nil
9009}
9010
9011func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLinks(v []types.AwsElasticBeanstalkEnvironmentEnvironmentLink, value smithyjson.Value) error {
9012	array := value.Array()
9013	defer array.Close()
9014
9015	for i := range v {
9016		av := array.Value()
9017		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentEnvironmentLink(&v[i], av); err != nil {
9018			return err
9019		}
9020	}
9021	return nil
9022}
9023
9024func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(v *types.AwsElasticBeanstalkEnvironmentOptionSetting, value smithyjson.Value) error {
9025	object := value.Object()
9026	defer object.Close()
9027
9028	if v.Namespace != nil {
9029		ok := object.Key("Namespace")
9030		ok.String(*v.Namespace)
9031	}
9032
9033	if v.OptionName != nil {
9034		ok := object.Key("OptionName")
9035		ok.String(*v.OptionName)
9036	}
9037
9038	if v.ResourceName != nil {
9039		ok := object.Key("ResourceName")
9040		ok.String(*v.ResourceName)
9041	}
9042
9043	if v.Value != nil {
9044		ok := object.Key("Value")
9045		ok.String(*v.Value)
9046	}
9047
9048	return nil
9049}
9050
9051func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentOptionSettings(v []types.AwsElasticBeanstalkEnvironmentOptionSetting, value smithyjson.Value) error {
9052	array := value.Array()
9053	defer array.Close()
9054
9055	for i := range v {
9056		av := array.Value()
9057		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentOptionSetting(&v[i], av); err != nil {
9058			return err
9059		}
9060	}
9061	return nil
9062}
9063
9064func awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentTier(v *types.AwsElasticBeanstalkEnvironmentTier, value smithyjson.Value) error {
9065	object := value.Object()
9066	defer object.Close()
9067
9068	if v.Name != nil {
9069		ok := object.Key("Name")
9070		ok.String(*v.Name)
9071	}
9072
9073	if v.Type != nil {
9074		ok := object.Key("Type")
9075		ok.String(*v.Type)
9076	}
9077
9078	if v.Version != nil {
9079		ok := object.Key("Version")
9080		ok.String(*v.Version)
9081	}
9082
9083	return nil
9084}
9085
9086func awsRestjson1_serializeDocumentAwsElasticsearchDomainDetails(v *types.AwsElasticsearchDomainDetails, value smithyjson.Value) error {
9087	object := value.Object()
9088	defer object.Close()
9089
9090	if v.AccessPolicies != nil {
9091		ok := object.Key("AccessPolicies")
9092		ok.String(*v.AccessPolicies)
9093	}
9094
9095	if v.DomainEndpointOptions != nil {
9096		ok := object.Key("DomainEndpointOptions")
9097		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v.DomainEndpointOptions, ok); err != nil {
9098			return err
9099		}
9100	}
9101
9102	if v.DomainId != nil {
9103		ok := object.Key("DomainId")
9104		ok.String(*v.DomainId)
9105	}
9106
9107	if v.DomainName != nil {
9108		ok := object.Key("DomainName")
9109		ok.String(*v.DomainName)
9110	}
9111
9112	if v.ElasticsearchClusterConfig != nil {
9113		ok := object.Key("ElasticsearchClusterConfig")
9114		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v.ElasticsearchClusterConfig, ok); err != nil {
9115			return err
9116		}
9117	}
9118
9119	if v.ElasticsearchVersion != nil {
9120		ok := object.Key("ElasticsearchVersion")
9121		ok.String(*v.ElasticsearchVersion)
9122	}
9123
9124	if v.EncryptionAtRestOptions != nil {
9125		ok := object.Key("EncryptionAtRestOptions")
9126		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v.EncryptionAtRestOptions, ok); err != nil {
9127			return err
9128		}
9129	}
9130
9131	if v.Endpoint != nil {
9132		ok := object.Key("Endpoint")
9133		ok.String(*v.Endpoint)
9134	}
9135
9136	if v.Endpoints != nil {
9137		ok := object.Key("Endpoints")
9138		if err := awsRestjson1_serializeDocumentFieldMap(v.Endpoints, ok); err != nil {
9139			return err
9140		}
9141	}
9142
9143	if v.LogPublishingOptions != nil {
9144		ok := object.Key("LogPublishingOptions")
9145		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptions(v.LogPublishingOptions, ok); err != nil {
9146			return err
9147		}
9148	}
9149
9150	if v.NodeToNodeEncryptionOptions != nil {
9151		ok := object.Key("NodeToNodeEncryptionOptions")
9152		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v.NodeToNodeEncryptionOptions, ok); err != nil {
9153			return err
9154		}
9155	}
9156
9157	if v.ServiceSoftwareOptions != nil {
9158		ok := object.Key("ServiceSoftwareOptions")
9159		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v.ServiceSoftwareOptions, ok); err != nil {
9160			return err
9161		}
9162	}
9163
9164	if v.VPCOptions != nil {
9165		ok := object.Key("VPCOptions")
9166		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainVPCOptions(v.VPCOptions, ok); err != nil {
9167			return err
9168		}
9169	}
9170
9171	return nil
9172}
9173
9174func awsRestjson1_serializeDocumentAwsElasticsearchDomainDomainEndpointOptions(v *types.AwsElasticsearchDomainDomainEndpointOptions, value smithyjson.Value) error {
9175	object := value.Object()
9176	defer object.Close()
9177
9178	if v.EnforceHTTPS {
9179		ok := object.Key("EnforceHTTPS")
9180		ok.Boolean(v.EnforceHTTPS)
9181	}
9182
9183	if v.TLSSecurityPolicy != nil {
9184		ok := object.Key("TLSSecurityPolicy")
9185		ok.String(*v.TLSSecurityPolicy)
9186	}
9187
9188	return nil
9189}
9190
9191func awsRestjson1_serializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigDetails(v *types.AwsElasticsearchDomainElasticsearchClusterConfigDetails, value smithyjson.Value) error {
9192	object := value.Object()
9193	defer object.Close()
9194
9195	if v.DedicatedMasterCount != 0 {
9196		ok := object.Key("DedicatedMasterCount")
9197		ok.Integer(v.DedicatedMasterCount)
9198	}
9199
9200	if v.DedicatedMasterEnabled {
9201		ok := object.Key("DedicatedMasterEnabled")
9202		ok.Boolean(v.DedicatedMasterEnabled)
9203	}
9204
9205	if v.DedicatedMasterType != nil {
9206		ok := object.Key("DedicatedMasterType")
9207		ok.String(*v.DedicatedMasterType)
9208	}
9209
9210	if v.InstanceCount != 0 {
9211		ok := object.Key("InstanceCount")
9212		ok.Integer(v.InstanceCount)
9213	}
9214
9215	if v.InstanceType != nil {
9216		ok := object.Key("InstanceType")
9217		ok.String(*v.InstanceType)
9218	}
9219
9220	if v.ZoneAwarenessConfig != nil {
9221		ok := object.Key("ZoneAwarenessConfig")
9222		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v.ZoneAwarenessConfig, ok); err != nil {
9223			return err
9224		}
9225	}
9226
9227	if v.ZoneAwarenessEnabled {
9228		ok := object.Key("ZoneAwarenessEnabled")
9229		ok.Boolean(v.ZoneAwarenessEnabled)
9230	}
9231
9232	return nil
9233}
9234
9235func awsRestjson1_serializeDocumentAwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails(v *types.AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails, value smithyjson.Value) error {
9236	object := value.Object()
9237	defer object.Close()
9238
9239	if v.AvailabilityZoneCount != 0 {
9240		ok := object.Key("AvailabilityZoneCount")
9241		ok.Integer(v.AvailabilityZoneCount)
9242	}
9243
9244	return nil
9245}
9246
9247func awsRestjson1_serializeDocumentAwsElasticsearchDomainEncryptionAtRestOptions(v *types.AwsElasticsearchDomainEncryptionAtRestOptions, value smithyjson.Value) error {
9248	object := value.Object()
9249	defer object.Close()
9250
9251	if v.Enabled {
9252		ok := object.Key("Enabled")
9253		ok.Boolean(v.Enabled)
9254	}
9255
9256	if v.KmsKeyId != nil {
9257		ok := object.Key("KmsKeyId")
9258		ok.String(*v.KmsKeyId)
9259	}
9260
9261	return nil
9262}
9263
9264func awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptions(v *types.AwsElasticsearchDomainLogPublishingOptions, value smithyjson.Value) error {
9265	object := value.Object()
9266	defer object.Close()
9267
9268	if v.AuditLogs != nil {
9269		ok := object.Key("AuditLogs")
9270		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v.AuditLogs, ok); err != nil {
9271			return err
9272		}
9273	}
9274
9275	if v.IndexSlowLogs != nil {
9276		ok := object.Key("IndexSlowLogs")
9277		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v.IndexSlowLogs, ok); err != nil {
9278			return err
9279		}
9280	}
9281
9282	if v.SearchSlowLogs != nil {
9283		ok := object.Key("SearchSlowLogs")
9284		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v.SearchSlowLogs, ok); err != nil {
9285			return err
9286		}
9287	}
9288
9289	return nil
9290}
9291
9292func awsRestjson1_serializeDocumentAwsElasticsearchDomainLogPublishingOptionsLogConfig(v *types.AwsElasticsearchDomainLogPublishingOptionsLogConfig, value smithyjson.Value) error {
9293	object := value.Object()
9294	defer object.Close()
9295
9296	if v.CloudWatchLogsLogGroupArn != nil {
9297		ok := object.Key("CloudWatchLogsLogGroupArn")
9298		ok.String(*v.CloudWatchLogsLogGroupArn)
9299	}
9300
9301	if v.Enabled {
9302		ok := object.Key("Enabled")
9303		ok.Boolean(v.Enabled)
9304	}
9305
9306	return nil
9307}
9308
9309func awsRestjson1_serializeDocumentAwsElasticsearchDomainNodeToNodeEncryptionOptions(v *types.AwsElasticsearchDomainNodeToNodeEncryptionOptions, value smithyjson.Value) error {
9310	object := value.Object()
9311	defer object.Close()
9312
9313	if v.Enabled {
9314		ok := object.Key("Enabled")
9315		ok.Boolean(v.Enabled)
9316	}
9317
9318	return nil
9319}
9320
9321func awsRestjson1_serializeDocumentAwsElasticsearchDomainServiceSoftwareOptions(v *types.AwsElasticsearchDomainServiceSoftwareOptions, value smithyjson.Value) error {
9322	object := value.Object()
9323	defer object.Close()
9324
9325	if v.AutomatedUpdateDate != nil {
9326		ok := object.Key("AutomatedUpdateDate")
9327		ok.String(*v.AutomatedUpdateDate)
9328	}
9329
9330	if v.Cancellable {
9331		ok := object.Key("Cancellable")
9332		ok.Boolean(v.Cancellable)
9333	}
9334
9335	if v.CurrentVersion != nil {
9336		ok := object.Key("CurrentVersion")
9337		ok.String(*v.CurrentVersion)
9338	}
9339
9340	if v.Description != nil {
9341		ok := object.Key("Description")
9342		ok.String(*v.Description)
9343	}
9344
9345	if v.NewVersion != nil {
9346		ok := object.Key("NewVersion")
9347		ok.String(*v.NewVersion)
9348	}
9349
9350	if v.UpdateAvailable {
9351		ok := object.Key("UpdateAvailable")
9352		ok.Boolean(v.UpdateAvailable)
9353	}
9354
9355	if v.UpdateStatus != nil {
9356		ok := object.Key("UpdateStatus")
9357		ok.String(*v.UpdateStatus)
9358	}
9359
9360	return nil
9361}
9362
9363func awsRestjson1_serializeDocumentAwsElasticsearchDomainVPCOptions(v *types.AwsElasticsearchDomainVPCOptions, value smithyjson.Value) error {
9364	object := value.Object()
9365	defer object.Close()
9366
9367	if v.AvailabilityZones != nil {
9368		ok := object.Key("AvailabilityZones")
9369		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.AvailabilityZones, ok); err != nil {
9370			return err
9371		}
9372	}
9373
9374	if v.SecurityGroupIds != nil {
9375		ok := object.Key("SecurityGroupIds")
9376		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
9377			return err
9378		}
9379	}
9380
9381	if v.SubnetIds != nil {
9382		ok := object.Key("SubnetIds")
9383		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil {
9384			return err
9385		}
9386	}
9387
9388	if v.VPCId != nil {
9389		ok := object.Key("VPCId")
9390		ok.String(*v.VPCId)
9391	}
9392
9393	return nil
9394}
9395
9396func awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicies(v []types.AwsElbAppCookieStickinessPolicy, value smithyjson.Value) error {
9397	array := value.Array()
9398	defer array.Close()
9399
9400	for i := range v {
9401		av := array.Value()
9402		if err := awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicy(&v[i], av); err != nil {
9403			return err
9404		}
9405	}
9406	return nil
9407}
9408
9409func awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicy(v *types.AwsElbAppCookieStickinessPolicy, value smithyjson.Value) error {
9410	object := value.Object()
9411	defer object.Close()
9412
9413	if v.CookieName != nil {
9414		ok := object.Key("CookieName")
9415		ok.String(*v.CookieName)
9416	}
9417
9418	if v.PolicyName != nil {
9419		ok := object.Key("PolicyName")
9420		ok.String(*v.PolicyName)
9421	}
9422
9423	return nil
9424}
9425
9426func awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicies(v []types.AwsElbLbCookieStickinessPolicy, value smithyjson.Value) error {
9427	array := value.Array()
9428	defer array.Close()
9429
9430	for i := range v {
9431		av := array.Value()
9432		if err := awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicy(&v[i], av); err != nil {
9433			return err
9434		}
9435	}
9436	return nil
9437}
9438
9439func awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicy(v *types.AwsElbLbCookieStickinessPolicy, value smithyjson.Value) error {
9440	object := value.Object()
9441	defer object.Close()
9442
9443	if v.CookieExpirationPeriod != 0 {
9444		ok := object.Key("CookieExpirationPeriod")
9445		ok.Long(v.CookieExpirationPeriod)
9446	}
9447
9448	if v.PolicyName != nil {
9449		ok := object.Key("PolicyName")
9450		ok.String(*v.PolicyName)
9451	}
9452
9453	return nil
9454}
9455
9456func awsRestjson1_serializeDocumentAwsElbLoadBalancerAccessLog(v *types.AwsElbLoadBalancerAccessLog, value smithyjson.Value) error {
9457	object := value.Object()
9458	defer object.Close()
9459
9460	if v.EmitInterval != 0 {
9461		ok := object.Key("EmitInterval")
9462		ok.Integer(v.EmitInterval)
9463	}
9464
9465	if v.Enabled {
9466		ok := object.Key("Enabled")
9467		ok.Boolean(v.Enabled)
9468	}
9469
9470	if v.S3BucketName != nil {
9471		ok := object.Key("S3BucketName")
9472		ok.String(*v.S3BucketName)
9473	}
9474
9475	if v.S3BucketPrefix != nil {
9476		ok := object.Key("S3BucketPrefix")
9477		ok.String(*v.S3BucketPrefix)
9478	}
9479
9480	return nil
9481}
9482
9483func awsRestjson1_serializeDocumentAwsElbLoadBalancerAttributes(v *types.AwsElbLoadBalancerAttributes, value smithyjson.Value) error {
9484	object := value.Object()
9485	defer object.Close()
9486
9487	if v.AccessLog != nil {
9488		ok := object.Key("AccessLog")
9489		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerAccessLog(v.AccessLog, ok); err != nil {
9490			return err
9491		}
9492	}
9493
9494	if v.ConnectionDraining != nil {
9495		ok := object.Key("ConnectionDraining")
9496		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionDraining(v.ConnectionDraining, ok); err != nil {
9497			return err
9498		}
9499	}
9500
9501	if v.ConnectionSettings != nil {
9502		ok := object.Key("ConnectionSettings")
9503		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionSettings(v.ConnectionSettings, ok); err != nil {
9504			return err
9505		}
9506	}
9507
9508	if v.CrossZoneLoadBalancing != nil {
9509		ok := object.Key("CrossZoneLoadBalancing")
9510		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v.CrossZoneLoadBalancing, ok); err != nil {
9511			return err
9512		}
9513	}
9514
9515	return nil
9516}
9517
9518func awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescription(v *types.AwsElbLoadBalancerBackendServerDescription, value smithyjson.Value) error {
9519	object := value.Object()
9520	defer object.Close()
9521
9522	if v.InstancePort != 0 {
9523		ok := object.Key("InstancePort")
9524		ok.Integer(v.InstancePort)
9525	}
9526
9527	if v.PolicyNames != nil {
9528		ok := object.Key("PolicyNames")
9529		if err := awsRestjson1_serializeDocumentStringList(v.PolicyNames, ok); err != nil {
9530			return err
9531		}
9532	}
9533
9534	return nil
9535}
9536
9537func awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v []types.AwsElbLoadBalancerBackendServerDescription, value smithyjson.Value) error {
9538	array := value.Array()
9539	defer array.Close()
9540
9541	for i := range v {
9542		av := array.Value()
9543		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescription(&v[i], av); err != nil {
9544			return err
9545		}
9546	}
9547	return nil
9548}
9549
9550func awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionDraining(v *types.AwsElbLoadBalancerConnectionDraining, value smithyjson.Value) error {
9551	object := value.Object()
9552	defer object.Close()
9553
9554	if v.Enabled {
9555		ok := object.Key("Enabled")
9556		ok.Boolean(v.Enabled)
9557	}
9558
9559	if v.Timeout != 0 {
9560		ok := object.Key("Timeout")
9561		ok.Integer(v.Timeout)
9562	}
9563
9564	return nil
9565}
9566
9567func awsRestjson1_serializeDocumentAwsElbLoadBalancerConnectionSettings(v *types.AwsElbLoadBalancerConnectionSettings, value smithyjson.Value) error {
9568	object := value.Object()
9569	defer object.Close()
9570
9571	if v.IdleTimeout != 0 {
9572		ok := object.Key("IdleTimeout")
9573		ok.Integer(v.IdleTimeout)
9574	}
9575
9576	return nil
9577}
9578
9579func awsRestjson1_serializeDocumentAwsElbLoadBalancerCrossZoneLoadBalancing(v *types.AwsElbLoadBalancerCrossZoneLoadBalancing, value smithyjson.Value) error {
9580	object := value.Object()
9581	defer object.Close()
9582
9583	if v.Enabled {
9584		ok := object.Key("Enabled")
9585		ok.Boolean(v.Enabled)
9586	}
9587
9588	return nil
9589}
9590
9591func awsRestjson1_serializeDocumentAwsElbLoadBalancerDetails(v *types.AwsElbLoadBalancerDetails, value smithyjson.Value) error {
9592	object := value.Object()
9593	defer object.Close()
9594
9595	if v.AvailabilityZones != nil {
9596		ok := object.Key("AvailabilityZones")
9597		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
9598			return err
9599		}
9600	}
9601
9602	if v.BackendServerDescriptions != nil {
9603		ok := object.Key("BackendServerDescriptions")
9604		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerBackendServerDescriptions(v.BackendServerDescriptions, ok); err != nil {
9605			return err
9606		}
9607	}
9608
9609	if v.CanonicalHostedZoneName != nil {
9610		ok := object.Key("CanonicalHostedZoneName")
9611		ok.String(*v.CanonicalHostedZoneName)
9612	}
9613
9614	if v.CanonicalHostedZoneNameID != nil {
9615		ok := object.Key("CanonicalHostedZoneNameID")
9616		ok.String(*v.CanonicalHostedZoneNameID)
9617	}
9618
9619	if v.CreatedTime != nil {
9620		ok := object.Key("CreatedTime")
9621		ok.String(*v.CreatedTime)
9622	}
9623
9624	if v.DnsName != nil {
9625		ok := object.Key("DnsName")
9626		ok.String(*v.DnsName)
9627	}
9628
9629	if v.HealthCheck != nil {
9630		ok := object.Key("HealthCheck")
9631		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerHealthCheck(v.HealthCheck, ok); err != nil {
9632			return err
9633		}
9634	}
9635
9636	if v.Instances != nil {
9637		ok := object.Key("Instances")
9638		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerInstances(v.Instances, ok); err != nil {
9639			return err
9640		}
9641	}
9642
9643	if v.ListenerDescriptions != nil {
9644		ok := object.Key("ListenerDescriptions")
9645		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescriptions(v.ListenerDescriptions, ok); err != nil {
9646			return err
9647		}
9648	}
9649
9650	if v.LoadBalancerAttributes != nil {
9651		ok := object.Key("LoadBalancerAttributes")
9652		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerAttributes(v.LoadBalancerAttributes, ok); err != nil {
9653			return err
9654		}
9655	}
9656
9657	if v.LoadBalancerName != nil {
9658		ok := object.Key("LoadBalancerName")
9659		ok.String(*v.LoadBalancerName)
9660	}
9661
9662	if v.Policies != nil {
9663		ok := object.Key("Policies")
9664		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerPolicies(v.Policies, ok); err != nil {
9665			return err
9666		}
9667	}
9668
9669	if v.Scheme != nil {
9670		ok := object.Key("Scheme")
9671		ok.String(*v.Scheme)
9672	}
9673
9674	if v.SecurityGroups != nil {
9675		ok := object.Key("SecurityGroups")
9676		if err := awsRestjson1_serializeDocumentStringList(v.SecurityGroups, ok); err != nil {
9677			return err
9678		}
9679	}
9680
9681	if v.SourceSecurityGroup != nil {
9682		ok := object.Key("SourceSecurityGroup")
9683		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v.SourceSecurityGroup, ok); err != nil {
9684			return err
9685		}
9686	}
9687
9688	if v.Subnets != nil {
9689		ok := object.Key("Subnets")
9690		if err := awsRestjson1_serializeDocumentStringList(v.Subnets, ok); err != nil {
9691			return err
9692		}
9693	}
9694
9695	if v.VpcId != nil {
9696		ok := object.Key("VpcId")
9697		ok.String(*v.VpcId)
9698	}
9699
9700	return nil
9701}
9702
9703func awsRestjson1_serializeDocumentAwsElbLoadBalancerHealthCheck(v *types.AwsElbLoadBalancerHealthCheck, value smithyjson.Value) error {
9704	object := value.Object()
9705	defer object.Close()
9706
9707	if v.HealthyThreshold != 0 {
9708		ok := object.Key("HealthyThreshold")
9709		ok.Integer(v.HealthyThreshold)
9710	}
9711
9712	if v.Interval != 0 {
9713		ok := object.Key("Interval")
9714		ok.Integer(v.Interval)
9715	}
9716
9717	if v.Target != nil {
9718		ok := object.Key("Target")
9719		ok.String(*v.Target)
9720	}
9721
9722	if v.Timeout != 0 {
9723		ok := object.Key("Timeout")
9724		ok.Integer(v.Timeout)
9725	}
9726
9727	if v.UnhealthyThreshold != 0 {
9728		ok := object.Key("UnhealthyThreshold")
9729		ok.Integer(v.UnhealthyThreshold)
9730	}
9731
9732	return nil
9733}
9734
9735func awsRestjson1_serializeDocumentAwsElbLoadBalancerInstance(v *types.AwsElbLoadBalancerInstance, value smithyjson.Value) error {
9736	object := value.Object()
9737	defer object.Close()
9738
9739	if v.InstanceId != nil {
9740		ok := object.Key("InstanceId")
9741		ok.String(*v.InstanceId)
9742	}
9743
9744	return nil
9745}
9746
9747func awsRestjson1_serializeDocumentAwsElbLoadBalancerInstances(v []types.AwsElbLoadBalancerInstance, value smithyjson.Value) error {
9748	array := value.Array()
9749	defer array.Close()
9750
9751	for i := range v {
9752		av := array.Value()
9753		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerInstance(&v[i], av); err != nil {
9754			return err
9755		}
9756	}
9757	return nil
9758}
9759
9760func awsRestjson1_serializeDocumentAwsElbLoadBalancerListener(v *types.AwsElbLoadBalancerListener, value smithyjson.Value) error {
9761	object := value.Object()
9762	defer object.Close()
9763
9764	if v.InstancePort != 0 {
9765		ok := object.Key("InstancePort")
9766		ok.Integer(v.InstancePort)
9767	}
9768
9769	if v.InstanceProtocol != nil {
9770		ok := object.Key("InstanceProtocol")
9771		ok.String(*v.InstanceProtocol)
9772	}
9773
9774	if v.LoadBalancerPort != 0 {
9775		ok := object.Key("LoadBalancerPort")
9776		ok.Integer(v.LoadBalancerPort)
9777	}
9778
9779	if v.Protocol != nil {
9780		ok := object.Key("Protocol")
9781		ok.String(*v.Protocol)
9782	}
9783
9784	if v.SslCertificateId != nil {
9785		ok := object.Key("SslCertificateId")
9786		ok.String(*v.SslCertificateId)
9787	}
9788
9789	return nil
9790}
9791
9792func awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescription(v *types.AwsElbLoadBalancerListenerDescription, value smithyjson.Value) error {
9793	object := value.Object()
9794	defer object.Close()
9795
9796	if v.Listener != nil {
9797		ok := object.Key("Listener")
9798		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListener(v.Listener, ok); err != nil {
9799			return err
9800		}
9801	}
9802
9803	if v.PolicyNames != nil {
9804		ok := object.Key("PolicyNames")
9805		if err := awsRestjson1_serializeDocumentStringList(v.PolicyNames, ok); err != nil {
9806			return err
9807		}
9808	}
9809
9810	return nil
9811}
9812
9813func awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescriptions(v []types.AwsElbLoadBalancerListenerDescription, value smithyjson.Value) error {
9814	array := value.Array()
9815	defer array.Close()
9816
9817	for i := range v {
9818		av := array.Value()
9819		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerListenerDescription(&v[i], av); err != nil {
9820			return err
9821		}
9822	}
9823	return nil
9824}
9825
9826func awsRestjson1_serializeDocumentAwsElbLoadBalancerPolicies(v *types.AwsElbLoadBalancerPolicies, value smithyjson.Value) error {
9827	object := value.Object()
9828	defer object.Close()
9829
9830	if v.AppCookieStickinessPolicies != nil {
9831		ok := object.Key("AppCookieStickinessPolicies")
9832		if err := awsRestjson1_serializeDocumentAwsElbAppCookieStickinessPolicies(v.AppCookieStickinessPolicies, ok); err != nil {
9833			return err
9834		}
9835	}
9836
9837	if v.LbCookieStickinessPolicies != nil {
9838		ok := object.Key("LbCookieStickinessPolicies")
9839		if err := awsRestjson1_serializeDocumentAwsElbLbCookieStickinessPolicies(v.LbCookieStickinessPolicies, ok); err != nil {
9840			return err
9841		}
9842	}
9843
9844	if v.OtherPolicies != nil {
9845		ok := object.Key("OtherPolicies")
9846		if err := awsRestjson1_serializeDocumentStringList(v.OtherPolicies, ok); err != nil {
9847			return err
9848		}
9849	}
9850
9851	return nil
9852}
9853
9854func awsRestjson1_serializeDocumentAwsElbLoadBalancerSourceSecurityGroup(v *types.AwsElbLoadBalancerSourceSecurityGroup, value smithyjson.Value) error {
9855	object := value.Object()
9856	defer object.Close()
9857
9858	if v.GroupName != nil {
9859		ok := object.Key("GroupName")
9860		ok.String(*v.GroupName)
9861	}
9862
9863	if v.OwnerAlias != nil {
9864		ok := object.Key("OwnerAlias")
9865		ok.String(*v.OwnerAlias)
9866	}
9867
9868	return nil
9869}
9870
9871func awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v *types.AwsElbv2LoadBalancerDetails, value smithyjson.Value) error {
9872	object := value.Object()
9873	defer object.Close()
9874
9875	if v.AvailabilityZones != nil {
9876		ok := object.Key("AvailabilityZones")
9877		if err := awsRestjson1_serializeDocumentAvailabilityZones(v.AvailabilityZones, ok); err != nil {
9878			return err
9879		}
9880	}
9881
9882	if v.CanonicalHostedZoneId != nil {
9883		ok := object.Key("CanonicalHostedZoneId")
9884		ok.String(*v.CanonicalHostedZoneId)
9885	}
9886
9887	if v.CreatedTime != nil {
9888		ok := object.Key("CreatedTime")
9889		ok.String(*v.CreatedTime)
9890	}
9891
9892	if v.DNSName != nil {
9893		ok := object.Key("DNSName")
9894		ok.String(*v.DNSName)
9895	}
9896
9897	if v.IpAddressType != nil {
9898		ok := object.Key("IpAddressType")
9899		ok.String(*v.IpAddressType)
9900	}
9901
9902	if v.Scheme != nil {
9903		ok := object.Key("Scheme")
9904		ok.String(*v.Scheme)
9905	}
9906
9907	if v.SecurityGroups != nil {
9908		ok := object.Key("SecurityGroups")
9909		if err := awsRestjson1_serializeDocumentSecurityGroups(v.SecurityGroups, ok); err != nil {
9910			return err
9911		}
9912	}
9913
9914	if v.State != nil {
9915		ok := object.Key("State")
9916		if err := awsRestjson1_serializeDocumentLoadBalancerState(v.State, ok); err != nil {
9917			return err
9918		}
9919	}
9920
9921	if v.Type != nil {
9922		ok := object.Key("Type")
9923		ok.String(*v.Type)
9924	}
9925
9926	if v.VpcId != nil {
9927		ok := object.Key("VpcId")
9928		ok.String(*v.VpcId)
9929	}
9930
9931	return nil
9932}
9933
9934func awsRestjson1_serializeDocumentAwsIamAccessKeyDetails(v *types.AwsIamAccessKeyDetails, value smithyjson.Value) error {
9935	object := value.Object()
9936	defer object.Close()
9937
9938	if v.AccessKeyId != nil {
9939		ok := object.Key("AccessKeyId")
9940		ok.String(*v.AccessKeyId)
9941	}
9942
9943	if v.AccountId != nil {
9944		ok := object.Key("AccountId")
9945		ok.String(*v.AccountId)
9946	}
9947
9948	if v.CreatedAt != nil {
9949		ok := object.Key("CreatedAt")
9950		ok.String(*v.CreatedAt)
9951	}
9952
9953	if v.PrincipalId != nil {
9954		ok := object.Key("PrincipalId")
9955		ok.String(*v.PrincipalId)
9956	}
9957
9958	if v.PrincipalName != nil {
9959		ok := object.Key("PrincipalName")
9960		ok.String(*v.PrincipalName)
9961	}
9962
9963	if v.PrincipalType != nil {
9964		ok := object.Key("PrincipalType")
9965		ok.String(*v.PrincipalType)
9966	}
9967
9968	if v.SessionContext != nil {
9969		ok := object.Key("SessionContext")
9970		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContext(v.SessionContext, ok); err != nil {
9971			return err
9972		}
9973	}
9974
9975	if len(v.Status) > 0 {
9976		ok := object.Key("Status")
9977		ok.String(string(v.Status))
9978	}
9979
9980	if v.UserName != nil {
9981		ok := object.Key("UserName")
9982		ok.String(*v.UserName)
9983	}
9984
9985	return nil
9986}
9987
9988func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContext(v *types.AwsIamAccessKeySessionContext, value smithyjson.Value) error {
9989	object := value.Object()
9990	defer object.Close()
9991
9992	if v.Attributes != nil {
9993		ok := object.Key("Attributes")
9994		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextAttributes(v.Attributes, ok); err != nil {
9995			return err
9996		}
9997	}
9998
9999	if v.SessionIssuer != nil {
10000		ok := object.Key("SessionIssuer")
10001		if err := awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v.SessionIssuer, ok); err != nil {
10002			return err
10003		}
10004	}
10005
10006	return nil
10007}
10008
10009func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextAttributes(v *types.AwsIamAccessKeySessionContextAttributes, value smithyjson.Value) error {
10010	object := value.Object()
10011	defer object.Close()
10012
10013	if v.CreationDate != nil {
10014		ok := object.Key("CreationDate")
10015		ok.String(*v.CreationDate)
10016	}
10017
10018	if v.MfaAuthenticated {
10019		ok := object.Key("MfaAuthenticated")
10020		ok.Boolean(v.MfaAuthenticated)
10021	}
10022
10023	return nil
10024}
10025
10026func awsRestjson1_serializeDocumentAwsIamAccessKeySessionContextSessionIssuer(v *types.AwsIamAccessKeySessionContextSessionIssuer, value smithyjson.Value) error {
10027	object := value.Object()
10028	defer object.Close()
10029
10030	if v.AccountId != nil {
10031		ok := object.Key("AccountId")
10032		ok.String(*v.AccountId)
10033	}
10034
10035	if v.Arn != nil {
10036		ok := object.Key("Arn")
10037		ok.String(*v.Arn)
10038	}
10039
10040	if v.PrincipalId != nil {
10041		ok := object.Key("PrincipalId")
10042		ok.String(*v.PrincipalId)
10043	}
10044
10045	if v.Type != nil {
10046		ok := object.Key("Type")
10047		ok.String(*v.Type)
10048	}
10049
10050	if v.UserName != nil {
10051		ok := object.Key("UserName")
10052		ok.String(*v.UserName)
10053	}
10054
10055	return nil
10056}
10057
10058func awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicy(v *types.AwsIamAttachedManagedPolicy, value smithyjson.Value) error {
10059	object := value.Object()
10060	defer object.Close()
10061
10062	if v.PolicyArn != nil {
10063		ok := object.Key("PolicyArn")
10064		ok.String(*v.PolicyArn)
10065	}
10066
10067	if v.PolicyName != nil {
10068		ok := object.Key("PolicyName")
10069		ok.String(*v.PolicyName)
10070	}
10071
10072	return nil
10073}
10074
10075func awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v []types.AwsIamAttachedManagedPolicy, value smithyjson.Value) error {
10076	array := value.Array()
10077	defer array.Close()
10078
10079	for i := range v {
10080		av := array.Value()
10081		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicy(&v[i], av); err != nil {
10082			return err
10083		}
10084	}
10085	return nil
10086}
10087
10088func awsRestjson1_serializeDocumentAwsIamGroupDetails(v *types.AwsIamGroupDetails, value smithyjson.Value) error {
10089	object := value.Object()
10090	defer object.Close()
10091
10092	if v.AttachedManagedPolicies != nil {
10093		ok := object.Key("AttachedManagedPolicies")
10094		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
10095			return err
10096		}
10097	}
10098
10099	if v.CreateDate != nil {
10100		ok := object.Key("CreateDate")
10101		ok.String(*v.CreateDate)
10102	}
10103
10104	if v.GroupId != nil {
10105		ok := object.Key("GroupId")
10106		ok.String(*v.GroupId)
10107	}
10108
10109	if v.GroupName != nil {
10110		ok := object.Key("GroupName")
10111		ok.String(*v.GroupName)
10112	}
10113
10114	if v.GroupPolicyList != nil {
10115		ok := object.Key("GroupPolicyList")
10116		if err := awsRestjson1_serializeDocumentAwsIamGroupPolicyList(v.GroupPolicyList, ok); err != nil {
10117			return err
10118		}
10119	}
10120
10121	if v.Path != nil {
10122		ok := object.Key("Path")
10123		ok.String(*v.Path)
10124	}
10125
10126	return nil
10127}
10128
10129func awsRestjson1_serializeDocumentAwsIamGroupPolicy(v *types.AwsIamGroupPolicy, value smithyjson.Value) error {
10130	object := value.Object()
10131	defer object.Close()
10132
10133	if v.PolicyName != nil {
10134		ok := object.Key("PolicyName")
10135		ok.String(*v.PolicyName)
10136	}
10137
10138	return nil
10139}
10140
10141func awsRestjson1_serializeDocumentAwsIamGroupPolicyList(v []types.AwsIamGroupPolicy, value smithyjson.Value) error {
10142	array := value.Array()
10143	defer array.Close()
10144
10145	for i := range v {
10146		av := array.Value()
10147		if err := awsRestjson1_serializeDocumentAwsIamGroupPolicy(&v[i], av); err != nil {
10148			return err
10149		}
10150	}
10151	return nil
10152}
10153
10154func awsRestjson1_serializeDocumentAwsIamInstanceProfile(v *types.AwsIamInstanceProfile, value smithyjson.Value) error {
10155	object := value.Object()
10156	defer object.Close()
10157
10158	if v.Arn != nil {
10159		ok := object.Key("Arn")
10160		ok.String(*v.Arn)
10161	}
10162
10163	if v.CreateDate != nil {
10164		ok := object.Key("CreateDate")
10165		ok.String(*v.CreateDate)
10166	}
10167
10168	if v.InstanceProfileId != nil {
10169		ok := object.Key("InstanceProfileId")
10170		ok.String(*v.InstanceProfileId)
10171	}
10172
10173	if v.InstanceProfileName != nil {
10174		ok := object.Key("InstanceProfileName")
10175		ok.String(*v.InstanceProfileName)
10176	}
10177
10178	if v.Path != nil {
10179		ok := object.Key("Path")
10180		ok.String(*v.Path)
10181	}
10182
10183	if v.Roles != nil {
10184		ok := object.Key("Roles")
10185		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileRoles(v.Roles, ok); err != nil {
10186			return err
10187		}
10188	}
10189
10190	return nil
10191}
10192
10193func awsRestjson1_serializeDocumentAwsIamInstanceProfileList(v []types.AwsIamInstanceProfile, value smithyjson.Value) error {
10194	array := value.Array()
10195	defer array.Close()
10196
10197	for i := range v {
10198		av := array.Value()
10199		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfile(&v[i], av); err != nil {
10200			return err
10201		}
10202	}
10203	return nil
10204}
10205
10206func awsRestjson1_serializeDocumentAwsIamInstanceProfileRole(v *types.AwsIamInstanceProfileRole, value smithyjson.Value) error {
10207	object := value.Object()
10208	defer object.Close()
10209
10210	if v.Arn != nil {
10211		ok := object.Key("Arn")
10212		ok.String(*v.Arn)
10213	}
10214
10215	if v.AssumeRolePolicyDocument != nil {
10216		ok := object.Key("AssumeRolePolicyDocument")
10217		ok.String(*v.AssumeRolePolicyDocument)
10218	}
10219
10220	if v.CreateDate != nil {
10221		ok := object.Key("CreateDate")
10222		ok.String(*v.CreateDate)
10223	}
10224
10225	if v.Path != nil {
10226		ok := object.Key("Path")
10227		ok.String(*v.Path)
10228	}
10229
10230	if v.RoleId != nil {
10231		ok := object.Key("RoleId")
10232		ok.String(*v.RoleId)
10233	}
10234
10235	if v.RoleName != nil {
10236		ok := object.Key("RoleName")
10237		ok.String(*v.RoleName)
10238	}
10239
10240	return nil
10241}
10242
10243func awsRestjson1_serializeDocumentAwsIamInstanceProfileRoles(v []types.AwsIamInstanceProfileRole, value smithyjson.Value) error {
10244	array := value.Array()
10245	defer array.Close()
10246
10247	for i := range v {
10248		av := array.Value()
10249		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileRole(&v[i], av); err != nil {
10250			return err
10251		}
10252	}
10253	return nil
10254}
10255
10256func awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v *types.AwsIamPermissionsBoundary, value smithyjson.Value) error {
10257	object := value.Object()
10258	defer object.Close()
10259
10260	if v.PermissionsBoundaryArn != nil {
10261		ok := object.Key("PermissionsBoundaryArn")
10262		ok.String(*v.PermissionsBoundaryArn)
10263	}
10264
10265	if v.PermissionsBoundaryType != nil {
10266		ok := object.Key("PermissionsBoundaryType")
10267		ok.String(*v.PermissionsBoundaryType)
10268	}
10269
10270	return nil
10271}
10272
10273func awsRestjson1_serializeDocumentAwsIamPolicyDetails(v *types.AwsIamPolicyDetails, value smithyjson.Value) error {
10274	object := value.Object()
10275	defer object.Close()
10276
10277	if v.AttachmentCount != 0 {
10278		ok := object.Key("AttachmentCount")
10279		ok.Integer(v.AttachmentCount)
10280	}
10281
10282	if v.CreateDate != nil {
10283		ok := object.Key("CreateDate")
10284		ok.String(*v.CreateDate)
10285	}
10286
10287	if v.DefaultVersionId != nil {
10288		ok := object.Key("DefaultVersionId")
10289		ok.String(*v.DefaultVersionId)
10290	}
10291
10292	if v.Description != nil {
10293		ok := object.Key("Description")
10294		ok.String(*v.Description)
10295	}
10296
10297	if v.IsAttachable {
10298		ok := object.Key("IsAttachable")
10299		ok.Boolean(v.IsAttachable)
10300	}
10301
10302	if v.Path != nil {
10303		ok := object.Key("Path")
10304		ok.String(*v.Path)
10305	}
10306
10307	if v.PermissionsBoundaryUsageCount != 0 {
10308		ok := object.Key("PermissionsBoundaryUsageCount")
10309		ok.Integer(v.PermissionsBoundaryUsageCount)
10310	}
10311
10312	if v.PolicyId != nil {
10313		ok := object.Key("PolicyId")
10314		ok.String(*v.PolicyId)
10315	}
10316
10317	if v.PolicyName != nil {
10318		ok := object.Key("PolicyName")
10319		ok.String(*v.PolicyName)
10320	}
10321
10322	if v.PolicyVersionList != nil {
10323		ok := object.Key("PolicyVersionList")
10324		if err := awsRestjson1_serializeDocumentAwsIamPolicyVersionList(v.PolicyVersionList, ok); err != nil {
10325			return err
10326		}
10327	}
10328
10329	if v.UpdateDate != nil {
10330		ok := object.Key("UpdateDate")
10331		ok.String(*v.UpdateDate)
10332	}
10333
10334	return nil
10335}
10336
10337func awsRestjson1_serializeDocumentAwsIamPolicyVersion(v *types.AwsIamPolicyVersion, value smithyjson.Value) error {
10338	object := value.Object()
10339	defer object.Close()
10340
10341	if v.CreateDate != nil {
10342		ok := object.Key("CreateDate")
10343		ok.String(*v.CreateDate)
10344	}
10345
10346	if v.IsDefaultVersion {
10347		ok := object.Key("IsDefaultVersion")
10348		ok.Boolean(v.IsDefaultVersion)
10349	}
10350
10351	if v.VersionId != nil {
10352		ok := object.Key("VersionId")
10353		ok.String(*v.VersionId)
10354	}
10355
10356	return nil
10357}
10358
10359func awsRestjson1_serializeDocumentAwsIamPolicyVersionList(v []types.AwsIamPolicyVersion, value smithyjson.Value) error {
10360	array := value.Array()
10361	defer array.Close()
10362
10363	for i := range v {
10364		av := array.Value()
10365		if err := awsRestjson1_serializeDocumentAwsIamPolicyVersion(&v[i], av); err != nil {
10366			return err
10367		}
10368	}
10369	return nil
10370}
10371
10372func awsRestjson1_serializeDocumentAwsIamRoleDetails(v *types.AwsIamRoleDetails, value smithyjson.Value) error {
10373	object := value.Object()
10374	defer object.Close()
10375
10376	if v.AssumeRolePolicyDocument != nil {
10377		ok := object.Key("AssumeRolePolicyDocument")
10378		ok.String(*v.AssumeRolePolicyDocument)
10379	}
10380
10381	if v.AttachedManagedPolicies != nil {
10382		ok := object.Key("AttachedManagedPolicies")
10383		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
10384			return err
10385		}
10386	}
10387
10388	if v.CreateDate != nil {
10389		ok := object.Key("CreateDate")
10390		ok.String(*v.CreateDate)
10391	}
10392
10393	if v.InstanceProfileList != nil {
10394		ok := object.Key("InstanceProfileList")
10395		if err := awsRestjson1_serializeDocumentAwsIamInstanceProfileList(v.InstanceProfileList, ok); err != nil {
10396			return err
10397		}
10398	}
10399
10400	if v.MaxSessionDuration != 0 {
10401		ok := object.Key("MaxSessionDuration")
10402		ok.Integer(v.MaxSessionDuration)
10403	}
10404
10405	if v.Path != nil {
10406		ok := object.Key("Path")
10407		ok.String(*v.Path)
10408	}
10409
10410	if v.PermissionsBoundary != nil {
10411		ok := object.Key("PermissionsBoundary")
10412		if err := awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v.PermissionsBoundary, ok); err != nil {
10413			return err
10414		}
10415	}
10416
10417	if v.RoleId != nil {
10418		ok := object.Key("RoleId")
10419		ok.String(*v.RoleId)
10420	}
10421
10422	if v.RoleName != nil {
10423		ok := object.Key("RoleName")
10424		ok.String(*v.RoleName)
10425	}
10426
10427	if v.RolePolicyList != nil {
10428		ok := object.Key("RolePolicyList")
10429		if err := awsRestjson1_serializeDocumentAwsIamRolePolicyList(v.RolePolicyList, ok); err != nil {
10430			return err
10431		}
10432	}
10433
10434	return nil
10435}
10436
10437func awsRestjson1_serializeDocumentAwsIamRolePolicy(v *types.AwsIamRolePolicy, value smithyjson.Value) error {
10438	object := value.Object()
10439	defer object.Close()
10440
10441	if v.PolicyName != nil {
10442		ok := object.Key("PolicyName")
10443		ok.String(*v.PolicyName)
10444	}
10445
10446	return nil
10447}
10448
10449func awsRestjson1_serializeDocumentAwsIamRolePolicyList(v []types.AwsIamRolePolicy, value smithyjson.Value) error {
10450	array := value.Array()
10451	defer array.Close()
10452
10453	for i := range v {
10454		av := array.Value()
10455		if err := awsRestjson1_serializeDocumentAwsIamRolePolicy(&v[i], av); err != nil {
10456			return err
10457		}
10458	}
10459	return nil
10460}
10461
10462func awsRestjson1_serializeDocumentAwsIamUserDetails(v *types.AwsIamUserDetails, value smithyjson.Value) error {
10463	object := value.Object()
10464	defer object.Close()
10465
10466	if v.AttachedManagedPolicies != nil {
10467		ok := object.Key("AttachedManagedPolicies")
10468		if err := awsRestjson1_serializeDocumentAwsIamAttachedManagedPolicyList(v.AttachedManagedPolicies, ok); err != nil {
10469			return err
10470		}
10471	}
10472
10473	if v.CreateDate != nil {
10474		ok := object.Key("CreateDate")
10475		ok.String(*v.CreateDate)
10476	}
10477
10478	if v.GroupList != nil {
10479		ok := object.Key("GroupList")
10480		if err := awsRestjson1_serializeDocumentStringList(v.GroupList, ok); err != nil {
10481			return err
10482		}
10483	}
10484
10485	if v.Path != nil {
10486		ok := object.Key("Path")
10487		ok.String(*v.Path)
10488	}
10489
10490	if v.PermissionsBoundary != nil {
10491		ok := object.Key("PermissionsBoundary")
10492		if err := awsRestjson1_serializeDocumentAwsIamPermissionsBoundary(v.PermissionsBoundary, ok); err != nil {
10493			return err
10494		}
10495	}
10496
10497	if v.UserId != nil {
10498		ok := object.Key("UserId")
10499		ok.String(*v.UserId)
10500	}
10501
10502	if v.UserName != nil {
10503		ok := object.Key("UserName")
10504		ok.String(*v.UserName)
10505	}
10506
10507	if v.UserPolicyList != nil {
10508		ok := object.Key("UserPolicyList")
10509		if err := awsRestjson1_serializeDocumentAwsIamUserPolicyList(v.UserPolicyList, ok); err != nil {
10510			return err
10511		}
10512	}
10513
10514	return nil
10515}
10516
10517func awsRestjson1_serializeDocumentAwsIamUserPolicy(v *types.AwsIamUserPolicy, value smithyjson.Value) error {
10518	object := value.Object()
10519	defer object.Close()
10520
10521	if v.PolicyName != nil {
10522		ok := object.Key("PolicyName")
10523		ok.String(*v.PolicyName)
10524	}
10525
10526	return nil
10527}
10528
10529func awsRestjson1_serializeDocumentAwsIamUserPolicyList(v []types.AwsIamUserPolicy, value smithyjson.Value) error {
10530	array := value.Array()
10531	defer array.Close()
10532
10533	for i := range v {
10534		av := array.Value()
10535		if err := awsRestjson1_serializeDocumentAwsIamUserPolicy(&v[i], av); err != nil {
10536			return err
10537		}
10538	}
10539	return nil
10540}
10541
10542func awsRestjson1_serializeDocumentAwsKmsKeyDetails(v *types.AwsKmsKeyDetails, value smithyjson.Value) error {
10543	object := value.Object()
10544	defer object.Close()
10545
10546	if v.AWSAccountId != nil {
10547		ok := object.Key("AWSAccountId")
10548		ok.String(*v.AWSAccountId)
10549	}
10550
10551	if v.CreationDate != 0 {
10552		ok := object.Key("CreationDate")
10553		switch {
10554		case math.IsNaN(v.CreationDate):
10555			ok.String("NaN")
10556
10557		case math.IsInf(v.CreationDate, 1):
10558			ok.String("Infinity")
10559
10560		case math.IsInf(v.CreationDate, -1):
10561			ok.String("-Infinity")
10562
10563		default:
10564			ok.Double(v.CreationDate)
10565
10566		}
10567	}
10568
10569	if v.Description != nil {
10570		ok := object.Key("Description")
10571		ok.String(*v.Description)
10572	}
10573
10574	if v.KeyId != nil {
10575		ok := object.Key("KeyId")
10576		ok.String(*v.KeyId)
10577	}
10578
10579	if v.KeyManager != nil {
10580		ok := object.Key("KeyManager")
10581		ok.String(*v.KeyManager)
10582	}
10583
10584	if v.KeyRotationStatus {
10585		ok := object.Key("KeyRotationStatus")
10586		ok.Boolean(v.KeyRotationStatus)
10587	}
10588
10589	if v.KeyState != nil {
10590		ok := object.Key("KeyState")
10591		ok.String(*v.KeyState)
10592	}
10593
10594	if v.Origin != nil {
10595		ok := object.Key("Origin")
10596		ok.String(*v.Origin)
10597	}
10598
10599	return nil
10600}
10601
10602func awsRestjson1_serializeDocumentAwsLambdaFunctionCode(v *types.AwsLambdaFunctionCode, value smithyjson.Value) error {
10603	object := value.Object()
10604	defer object.Close()
10605
10606	if v.S3Bucket != nil {
10607		ok := object.Key("S3Bucket")
10608		ok.String(*v.S3Bucket)
10609	}
10610
10611	if v.S3Key != nil {
10612		ok := object.Key("S3Key")
10613		ok.String(*v.S3Key)
10614	}
10615
10616	if v.S3ObjectVersion != nil {
10617		ok := object.Key("S3ObjectVersion")
10618		ok.String(*v.S3ObjectVersion)
10619	}
10620
10621	if v.ZipFile != nil {
10622		ok := object.Key("ZipFile")
10623		ok.String(*v.ZipFile)
10624	}
10625
10626	return nil
10627}
10628
10629func awsRestjson1_serializeDocumentAwsLambdaFunctionDeadLetterConfig(v *types.AwsLambdaFunctionDeadLetterConfig, value smithyjson.Value) error {
10630	object := value.Object()
10631	defer object.Close()
10632
10633	if v.TargetArn != nil {
10634		ok := object.Key("TargetArn")
10635		ok.String(*v.TargetArn)
10636	}
10637
10638	return nil
10639}
10640
10641func awsRestjson1_serializeDocumentAwsLambdaFunctionDetails(v *types.AwsLambdaFunctionDetails, value smithyjson.Value) error {
10642	object := value.Object()
10643	defer object.Close()
10644
10645	if v.Code != nil {
10646		ok := object.Key("Code")
10647		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionCode(v.Code, ok); err != nil {
10648			return err
10649		}
10650	}
10651
10652	if v.CodeSha256 != nil {
10653		ok := object.Key("CodeSha256")
10654		ok.String(*v.CodeSha256)
10655	}
10656
10657	if v.DeadLetterConfig != nil {
10658		ok := object.Key("DeadLetterConfig")
10659		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionDeadLetterConfig(v.DeadLetterConfig, ok); err != nil {
10660			return err
10661		}
10662	}
10663
10664	if v.Environment != nil {
10665		ok := object.Key("Environment")
10666		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v.Environment, ok); err != nil {
10667			return err
10668		}
10669	}
10670
10671	if v.FunctionName != nil {
10672		ok := object.Key("FunctionName")
10673		ok.String(*v.FunctionName)
10674	}
10675
10676	if v.Handler != nil {
10677		ok := object.Key("Handler")
10678		ok.String(*v.Handler)
10679	}
10680
10681	if v.KmsKeyArn != nil {
10682		ok := object.Key("KmsKeyArn")
10683		ok.String(*v.KmsKeyArn)
10684	}
10685
10686	if v.LastModified != nil {
10687		ok := object.Key("LastModified")
10688		ok.String(*v.LastModified)
10689	}
10690
10691	if v.Layers != nil {
10692		ok := object.Key("Layers")
10693		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v.Layers, ok); err != nil {
10694			return err
10695		}
10696	}
10697
10698	if v.MasterArn != nil {
10699		ok := object.Key("MasterArn")
10700		ok.String(*v.MasterArn)
10701	}
10702
10703	if v.MemorySize != 0 {
10704		ok := object.Key("MemorySize")
10705		ok.Integer(v.MemorySize)
10706	}
10707
10708	if v.RevisionId != nil {
10709		ok := object.Key("RevisionId")
10710		ok.String(*v.RevisionId)
10711	}
10712
10713	if v.Role != nil {
10714		ok := object.Key("Role")
10715		ok.String(*v.Role)
10716	}
10717
10718	if v.Runtime != nil {
10719		ok := object.Key("Runtime")
10720		ok.String(*v.Runtime)
10721	}
10722
10723	if v.Timeout != 0 {
10724		ok := object.Key("Timeout")
10725		ok.Integer(v.Timeout)
10726	}
10727
10728	if v.TracingConfig != nil {
10729		ok := object.Key("TracingConfig")
10730		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v.TracingConfig, ok); err != nil {
10731			return err
10732		}
10733	}
10734
10735	if v.Version != nil {
10736		ok := object.Key("Version")
10737		ok.String(*v.Version)
10738	}
10739
10740	if v.VpcConfig != nil {
10741		ok := object.Key("VpcConfig")
10742		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v.VpcConfig, ok); err != nil {
10743			return err
10744		}
10745	}
10746
10747	return nil
10748}
10749
10750func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironment(v *types.AwsLambdaFunctionEnvironment, value smithyjson.Value) error {
10751	object := value.Object()
10752	defer object.Close()
10753
10754	if v.Error != nil {
10755		ok := object.Key("Error")
10756		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v.Error, ok); err != nil {
10757			return err
10758		}
10759	}
10760
10761	if v.Variables != nil {
10762		ok := object.Key("Variables")
10763		if err := awsRestjson1_serializeDocumentFieldMap(v.Variables, ok); err != nil {
10764			return err
10765		}
10766	}
10767
10768	return nil
10769}
10770
10771func awsRestjson1_serializeDocumentAwsLambdaFunctionEnvironmentError(v *types.AwsLambdaFunctionEnvironmentError, value smithyjson.Value) error {
10772	object := value.Object()
10773	defer object.Close()
10774
10775	if v.ErrorCode != nil {
10776		ok := object.Key("ErrorCode")
10777		ok.String(*v.ErrorCode)
10778	}
10779
10780	if v.Message != nil {
10781		ok := object.Key("Message")
10782		ok.String(*v.Message)
10783	}
10784
10785	return nil
10786}
10787
10788func awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(v *types.AwsLambdaFunctionLayer, value smithyjson.Value) error {
10789	object := value.Object()
10790	defer object.Close()
10791
10792	if v.Arn != nil {
10793		ok := object.Key("Arn")
10794		ok.String(*v.Arn)
10795	}
10796
10797	if v.CodeSize != 0 {
10798		ok := object.Key("CodeSize")
10799		ok.Integer(v.CodeSize)
10800	}
10801
10802	return nil
10803}
10804
10805func awsRestjson1_serializeDocumentAwsLambdaFunctionLayerList(v []types.AwsLambdaFunctionLayer, value smithyjson.Value) error {
10806	array := value.Array()
10807	defer array.Close()
10808
10809	for i := range v {
10810		av := array.Value()
10811		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionLayer(&v[i], av); err != nil {
10812			return err
10813		}
10814	}
10815	return nil
10816}
10817
10818func awsRestjson1_serializeDocumentAwsLambdaFunctionTracingConfig(v *types.AwsLambdaFunctionTracingConfig, value smithyjson.Value) error {
10819	object := value.Object()
10820	defer object.Close()
10821
10822	if v.Mode != nil {
10823		ok := object.Key("Mode")
10824		ok.String(*v.Mode)
10825	}
10826
10827	return nil
10828}
10829
10830func awsRestjson1_serializeDocumentAwsLambdaFunctionVpcConfig(v *types.AwsLambdaFunctionVpcConfig, value smithyjson.Value) error {
10831	object := value.Object()
10832	defer object.Close()
10833
10834	if v.SecurityGroupIds != nil {
10835		ok := object.Key("SecurityGroupIds")
10836		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SecurityGroupIds, ok); err != nil {
10837			return err
10838		}
10839	}
10840
10841	if v.SubnetIds != nil {
10842		ok := object.Key("SubnetIds")
10843		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SubnetIds, ok); err != nil {
10844			return err
10845		}
10846	}
10847
10848	if v.VpcId != nil {
10849		ok := object.Key("VpcId")
10850		ok.String(*v.VpcId)
10851	}
10852
10853	return nil
10854}
10855
10856func awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v *types.AwsLambdaLayerVersionDetails, value smithyjson.Value) error {
10857	object := value.Object()
10858	defer object.Close()
10859
10860	if v.CompatibleRuntimes != nil {
10861		ok := object.Key("CompatibleRuntimes")
10862		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.CompatibleRuntimes, ok); err != nil {
10863			return err
10864		}
10865	}
10866
10867	if v.CreatedDate != nil {
10868		ok := object.Key("CreatedDate")
10869		ok.String(*v.CreatedDate)
10870	}
10871
10872	if v.Version != 0 {
10873		ok := object.Key("Version")
10874		ok.Long(v.Version)
10875	}
10876
10877	return nil
10878}
10879
10880func awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRole(v *types.AwsRdsDbClusterAssociatedRole, value smithyjson.Value) error {
10881	object := value.Object()
10882	defer object.Close()
10883
10884	if v.RoleArn != nil {
10885		ok := object.Key("RoleArn")
10886		ok.String(*v.RoleArn)
10887	}
10888
10889	if v.Status != nil {
10890		ok := object.Key("Status")
10891		ok.String(*v.Status)
10892	}
10893
10894	return nil
10895}
10896
10897func awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRoles(v []types.AwsRdsDbClusterAssociatedRole, value smithyjson.Value) error {
10898	array := value.Array()
10899	defer array.Close()
10900
10901	for i := range v {
10902		av := array.Value()
10903		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRole(&v[i], av); err != nil {
10904			return err
10905		}
10906	}
10907	return nil
10908}
10909
10910func awsRestjson1_serializeDocumentAwsRdsDbClusterDetails(v *types.AwsRdsDbClusterDetails, value smithyjson.Value) error {
10911	object := value.Object()
10912	defer object.Close()
10913
10914	if v.ActivityStreamStatus != nil {
10915		ok := object.Key("ActivityStreamStatus")
10916		ok.String(*v.ActivityStreamStatus)
10917	}
10918
10919	if v.AllocatedStorage != 0 {
10920		ok := object.Key("AllocatedStorage")
10921		ok.Integer(v.AllocatedStorage)
10922	}
10923
10924	if v.AssociatedRoles != nil {
10925		ok := object.Key("AssociatedRoles")
10926		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterAssociatedRoles(v.AssociatedRoles, ok); err != nil {
10927			return err
10928		}
10929	}
10930
10931	if v.AvailabilityZones != nil {
10932		ok := object.Key("AvailabilityZones")
10933		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
10934			return err
10935		}
10936	}
10937
10938	if v.BackupRetentionPeriod != 0 {
10939		ok := object.Key("BackupRetentionPeriod")
10940		ok.Integer(v.BackupRetentionPeriod)
10941	}
10942
10943	if v.ClusterCreateTime != nil {
10944		ok := object.Key("ClusterCreateTime")
10945		ok.String(*v.ClusterCreateTime)
10946	}
10947
10948	if v.CopyTagsToSnapshot {
10949		ok := object.Key("CopyTagsToSnapshot")
10950		ok.Boolean(v.CopyTagsToSnapshot)
10951	}
10952
10953	if v.CrossAccountClone {
10954		ok := object.Key("CrossAccountClone")
10955		ok.Boolean(v.CrossAccountClone)
10956	}
10957
10958	if v.CustomEndpoints != nil {
10959		ok := object.Key("CustomEndpoints")
10960		if err := awsRestjson1_serializeDocumentStringList(v.CustomEndpoints, ok); err != nil {
10961			return err
10962		}
10963	}
10964
10965	if v.DatabaseName != nil {
10966		ok := object.Key("DatabaseName")
10967		ok.String(*v.DatabaseName)
10968	}
10969
10970	if v.DbClusterIdentifier != nil {
10971		ok := object.Key("DbClusterIdentifier")
10972		ok.String(*v.DbClusterIdentifier)
10973	}
10974
10975	if v.DbClusterMembers != nil {
10976		ok := object.Key("DbClusterMembers")
10977		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterMembers(v.DbClusterMembers, ok); err != nil {
10978			return err
10979		}
10980	}
10981
10982	if v.DbClusterOptionGroupMemberships != nil {
10983		ok := object.Key("DbClusterOptionGroupMemberships")
10984		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMemberships(v.DbClusterOptionGroupMemberships, ok); err != nil {
10985			return err
10986		}
10987	}
10988
10989	if v.DbClusterParameterGroup != nil {
10990		ok := object.Key("DbClusterParameterGroup")
10991		ok.String(*v.DbClusterParameterGroup)
10992	}
10993
10994	if v.DbClusterResourceId != nil {
10995		ok := object.Key("DbClusterResourceId")
10996		ok.String(*v.DbClusterResourceId)
10997	}
10998
10999	if v.DbSubnetGroup != nil {
11000		ok := object.Key("DbSubnetGroup")
11001		ok.String(*v.DbSubnetGroup)
11002	}
11003
11004	if v.DeletionProtection {
11005		ok := object.Key("DeletionProtection")
11006		ok.Boolean(v.DeletionProtection)
11007	}
11008
11009	if v.DomainMemberships != nil {
11010		ok := object.Key("DomainMemberships")
11011		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v.DomainMemberships, ok); err != nil {
11012			return err
11013		}
11014	}
11015
11016	if v.EnabledCloudWatchLogsExports != nil {
11017		ok := object.Key("EnabledCloudWatchLogsExports")
11018		if err := awsRestjson1_serializeDocumentStringList(v.EnabledCloudWatchLogsExports, ok); err != nil {
11019			return err
11020		}
11021	}
11022
11023	if v.Endpoint != nil {
11024		ok := object.Key("Endpoint")
11025		ok.String(*v.Endpoint)
11026	}
11027
11028	if v.Engine != nil {
11029		ok := object.Key("Engine")
11030		ok.String(*v.Engine)
11031	}
11032
11033	if v.EngineMode != nil {
11034		ok := object.Key("EngineMode")
11035		ok.String(*v.EngineMode)
11036	}
11037
11038	if v.EngineVersion != nil {
11039		ok := object.Key("EngineVersion")
11040		ok.String(*v.EngineVersion)
11041	}
11042
11043	if v.HostedZoneId != nil {
11044		ok := object.Key("HostedZoneId")
11045		ok.String(*v.HostedZoneId)
11046	}
11047
11048	if v.HttpEndpointEnabled {
11049		ok := object.Key("HttpEndpointEnabled")
11050		ok.Boolean(v.HttpEndpointEnabled)
11051	}
11052
11053	if v.IamDatabaseAuthenticationEnabled {
11054		ok := object.Key("IamDatabaseAuthenticationEnabled")
11055		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
11056	}
11057
11058	if v.KmsKeyId != nil {
11059		ok := object.Key("KmsKeyId")
11060		ok.String(*v.KmsKeyId)
11061	}
11062
11063	if v.MasterUsername != nil {
11064		ok := object.Key("MasterUsername")
11065		ok.String(*v.MasterUsername)
11066	}
11067
11068	if v.MultiAz {
11069		ok := object.Key("MultiAz")
11070		ok.Boolean(v.MultiAz)
11071	}
11072
11073	if v.Port != 0 {
11074		ok := object.Key("Port")
11075		ok.Integer(v.Port)
11076	}
11077
11078	if v.PreferredBackupWindow != nil {
11079		ok := object.Key("PreferredBackupWindow")
11080		ok.String(*v.PreferredBackupWindow)
11081	}
11082
11083	if v.PreferredMaintenanceWindow != nil {
11084		ok := object.Key("PreferredMaintenanceWindow")
11085		ok.String(*v.PreferredMaintenanceWindow)
11086	}
11087
11088	if v.ReaderEndpoint != nil {
11089		ok := object.Key("ReaderEndpoint")
11090		ok.String(*v.ReaderEndpoint)
11091	}
11092
11093	if v.ReadReplicaIdentifiers != nil {
11094		ok := object.Key("ReadReplicaIdentifiers")
11095		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaIdentifiers, ok); err != nil {
11096			return err
11097		}
11098	}
11099
11100	if v.Status != nil {
11101		ok := object.Key("Status")
11102		ok.String(*v.Status)
11103	}
11104
11105	if v.StorageEncrypted {
11106		ok := object.Key("StorageEncrypted")
11107		ok.Boolean(v.StorageEncrypted)
11108	}
11109
11110	if v.VpcSecurityGroups != nil {
11111		ok := object.Key("VpcSecurityGroups")
11112		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
11113			return err
11114		}
11115	}
11116
11117	return nil
11118}
11119
11120func awsRestjson1_serializeDocumentAwsRdsDbClusterMember(v *types.AwsRdsDbClusterMember, value smithyjson.Value) error {
11121	object := value.Object()
11122	defer object.Close()
11123
11124	if v.DbClusterParameterGroupStatus != nil {
11125		ok := object.Key("DbClusterParameterGroupStatus")
11126		ok.String(*v.DbClusterParameterGroupStatus)
11127	}
11128
11129	if v.DbInstanceIdentifier != nil {
11130		ok := object.Key("DbInstanceIdentifier")
11131		ok.String(*v.DbInstanceIdentifier)
11132	}
11133
11134	if v.IsClusterWriter {
11135		ok := object.Key("IsClusterWriter")
11136		ok.Boolean(v.IsClusterWriter)
11137	}
11138
11139	if v.PromotionTier != 0 {
11140		ok := object.Key("PromotionTier")
11141		ok.Integer(v.PromotionTier)
11142	}
11143
11144	return nil
11145}
11146
11147func awsRestjson1_serializeDocumentAwsRdsDbClusterMembers(v []types.AwsRdsDbClusterMember, value smithyjson.Value) error {
11148	array := value.Array()
11149	defer array.Close()
11150
11151	for i := range v {
11152		av := array.Value()
11153		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterMember(&v[i], av); err != nil {
11154			return err
11155		}
11156	}
11157	return nil
11158}
11159
11160func awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMembership(v *types.AwsRdsDbClusterOptionGroupMembership, value smithyjson.Value) error {
11161	object := value.Object()
11162	defer object.Close()
11163
11164	if v.DbClusterOptionGroupName != nil {
11165		ok := object.Key("DbClusterOptionGroupName")
11166		ok.String(*v.DbClusterOptionGroupName)
11167	}
11168
11169	if v.Status != nil {
11170		ok := object.Key("Status")
11171		ok.String(*v.Status)
11172	}
11173
11174	return nil
11175}
11176
11177func awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMemberships(v []types.AwsRdsDbClusterOptionGroupMembership, value smithyjson.Value) error {
11178	array := value.Array()
11179	defer array.Close()
11180
11181	for i := range v {
11182		av := array.Value()
11183		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterOptionGroupMembership(&v[i], av); err != nil {
11184			return err
11185		}
11186	}
11187	return nil
11188}
11189
11190func awsRestjson1_serializeDocumentAwsRdsDbClusterSnapshotDetails(v *types.AwsRdsDbClusterSnapshotDetails, value smithyjson.Value) error {
11191	object := value.Object()
11192	defer object.Close()
11193
11194	if v.AllocatedStorage != 0 {
11195		ok := object.Key("AllocatedStorage")
11196		ok.Integer(v.AllocatedStorage)
11197	}
11198
11199	if v.AvailabilityZones != nil {
11200		ok := object.Key("AvailabilityZones")
11201		if err := awsRestjson1_serializeDocumentStringList(v.AvailabilityZones, ok); err != nil {
11202			return err
11203		}
11204	}
11205
11206	if v.ClusterCreateTime != nil {
11207		ok := object.Key("ClusterCreateTime")
11208		ok.String(*v.ClusterCreateTime)
11209	}
11210
11211	if v.DbClusterIdentifier != nil {
11212		ok := object.Key("DbClusterIdentifier")
11213		ok.String(*v.DbClusterIdentifier)
11214	}
11215
11216	if v.DbClusterSnapshotIdentifier != nil {
11217		ok := object.Key("DbClusterSnapshotIdentifier")
11218		ok.String(*v.DbClusterSnapshotIdentifier)
11219	}
11220
11221	if v.Engine != nil {
11222		ok := object.Key("Engine")
11223		ok.String(*v.Engine)
11224	}
11225
11226	if v.EngineVersion != nil {
11227		ok := object.Key("EngineVersion")
11228		ok.String(*v.EngineVersion)
11229	}
11230
11231	if v.IamDatabaseAuthenticationEnabled {
11232		ok := object.Key("IamDatabaseAuthenticationEnabled")
11233		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
11234	}
11235
11236	if v.KmsKeyId != nil {
11237		ok := object.Key("KmsKeyId")
11238		ok.String(*v.KmsKeyId)
11239	}
11240
11241	if v.LicenseModel != nil {
11242		ok := object.Key("LicenseModel")
11243		ok.String(*v.LicenseModel)
11244	}
11245
11246	if v.MasterUsername != nil {
11247		ok := object.Key("MasterUsername")
11248		ok.String(*v.MasterUsername)
11249	}
11250
11251	if v.PercentProgress != 0 {
11252		ok := object.Key("PercentProgress")
11253		ok.Integer(v.PercentProgress)
11254	}
11255
11256	if v.Port != 0 {
11257		ok := object.Key("Port")
11258		ok.Integer(v.Port)
11259	}
11260
11261	if v.SnapshotCreateTime != nil {
11262		ok := object.Key("SnapshotCreateTime")
11263		ok.String(*v.SnapshotCreateTime)
11264	}
11265
11266	if v.SnapshotType != nil {
11267		ok := object.Key("SnapshotType")
11268		ok.String(*v.SnapshotType)
11269	}
11270
11271	if v.Status != nil {
11272		ok := object.Key("Status")
11273		ok.String(*v.Status)
11274	}
11275
11276	if v.StorageEncrypted {
11277		ok := object.Key("StorageEncrypted")
11278		ok.Boolean(v.StorageEncrypted)
11279	}
11280
11281	if v.VpcId != nil {
11282		ok := object.Key("VpcId")
11283		ok.String(*v.VpcId)
11284	}
11285
11286	return nil
11287}
11288
11289func awsRestjson1_serializeDocumentAwsRdsDbDomainMembership(v *types.AwsRdsDbDomainMembership, value smithyjson.Value) error {
11290	object := value.Object()
11291	defer object.Close()
11292
11293	if v.Domain != nil {
11294		ok := object.Key("Domain")
11295		ok.String(*v.Domain)
11296	}
11297
11298	if v.Fqdn != nil {
11299		ok := object.Key("Fqdn")
11300		ok.String(*v.Fqdn)
11301	}
11302
11303	if v.IamRoleName != nil {
11304		ok := object.Key("IamRoleName")
11305		ok.String(*v.IamRoleName)
11306	}
11307
11308	if v.Status != nil {
11309		ok := object.Key("Status")
11310		ok.String(*v.Status)
11311	}
11312
11313	return nil
11314}
11315
11316func awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v []types.AwsRdsDbDomainMembership, value smithyjson.Value) error {
11317	array := value.Array()
11318	defer array.Close()
11319
11320	for i := range v {
11321		av := array.Value()
11322		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMembership(&v[i], av); err != nil {
11323			return err
11324		}
11325	}
11326	return nil
11327}
11328
11329func awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRole(v *types.AwsRdsDbInstanceAssociatedRole, value smithyjson.Value) error {
11330	object := value.Object()
11331	defer object.Close()
11332
11333	if v.FeatureName != nil {
11334		ok := object.Key("FeatureName")
11335		ok.String(*v.FeatureName)
11336	}
11337
11338	if v.RoleArn != nil {
11339		ok := object.Key("RoleArn")
11340		ok.String(*v.RoleArn)
11341	}
11342
11343	if v.Status != nil {
11344		ok := object.Key("Status")
11345		ok.String(*v.Status)
11346	}
11347
11348	return nil
11349}
11350
11351func awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRoles(v []types.AwsRdsDbInstanceAssociatedRole, value smithyjson.Value) error {
11352	array := value.Array()
11353	defer array.Close()
11354
11355	for i := range v {
11356		av := array.Value()
11357		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRole(&v[i], av); err != nil {
11358			return err
11359		}
11360	}
11361	return nil
11362}
11363
11364func awsRestjson1_serializeDocumentAwsRdsDbInstanceDetails(v *types.AwsRdsDbInstanceDetails, value smithyjson.Value) error {
11365	object := value.Object()
11366	defer object.Close()
11367
11368	if v.AllocatedStorage != 0 {
11369		ok := object.Key("AllocatedStorage")
11370		ok.Integer(v.AllocatedStorage)
11371	}
11372
11373	if v.AssociatedRoles != nil {
11374		ok := object.Key("AssociatedRoles")
11375		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceAssociatedRoles(v.AssociatedRoles, ok); err != nil {
11376			return err
11377		}
11378	}
11379
11380	if v.AutoMinorVersionUpgrade {
11381		ok := object.Key("AutoMinorVersionUpgrade")
11382		ok.Boolean(v.AutoMinorVersionUpgrade)
11383	}
11384
11385	if v.AvailabilityZone != nil {
11386		ok := object.Key("AvailabilityZone")
11387		ok.String(*v.AvailabilityZone)
11388	}
11389
11390	if v.BackupRetentionPeriod != 0 {
11391		ok := object.Key("BackupRetentionPeriod")
11392		ok.Integer(v.BackupRetentionPeriod)
11393	}
11394
11395	if v.CACertificateIdentifier != nil {
11396		ok := object.Key("CACertificateIdentifier")
11397		ok.String(*v.CACertificateIdentifier)
11398	}
11399
11400	if v.CharacterSetName != nil {
11401		ok := object.Key("CharacterSetName")
11402		ok.String(*v.CharacterSetName)
11403	}
11404
11405	if v.CopyTagsToSnapshot {
11406		ok := object.Key("CopyTagsToSnapshot")
11407		ok.Boolean(v.CopyTagsToSnapshot)
11408	}
11409
11410	if v.DBClusterIdentifier != nil {
11411		ok := object.Key("DBClusterIdentifier")
11412		ok.String(*v.DBClusterIdentifier)
11413	}
11414
11415	if v.DBInstanceClass != nil {
11416		ok := object.Key("DBInstanceClass")
11417		ok.String(*v.DBInstanceClass)
11418	}
11419
11420	if v.DBInstanceIdentifier != nil {
11421		ok := object.Key("DBInstanceIdentifier")
11422		ok.String(*v.DBInstanceIdentifier)
11423	}
11424
11425	if v.DbInstancePort != 0 {
11426		ok := object.Key("DbInstancePort")
11427		ok.Integer(v.DbInstancePort)
11428	}
11429
11430	if v.DbInstanceStatus != nil {
11431		ok := object.Key("DbInstanceStatus")
11432		ok.String(*v.DbInstanceStatus)
11433	}
11434
11435	if v.DbiResourceId != nil {
11436		ok := object.Key("DbiResourceId")
11437		ok.String(*v.DbiResourceId)
11438	}
11439
11440	if v.DBName != nil {
11441		ok := object.Key("DBName")
11442		ok.String(*v.DBName)
11443	}
11444
11445	if v.DbParameterGroups != nil {
11446		ok := object.Key("DbParameterGroups")
11447		if err := awsRestjson1_serializeDocumentAwsRdsDbParameterGroups(v.DbParameterGroups, ok); err != nil {
11448			return err
11449		}
11450	}
11451
11452	if v.DbSecurityGroups != nil {
11453		ok := object.Key("DbSecurityGroups")
11454		if err := awsRestjson1_serializeDocumentStringList(v.DbSecurityGroups, ok); err != nil {
11455			return err
11456		}
11457	}
11458
11459	if v.DbSubnetGroup != nil {
11460		ok := object.Key("DbSubnetGroup")
11461		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroup(v.DbSubnetGroup, ok); err != nil {
11462			return err
11463		}
11464	}
11465
11466	if v.DeletionProtection {
11467		ok := object.Key("DeletionProtection")
11468		ok.Boolean(v.DeletionProtection)
11469	}
11470
11471	if v.DomainMemberships != nil {
11472		ok := object.Key("DomainMemberships")
11473		if err := awsRestjson1_serializeDocumentAwsRdsDbDomainMemberships(v.DomainMemberships, ok); err != nil {
11474			return err
11475		}
11476	}
11477
11478	if v.EnabledCloudWatchLogsExports != nil {
11479		ok := object.Key("EnabledCloudWatchLogsExports")
11480		if err := awsRestjson1_serializeDocumentStringList(v.EnabledCloudWatchLogsExports, ok); err != nil {
11481			return err
11482		}
11483	}
11484
11485	if v.Endpoint != nil {
11486		ok := object.Key("Endpoint")
11487		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v.Endpoint, ok); err != nil {
11488			return err
11489		}
11490	}
11491
11492	if v.Engine != nil {
11493		ok := object.Key("Engine")
11494		ok.String(*v.Engine)
11495	}
11496
11497	if v.EngineVersion != nil {
11498		ok := object.Key("EngineVersion")
11499		ok.String(*v.EngineVersion)
11500	}
11501
11502	if v.EnhancedMonitoringResourceArn != nil {
11503		ok := object.Key("EnhancedMonitoringResourceArn")
11504		ok.String(*v.EnhancedMonitoringResourceArn)
11505	}
11506
11507	if v.IAMDatabaseAuthenticationEnabled {
11508		ok := object.Key("IAMDatabaseAuthenticationEnabled")
11509		ok.Boolean(v.IAMDatabaseAuthenticationEnabled)
11510	}
11511
11512	if v.InstanceCreateTime != nil {
11513		ok := object.Key("InstanceCreateTime")
11514		ok.String(*v.InstanceCreateTime)
11515	}
11516
11517	if v.Iops != 0 {
11518		ok := object.Key("Iops")
11519		ok.Integer(v.Iops)
11520	}
11521
11522	if v.KmsKeyId != nil {
11523		ok := object.Key("KmsKeyId")
11524		ok.String(*v.KmsKeyId)
11525	}
11526
11527	if v.LatestRestorableTime != nil {
11528		ok := object.Key("LatestRestorableTime")
11529		ok.String(*v.LatestRestorableTime)
11530	}
11531
11532	if v.LicenseModel != nil {
11533		ok := object.Key("LicenseModel")
11534		ok.String(*v.LicenseModel)
11535	}
11536
11537	if v.ListenerEndpoint != nil {
11538		ok := object.Key("ListenerEndpoint")
11539		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v.ListenerEndpoint, ok); err != nil {
11540			return err
11541		}
11542	}
11543
11544	if v.MasterUsername != nil {
11545		ok := object.Key("MasterUsername")
11546		ok.String(*v.MasterUsername)
11547	}
11548
11549	if v.MaxAllocatedStorage != 0 {
11550		ok := object.Key("MaxAllocatedStorage")
11551		ok.Integer(v.MaxAllocatedStorage)
11552	}
11553
11554	if v.MonitoringInterval != 0 {
11555		ok := object.Key("MonitoringInterval")
11556		ok.Integer(v.MonitoringInterval)
11557	}
11558
11559	if v.MonitoringRoleArn != nil {
11560		ok := object.Key("MonitoringRoleArn")
11561		ok.String(*v.MonitoringRoleArn)
11562	}
11563
11564	if v.MultiAz {
11565		ok := object.Key("MultiAz")
11566		ok.Boolean(v.MultiAz)
11567	}
11568
11569	if v.OptionGroupMemberships != nil {
11570		ok := object.Key("OptionGroupMemberships")
11571		if err := awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMemberships(v.OptionGroupMemberships, ok); err != nil {
11572			return err
11573		}
11574	}
11575
11576	if v.PendingModifiedValues != nil {
11577		ok := object.Key("PendingModifiedValues")
11578		if err := awsRestjson1_serializeDocumentAwsRdsDbPendingModifiedValues(v.PendingModifiedValues, ok); err != nil {
11579			return err
11580		}
11581	}
11582
11583	if v.PerformanceInsightsEnabled {
11584		ok := object.Key("PerformanceInsightsEnabled")
11585		ok.Boolean(v.PerformanceInsightsEnabled)
11586	}
11587
11588	if v.PerformanceInsightsKmsKeyId != nil {
11589		ok := object.Key("PerformanceInsightsKmsKeyId")
11590		ok.String(*v.PerformanceInsightsKmsKeyId)
11591	}
11592
11593	if v.PerformanceInsightsRetentionPeriod != 0 {
11594		ok := object.Key("PerformanceInsightsRetentionPeriod")
11595		ok.Integer(v.PerformanceInsightsRetentionPeriod)
11596	}
11597
11598	if v.PreferredBackupWindow != nil {
11599		ok := object.Key("PreferredBackupWindow")
11600		ok.String(*v.PreferredBackupWindow)
11601	}
11602
11603	if v.PreferredMaintenanceWindow != nil {
11604		ok := object.Key("PreferredMaintenanceWindow")
11605		ok.String(*v.PreferredMaintenanceWindow)
11606	}
11607
11608	if v.ProcessorFeatures != nil {
11609		ok := object.Key("ProcessorFeatures")
11610		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
11611			return err
11612		}
11613	}
11614
11615	if v.PromotionTier != 0 {
11616		ok := object.Key("PromotionTier")
11617		ok.Integer(v.PromotionTier)
11618	}
11619
11620	if v.PubliclyAccessible {
11621		ok := object.Key("PubliclyAccessible")
11622		ok.Boolean(v.PubliclyAccessible)
11623	}
11624
11625	if v.ReadReplicaDBClusterIdentifiers != nil {
11626		ok := object.Key("ReadReplicaDBClusterIdentifiers")
11627		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaDBClusterIdentifiers, ok); err != nil {
11628			return err
11629		}
11630	}
11631
11632	if v.ReadReplicaDBInstanceIdentifiers != nil {
11633		ok := object.Key("ReadReplicaDBInstanceIdentifiers")
11634		if err := awsRestjson1_serializeDocumentStringList(v.ReadReplicaDBInstanceIdentifiers, ok); err != nil {
11635			return err
11636		}
11637	}
11638
11639	if v.ReadReplicaSourceDBInstanceIdentifier != nil {
11640		ok := object.Key("ReadReplicaSourceDBInstanceIdentifier")
11641		ok.String(*v.ReadReplicaSourceDBInstanceIdentifier)
11642	}
11643
11644	if v.SecondaryAvailabilityZone != nil {
11645		ok := object.Key("SecondaryAvailabilityZone")
11646		ok.String(*v.SecondaryAvailabilityZone)
11647	}
11648
11649	if v.StatusInfos != nil {
11650		ok := object.Key("StatusInfos")
11651		if err := awsRestjson1_serializeDocumentAwsRdsDbStatusInfos(v.StatusInfos, ok); err != nil {
11652			return err
11653		}
11654	}
11655
11656	if v.StorageEncrypted {
11657		ok := object.Key("StorageEncrypted")
11658		ok.Boolean(v.StorageEncrypted)
11659	}
11660
11661	if v.StorageType != nil {
11662		ok := object.Key("StorageType")
11663		ok.String(*v.StorageType)
11664	}
11665
11666	if v.TdeCredentialArn != nil {
11667		ok := object.Key("TdeCredentialArn")
11668		ok.String(*v.TdeCredentialArn)
11669	}
11670
11671	if v.Timezone != nil {
11672		ok := object.Key("Timezone")
11673		ok.String(*v.Timezone)
11674	}
11675
11676	if v.VpcSecurityGroups != nil {
11677		ok := object.Key("VpcSecurityGroups")
11678		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
11679			return err
11680		}
11681	}
11682
11683	return nil
11684}
11685
11686func awsRestjson1_serializeDocumentAwsRdsDbInstanceEndpoint(v *types.AwsRdsDbInstanceEndpoint, value smithyjson.Value) error {
11687	object := value.Object()
11688	defer object.Close()
11689
11690	if v.Address != nil {
11691		ok := object.Key("Address")
11692		ok.String(*v.Address)
11693	}
11694
11695	if v.HostedZoneId != nil {
11696		ok := object.Key("HostedZoneId")
11697		ok.String(*v.HostedZoneId)
11698	}
11699
11700	if v.Port != 0 {
11701		ok := object.Key("Port")
11702		ok.Integer(v.Port)
11703	}
11704
11705	return nil
11706}
11707
11708func awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroup(v *types.AwsRdsDbInstanceVpcSecurityGroup, value smithyjson.Value) error {
11709	object := value.Object()
11710	defer object.Close()
11711
11712	if v.Status != nil {
11713		ok := object.Key("Status")
11714		ok.String(*v.Status)
11715	}
11716
11717	if v.VpcSecurityGroupId != nil {
11718		ok := object.Key("VpcSecurityGroupId")
11719		ok.String(*v.VpcSecurityGroupId)
11720	}
11721
11722	return nil
11723}
11724
11725func awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroups(v []types.AwsRdsDbInstanceVpcSecurityGroup, value smithyjson.Value) error {
11726	array := value.Array()
11727	defer array.Close()
11728
11729	for i := range v {
11730		av := array.Value()
11731		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceVpcSecurityGroup(&v[i], av); err != nil {
11732			return err
11733		}
11734	}
11735	return nil
11736}
11737
11738func awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMembership(v *types.AwsRdsDbOptionGroupMembership, value smithyjson.Value) error {
11739	object := value.Object()
11740	defer object.Close()
11741
11742	if v.OptionGroupName != nil {
11743		ok := object.Key("OptionGroupName")
11744		ok.String(*v.OptionGroupName)
11745	}
11746
11747	if v.Status != nil {
11748		ok := object.Key("Status")
11749		ok.String(*v.Status)
11750	}
11751
11752	return nil
11753}
11754
11755func awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMemberships(v []types.AwsRdsDbOptionGroupMembership, value smithyjson.Value) error {
11756	array := value.Array()
11757	defer array.Close()
11758
11759	for i := range v {
11760		av := array.Value()
11761		if err := awsRestjson1_serializeDocumentAwsRdsDbOptionGroupMembership(&v[i], av); err != nil {
11762			return err
11763		}
11764	}
11765	return nil
11766}
11767
11768func awsRestjson1_serializeDocumentAwsRdsDbParameterGroup(v *types.AwsRdsDbParameterGroup, value smithyjson.Value) error {
11769	object := value.Object()
11770	defer object.Close()
11771
11772	if v.DbParameterGroupName != nil {
11773		ok := object.Key("DbParameterGroupName")
11774		ok.String(*v.DbParameterGroupName)
11775	}
11776
11777	if v.ParameterApplyStatus != nil {
11778		ok := object.Key("ParameterApplyStatus")
11779		ok.String(*v.ParameterApplyStatus)
11780	}
11781
11782	return nil
11783}
11784
11785func awsRestjson1_serializeDocumentAwsRdsDbParameterGroups(v []types.AwsRdsDbParameterGroup, value smithyjson.Value) error {
11786	array := value.Array()
11787	defer array.Close()
11788
11789	for i := range v {
11790		av := array.Value()
11791		if err := awsRestjson1_serializeDocumentAwsRdsDbParameterGroup(&v[i], av); err != nil {
11792			return err
11793		}
11794	}
11795	return nil
11796}
11797
11798func awsRestjson1_serializeDocumentAwsRdsDbPendingModifiedValues(v *types.AwsRdsDbPendingModifiedValues, value smithyjson.Value) error {
11799	object := value.Object()
11800	defer object.Close()
11801
11802	if v.AllocatedStorage != 0 {
11803		ok := object.Key("AllocatedStorage")
11804		ok.Integer(v.AllocatedStorage)
11805	}
11806
11807	if v.BackupRetentionPeriod != 0 {
11808		ok := object.Key("BackupRetentionPeriod")
11809		ok.Integer(v.BackupRetentionPeriod)
11810	}
11811
11812	if v.CaCertificateIdentifier != nil {
11813		ok := object.Key("CaCertificateIdentifier")
11814		ok.String(*v.CaCertificateIdentifier)
11815	}
11816
11817	if v.DbInstanceClass != nil {
11818		ok := object.Key("DbInstanceClass")
11819		ok.String(*v.DbInstanceClass)
11820	}
11821
11822	if v.DbInstanceIdentifier != nil {
11823		ok := object.Key("DbInstanceIdentifier")
11824		ok.String(*v.DbInstanceIdentifier)
11825	}
11826
11827	if v.DbSubnetGroupName != nil {
11828		ok := object.Key("DbSubnetGroupName")
11829		ok.String(*v.DbSubnetGroupName)
11830	}
11831
11832	if v.EngineVersion != nil {
11833		ok := object.Key("EngineVersion")
11834		ok.String(*v.EngineVersion)
11835	}
11836
11837	if v.Iops != 0 {
11838		ok := object.Key("Iops")
11839		ok.Integer(v.Iops)
11840	}
11841
11842	if v.LicenseModel != nil {
11843		ok := object.Key("LicenseModel")
11844		ok.String(*v.LicenseModel)
11845	}
11846
11847	if v.MasterUserPassword != nil {
11848		ok := object.Key("MasterUserPassword")
11849		ok.String(*v.MasterUserPassword)
11850	}
11851
11852	if v.MultiAZ {
11853		ok := object.Key("MultiAZ")
11854		ok.Boolean(v.MultiAZ)
11855	}
11856
11857	if v.PendingCloudWatchLogsExports != nil {
11858		ok := object.Key("PendingCloudWatchLogsExports")
11859		if err := awsRestjson1_serializeDocumentAwsRdsPendingCloudWatchLogsExports(v.PendingCloudWatchLogsExports, ok); err != nil {
11860			return err
11861		}
11862	}
11863
11864	if v.Port != 0 {
11865		ok := object.Key("Port")
11866		ok.Integer(v.Port)
11867	}
11868
11869	if v.ProcessorFeatures != nil {
11870		ok := object.Key("ProcessorFeatures")
11871		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
11872			return err
11873		}
11874	}
11875
11876	if v.StorageType != nil {
11877		ok := object.Key("StorageType")
11878		ok.String(*v.StorageType)
11879	}
11880
11881	return nil
11882}
11883
11884func awsRestjson1_serializeDocumentAwsRdsDbProcessorFeature(v *types.AwsRdsDbProcessorFeature, value smithyjson.Value) error {
11885	object := value.Object()
11886	defer object.Close()
11887
11888	if v.Name != nil {
11889		ok := object.Key("Name")
11890		ok.String(*v.Name)
11891	}
11892
11893	if v.Value != nil {
11894		ok := object.Key("Value")
11895		ok.String(*v.Value)
11896	}
11897
11898	return nil
11899}
11900
11901func awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v []types.AwsRdsDbProcessorFeature, value smithyjson.Value) error {
11902	array := value.Array()
11903	defer array.Close()
11904
11905	for i := range v {
11906		av := array.Value()
11907		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeature(&v[i], av); err != nil {
11908			return err
11909		}
11910	}
11911	return nil
11912}
11913
11914func awsRestjson1_serializeDocumentAwsRdsDbSnapshotDetails(v *types.AwsRdsDbSnapshotDetails, value smithyjson.Value) error {
11915	object := value.Object()
11916	defer object.Close()
11917
11918	if v.AllocatedStorage != 0 {
11919		ok := object.Key("AllocatedStorage")
11920		ok.Integer(v.AllocatedStorage)
11921	}
11922
11923	if v.AvailabilityZone != nil {
11924		ok := object.Key("AvailabilityZone")
11925		ok.String(*v.AvailabilityZone)
11926	}
11927
11928	if v.DbInstanceIdentifier != nil {
11929		ok := object.Key("DbInstanceIdentifier")
11930		ok.String(*v.DbInstanceIdentifier)
11931	}
11932
11933	if v.DbiResourceId != nil {
11934		ok := object.Key("DbiResourceId")
11935		ok.String(*v.DbiResourceId)
11936	}
11937
11938	if v.DbSnapshotIdentifier != nil {
11939		ok := object.Key("DbSnapshotIdentifier")
11940		ok.String(*v.DbSnapshotIdentifier)
11941	}
11942
11943	if v.Encrypted {
11944		ok := object.Key("Encrypted")
11945		ok.Boolean(v.Encrypted)
11946	}
11947
11948	if v.Engine != nil {
11949		ok := object.Key("Engine")
11950		ok.String(*v.Engine)
11951	}
11952
11953	if v.EngineVersion != nil {
11954		ok := object.Key("EngineVersion")
11955		ok.String(*v.EngineVersion)
11956	}
11957
11958	if v.IamDatabaseAuthenticationEnabled {
11959		ok := object.Key("IamDatabaseAuthenticationEnabled")
11960		ok.Boolean(v.IamDatabaseAuthenticationEnabled)
11961	}
11962
11963	if v.InstanceCreateTime != nil {
11964		ok := object.Key("InstanceCreateTime")
11965		ok.String(*v.InstanceCreateTime)
11966	}
11967
11968	if v.Iops != 0 {
11969		ok := object.Key("Iops")
11970		ok.Integer(v.Iops)
11971	}
11972
11973	if v.KmsKeyId != nil {
11974		ok := object.Key("KmsKeyId")
11975		ok.String(*v.KmsKeyId)
11976	}
11977
11978	if v.LicenseModel != nil {
11979		ok := object.Key("LicenseModel")
11980		ok.String(*v.LicenseModel)
11981	}
11982
11983	if v.MasterUsername != nil {
11984		ok := object.Key("MasterUsername")
11985		ok.String(*v.MasterUsername)
11986	}
11987
11988	if v.OptionGroupName != nil {
11989		ok := object.Key("OptionGroupName")
11990		ok.String(*v.OptionGroupName)
11991	}
11992
11993	if v.PercentProgress != 0 {
11994		ok := object.Key("PercentProgress")
11995		ok.Integer(v.PercentProgress)
11996	}
11997
11998	if v.Port != 0 {
11999		ok := object.Key("Port")
12000		ok.Integer(v.Port)
12001	}
12002
12003	if v.ProcessorFeatures != nil {
12004		ok := object.Key("ProcessorFeatures")
12005		if err := awsRestjson1_serializeDocumentAwsRdsDbProcessorFeatures(v.ProcessorFeatures, ok); err != nil {
12006			return err
12007		}
12008	}
12009
12010	if v.SnapshotCreateTime != nil {
12011		ok := object.Key("SnapshotCreateTime")
12012		ok.String(*v.SnapshotCreateTime)
12013	}
12014
12015	if v.SnapshotType != nil {
12016		ok := object.Key("SnapshotType")
12017		ok.String(*v.SnapshotType)
12018	}
12019
12020	if v.SourceDbSnapshotIdentifier != nil {
12021		ok := object.Key("SourceDbSnapshotIdentifier")
12022		ok.String(*v.SourceDbSnapshotIdentifier)
12023	}
12024
12025	if v.SourceRegion != nil {
12026		ok := object.Key("SourceRegion")
12027		ok.String(*v.SourceRegion)
12028	}
12029
12030	if v.Status != nil {
12031		ok := object.Key("Status")
12032		ok.String(*v.Status)
12033	}
12034
12035	if v.StorageType != nil {
12036		ok := object.Key("StorageType")
12037		ok.String(*v.StorageType)
12038	}
12039
12040	if v.TdeCredentialArn != nil {
12041		ok := object.Key("TdeCredentialArn")
12042		ok.String(*v.TdeCredentialArn)
12043	}
12044
12045	if v.Timezone != nil {
12046		ok := object.Key("Timezone")
12047		ok.String(*v.Timezone)
12048	}
12049
12050	if v.VpcId != nil {
12051		ok := object.Key("VpcId")
12052		ok.String(*v.VpcId)
12053	}
12054
12055	return nil
12056}
12057
12058func awsRestjson1_serializeDocumentAwsRdsDbStatusInfo(v *types.AwsRdsDbStatusInfo, value smithyjson.Value) error {
12059	object := value.Object()
12060	defer object.Close()
12061
12062	if v.Message != nil {
12063		ok := object.Key("Message")
12064		ok.String(*v.Message)
12065	}
12066
12067	if v.Normal {
12068		ok := object.Key("Normal")
12069		ok.Boolean(v.Normal)
12070	}
12071
12072	if v.Status != nil {
12073		ok := object.Key("Status")
12074		ok.String(*v.Status)
12075	}
12076
12077	if v.StatusType != nil {
12078		ok := object.Key("StatusType")
12079		ok.String(*v.StatusType)
12080	}
12081
12082	return nil
12083}
12084
12085func awsRestjson1_serializeDocumentAwsRdsDbStatusInfos(v []types.AwsRdsDbStatusInfo, value smithyjson.Value) error {
12086	array := value.Array()
12087	defer array.Close()
12088
12089	for i := range v {
12090		av := array.Value()
12091		if err := awsRestjson1_serializeDocumentAwsRdsDbStatusInfo(&v[i], av); err != nil {
12092			return err
12093		}
12094	}
12095	return nil
12096}
12097
12098func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroup(v *types.AwsRdsDbSubnetGroup, value smithyjson.Value) error {
12099	object := value.Object()
12100	defer object.Close()
12101
12102	if v.DbSubnetGroupArn != nil {
12103		ok := object.Key("DbSubnetGroupArn")
12104		ok.String(*v.DbSubnetGroupArn)
12105	}
12106
12107	if v.DbSubnetGroupDescription != nil {
12108		ok := object.Key("DbSubnetGroupDescription")
12109		ok.String(*v.DbSubnetGroupDescription)
12110	}
12111
12112	if v.DbSubnetGroupName != nil {
12113		ok := object.Key("DbSubnetGroupName")
12114		ok.String(*v.DbSubnetGroupName)
12115	}
12116
12117	if v.SubnetGroupStatus != nil {
12118		ok := object.Key("SubnetGroupStatus")
12119		ok.String(*v.SubnetGroupStatus)
12120	}
12121
12122	if v.Subnets != nil {
12123		ok := object.Key("Subnets")
12124		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnets(v.Subnets, ok); err != nil {
12125			return err
12126		}
12127	}
12128
12129	if v.VpcId != nil {
12130		ok := object.Key("VpcId")
12131		ok.String(*v.VpcId)
12132	}
12133
12134	return nil
12135}
12136
12137func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnet(v *types.AwsRdsDbSubnetGroupSubnet, value smithyjson.Value) error {
12138	object := value.Object()
12139	defer object.Close()
12140
12141	if v.SubnetAvailabilityZone != nil {
12142		ok := object.Key("SubnetAvailabilityZone")
12143		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v.SubnetAvailabilityZone, ok); err != nil {
12144			return err
12145		}
12146	}
12147
12148	if v.SubnetIdentifier != nil {
12149		ok := object.Key("SubnetIdentifier")
12150		ok.String(*v.SubnetIdentifier)
12151	}
12152
12153	if v.SubnetStatus != nil {
12154		ok := object.Key("SubnetStatus")
12155		ok.String(*v.SubnetStatus)
12156	}
12157
12158	return nil
12159}
12160
12161func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnetAvailabilityZone(v *types.AwsRdsDbSubnetGroupSubnetAvailabilityZone, value smithyjson.Value) error {
12162	object := value.Object()
12163	defer object.Close()
12164
12165	if v.Name != nil {
12166		ok := object.Key("Name")
12167		ok.String(*v.Name)
12168	}
12169
12170	return nil
12171}
12172
12173func awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnets(v []types.AwsRdsDbSubnetGroupSubnet, value smithyjson.Value) error {
12174	array := value.Array()
12175	defer array.Close()
12176
12177	for i := range v {
12178		av := array.Value()
12179		if err := awsRestjson1_serializeDocumentAwsRdsDbSubnetGroupSubnet(&v[i], av); err != nil {
12180			return err
12181		}
12182	}
12183	return nil
12184}
12185
12186func awsRestjson1_serializeDocumentAwsRdsEventSubscriptionDetails(v *types.AwsRdsEventSubscriptionDetails, value smithyjson.Value) error {
12187	object := value.Object()
12188	defer object.Close()
12189
12190	if v.CustomerAwsId != nil {
12191		ok := object.Key("CustomerAwsId")
12192		ok.String(*v.CustomerAwsId)
12193	}
12194
12195	if v.CustSubscriptionId != nil {
12196		ok := object.Key("CustSubscriptionId")
12197		ok.String(*v.CustSubscriptionId)
12198	}
12199
12200	if v.Enabled {
12201		ok := object.Key("Enabled")
12202		ok.Boolean(v.Enabled)
12203	}
12204
12205	if v.EventCategoriesList != nil {
12206		ok := object.Key("EventCategoriesList")
12207		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.EventCategoriesList, ok); err != nil {
12208			return err
12209		}
12210	}
12211
12212	if v.EventSubscriptionArn != nil {
12213		ok := object.Key("EventSubscriptionArn")
12214		ok.String(*v.EventSubscriptionArn)
12215	}
12216
12217	if v.SnsTopicArn != nil {
12218		ok := object.Key("SnsTopicArn")
12219		ok.String(*v.SnsTopicArn)
12220	}
12221
12222	if v.SourceIdsList != nil {
12223		ok := object.Key("SourceIdsList")
12224		if err := awsRestjson1_serializeDocumentNonEmptyStringList(v.SourceIdsList, ok); err != nil {
12225			return err
12226		}
12227	}
12228
12229	if v.SourceType != nil {
12230		ok := object.Key("SourceType")
12231		ok.String(*v.SourceType)
12232	}
12233
12234	if v.Status != nil {
12235		ok := object.Key("Status")
12236		ok.String(*v.Status)
12237	}
12238
12239	if v.SubscriptionCreationTime != nil {
12240		ok := object.Key("SubscriptionCreationTime")
12241		ok.String(*v.SubscriptionCreationTime)
12242	}
12243
12244	return nil
12245}
12246
12247func awsRestjson1_serializeDocumentAwsRdsPendingCloudWatchLogsExports(v *types.AwsRdsPendingCloudWatchLogsExports, value smithyjson.Value) error {
12248	object := value.Object()
12249	defer object.Close()
12250
12251	if v.LogTypesToDisable != nil {
12252		ok := object.Key("LogTypesToDisable")
12253		if err := awsRestjson1_serializeDocumentStringList(v.LogTypesToDisable, ok); err != nil {
12254			return err
12255		}
12256	}
12257
12258	if v.LogTypesToEnable != nil {
12259		ok := object.Key("LogTypesToEnable")
12260		if err := awsRestjson1_serializeDocumentStringList(v.LogTypesToEnable, ok); err != nil {
12261			return err
12262		}
12263	}
12264
12265	return nil
12266}
12267
12268func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNode(v *types.AwsRedshiftClusterClusterNode, value smithyjson.Value) error {
12269	object := value.Object()
12270	defer object.Close()
12271
12272	if v.NodeRole != nil {
12273		ok := object.Key("NodeRole")
12274		ok.String(*v.NodeRole)
12275	}
12276
12277	if v.PrivateIpAddress != nil {
12278		ok := object.Key("PrivateIpAddress")
12279		ok.String(*v.PrivateIpAddress)
12280	}
12281
12282	if v.PublicIpAddress != nil {
12283		ok := object.Key("PublicIpAddress")
12284		ok.String(*v.PublicIpAddress)
12285	}
12286
12287	return nil
12288}
12289
12290func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNodes(v []types.AwsRedshiftClusterClusterNode, value smithyjson.Value) error {
12291	array := value.Array()
12292	defer array.Close()
12293
12294	for i := range v {
12295		av := array.Value()
12296		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNode(&v[i], av); err != nil {
12297			return err
12298		}
12299	}
12300	return nil
12301}
12302
12303func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroup(v *types.AwsRedshiftClusterClusterParameterGroup, value smithyjson.Value) error {
12304	object := value.Object()
12305	defer object.Close()
12306
12307	if v.ClusterParameterStatusList != nil {
12308		ok := object.Key("ClusterParameterStatusList")
12309		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatusList(v.ClusterParameterStatusList, ok); err != nil {
12310			return err
12311		}
12312	}
12313
12314	if v.ParameterApplyStatus != nil {
12315		ok := object.Key("ParameterApplyStatus")
12316		ok.String(*v.ParameterApplyStatus)
12317	}
12318
12319	if v.ParameterGroupName != nil {
12320		ok := object.Key("ParameterGroupName")
12321		ok.String(*v.ParameterGroupName)
12322	}
12323
12324	return nil
12325}
12326
12327func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroups(v []types.AwsRedshiftClusterClusterParameterGroup, value smithyjson.Value) error {
12328	array := value.Array()
12329	defer array.Close()
12330
12331	for i := range v {
12332		av := array.Value()
12333		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroup(&v[i], av); err != nil {
12334			return err
12335		}
12336	}
12337	return nil
12338}
12339
12340func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatus(v *types.AwsRedshiftClusterClusterParameterStatus, value smithyjson.Value) error {
12341	object := value.Object()
12342	defer object.Close()
12343
12344	if v.ParameterApplyErrorDescription != nil {
12345		ok := object.Key("ParameterApplyErrorDescription")
12346		ok.String(*v.ParameterApplyErrorDescription)
12347	}
12348
12349	if v.ParameterApplyStatus != nil {
12350		ok := object.Key("ParameterApplyStatus")
12351		ok.String(*v.ParameterApplyStatus)
12352	}
12353
12354	if v.ParameterName != nil {
12355		ok := object.Key("ParameterName")
12356		ok.String(*v.ParameterName)
12357	}
12358
12359	return nil
12360}
12361
12362func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatusList(v []types.AwsRedshiftClusterClusterParameterStatus, value smithyjson.Value) error {
12363	array := value.Array()
12364	defer array.Close()
12365
12366	for i := range v {
12367		av := array.Value()
12368		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterStatus(&v[i], av); err != nil {
12369			return err
12370		}
12371	}
12372	return nil
12373}
12374
12375func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroup(v *types.AwsRedshiftClusterClusterSecurityGroup, value smithyjson.Value) error {
12376	object := value.Object()
12377	defer object.Close()
12378
12379	if v.ClusterSecurityGroupName != nil {
12380		ok := object.Key("ClusterSecurityGroupName")
12381		ok.String(*v.ClusterSecurityGroupName)
12382	}
12383
12384	if v.Status != nil {
12385		ok := object.Key("Status")
12386		ok.String(*v.Status)
12387	}
12388
12389	return nil
12390}
12391
12392func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroups(v []types.AwsRedshiftClusterClusterSecurityGroup, value smithyjson.Value) error {
12393	array := value.Array()
12394	defer array.Close()
12395
12396	for i := range v {
12397		av := array.Value()
12398		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroup(&v[i], av); err != nil {
12399			return err
12400		}
12401	}
12402	return nil
12403}
12404
12405func awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v *types.AwsRedshiftClusterClusterSnapshotCopyStatus, value smithyjson.Value) error {
12406	object := value.Object()
12407	defer object.Close()
12408
12409	if v.DestinationRegion != nil {
12410		ok := object.Key("DestinationRegion")
12411		ok.String(*v.DestinationRegion)
12412	}
12413
12414	if v.ManualSnapshotRetentionPeriod != 0 {
12415		ok := object.Key("ManualSnapshotRetentionPeriod")
12416		ok.Integer(v.ManualSnapshotRetentionPeriod)
12417	}
12418
12419	if v.RetentionPeriod != 0 {
12420		ok := object.Key("RetentionPeriod")
12421		ok.Integer(v.RetentionPeriod)
12422	}
12423
12424	if v.SnapshotCopyGrantName != nil {
12425		ok := object.Key("SnapshotCopyGrantName")
12426		ok.String(*v.SnapshotCopyGrantName)
12427	}
12428
12429	return nil
12430}
12431
12432func awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(v *types.AwsRedshiftClusterDeferredMaintenanceWindow, value smithyjson.Value) error {
12433	object := value.Object()
12434	defer object.Close()
12435
12436	if v.DeferMaintenanceEndTime != nil {
12437		ok := object.Key("DeferMaintenanceEndTime")
12438		ok.String(*v.DeferMaintenanceEndTime)
12439	}
12440
12441	if v.DeferMaintenanceIdentifier != nil {
12442		ok := object.Key("DeferMaintenanceIdentifier")
12443		ok.String(*v.DeferMaintenanceIdentifier)
12444	}
12445
12446	if v.DeferMaintenanceStartTime != nil {
12447		ok := object.Key("DeferMaintenanceStartTime")
12448		ok.String(*v.DeferMaintenanceStartTime)
12449	}
12450
12451	return nil
12452}
12453
12454func awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v []types.AwsRedshiftClusterDeferredMaintenanceWindow, value smithyjson.Value) error {
12455	array := value.Array()
12456	defer array.Close()
12457
12458	for i := range v {
12459		av := array.Value()
12460		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindow(&v[i], av); err != nil {
12461			return err
12462		}
12463	}
12464	return nil
12465}
12466
12467func awsRestjson1_serializeDocumentAwsRedshiftClusterDetails(v *types.AwsRedshiftClusterDetails, value smithyjson.Value) error {
12468	object := value.Object()
12469	defer object.Close()
12470
12471	if v.AllowVersionUpgrade {
12472		ok := object.Key("AllowVersionUpgrade")
12473		ok.Boolean(v.AllowVersionUpgrade)
12474	}
12475
12476	if v.AutomatedSnapshotRetentionPeriod != 0 {
12477		ok := object.Key("AutomatedSnapshotRetentionPeriod")
12478		ok.Integer(v.AutomatedSnapshotRetentionPeriod)
12479	}
12480
12481	if v.AvailabilityZone != nil {
12482		ok := object.Key("AvailabilityZone")
12483		ok.String(*v.AvailabilityZone)
12484	}
12485
12486	if v.ClusterAvailabilityStatus != nil {
12487		ok := object.Key("ClusterAvailabilityStatus")
12488		ok.String(*v.ClusterAvailabilityStatus)
12489	}
12490
12491	if v.ClusterCreateTime != nil {
12492		ok := object.Key("ClusterCreateTime")
12493		ok.String(*v.ClusterCreateTime)
12494	}
12495
12496	if v.ClusterIdentifier != nil {
12497		ok := object.Key("ClusterIdentifier")
12498		ok.String(*v.ClusterIdentifier)
12499	}
12500
12501	if v.ClusterNodes != nil {
12502		ok := object.Key("ClusterNodes")
12503		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterNodes(v.ClusterNodes, ok); err != nil {
12504			return err
12505		}
12506	}
12507
12508	if v.ClusterParameterGroups != nil {
12509		ok := object.Key("ClusterParameterGroups")
12510		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterParameterGroups(v.ClusterParameterGroups, ok); err != nil {
12511			return err
12512		}
12513	}
12514
12515	if v.ClusterPublicKey != nil {
12516		ok := object.Key("ClusterPublicKey")
12517		ok.String(*v.ClusterPublicKey)
12518	}
12519
12520	if v.ClusterRevisionNumber != nil {
12521		ok := object.Key("ClusterRevisionNumber")
12522		ok.String(*v.ClusterRevisionNumber)
12523	}
12524
12525	if v.ClusterSecurityGroups != nil {
12526		ok := object.Key("ClusterSecurityGroups")
12527		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSecurityGroups(v.ClusterSecurityGroups, ok); err != nil {
12528			return err
12529		}
12530	}
12531
12532	if v.ClusterSnapshotCopyStatus != nil {
12533		ok := object.Key("ClusterSnapshotCopyStatus")
12534		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterClusterSnapshotCopyStatus(v.ClusterSnapshotCopyStatus, ok); err != nil {
12535			return err
12536		}
12537	}
12538
12539	if v.ClusterStatus != nil {
12540		ok := object.Key("ClusterStatus")
12541		ok.String(*v.ClusterStatus)
12542	}
12543
12544	if v.ClusterSubnetGroupName != nil {
12545		ok := object.Key("ClusterSubnetGroupName")
12546		ok.String(*v.ClusterSubnetGroupName)
12547	}
12548
12549	if v.ClusterVersion != nil {
12550		ok := object.Key("ClusterVersion")
12551		ok.String(*v.ClusterVersion)
12552	}
12553
12554	if v.DBName != nil {
12555		ok := object.Key("DBName")
12556		ok.String(*v.DBName)
12557	}
12558
12559	if v.DeferredMaintenanceWindows != nil {
12560		ok := object.Key("DeferredMaintenanceWindows")
12561		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDeferredMaintenanceWindows(v.DeferredMaintenanceWindows, ok); err != nil {
12562			return err
12563		}
12564	}
12565
12566	if v.ElasticIpStatus != nil {
12567		ok := object.Key("ElasticIpStatus")
12568		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterElasticIpStatus(v.ElasticIpStatus, ok); err != nil {
12569			return err
12570		}
12571	}
12572
12573	if v.ElasticResizeNumberOfNodeOptions != nil {
12574		ok := object.Key("ElasticResizeNumberOfNodeOptions")
12575		ok.String(*v.ElasticResizeNumberOfNodeOptions)
12576	}
12577
12578	if v.Encrypted {
12579		ok := object.Key("Encrypted")
12580		ok.Boolean(v.Encrypted)
12581	}
12582
12583	if v.Endpoint != nil {
12584		ok := object.Key("Endpoint")
12585		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterEndpoint(v.Endpoint, ok); err != nil {
12586			return err
12587		}
12588	}
12589
12590	if v.EnhancedVpcRouting {
12591		ok := object.Key("EnhancedVpcRouting")
12592		ok.Boolean(v.EnhancedVpcRouting)
12593	}
12594
12595	if v.ExpectedNextSnapshotScheduleTime != nil {
12596		ok := object.Key("ExpectedNextSnapshotScheduleTime")
12597		ok.String(*v.ExpectedNextSnapshotScheduleTime)
12598	}
12599
12600	if v.ExpectedNextSnapshotScheduleTimeStatus != nil {
12601		ok := object.Key("ExpectedNextSnapshotScheduleTimeStatus")
12602		ok.String(*v.ExpectedNextSnapshotScheduleTimeStatus)
12603	}
12604
12605	if v.HsmStatus != nil {
12606		ok := object.Key("HsmStatus")
12607		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterHsmStatus(v.HsmStatus, ok); err != nil {
12608			return err
12609		}
12610	}
12611
12612	if v.IamRoles != nil {
12613		ok := object.Key("IamRoles")
12614		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterIamRoles(v.IamRoles, ok); err != nil {
12615			return err
12616		}
12617	}
12618
12619	if v.KmsKeyId != nil {
12620		ok := object.Key("KmsKeyId")
12621		ok.String(*v.KmsKeyId)
12622	}
12623
12624	if v.MaintenanceTrackName != nil {
12625		ok := object.Key("MaintenanceTrackName")
12626		ok.String(*v.MaintenanceTrackName)
12627	}
12628
12629	if v.ManualSnapshotRetentionPeriod != 0 {
12630		ok := object.Key("ManualSnapshotRetentionPeriod")
12631		ok.Integer(v.ManualSnapshotRetentionPeriod)
12632	}
12633
12634	if v.MasterUsername != nil {
12635		ok := object.Key("MasterUsername")
12636		ok.String(*v.MasterUsername)
12637	}
12638
12639	if v.NextMaintenanceWindowStartTime != nil {
12640		ok := object.Key("NextMaintenanceWindowStartTime")
12641		ok.String(*v.NextMaintenanceWindowStartTime)
12642	}
12643
12644	if v.NodeType != nil {
12645		ok := object.Key("NodeType")
12646		ok.String(*v.NodeType)
12647	}
12648
12649	if v.NumberOfNodes != 0 {
12650		ok := object.Key("NumberOfNodes")
12651		ok.Integer(v.NumberOfNodes)
12652	}
12653
12654	if v.PendingActions != nil {
12655		ok := object.Key("PendingActions")
12656		if err := awsRestjson1_serializeDocumentStringList(v.PendingActions, ok); err != nil {
12657			return err
12658		}
12659	}
12660
12661	if v.PendingModifiedValues != nil {
12662		ok := object.Key("PendingModifiedValues")
12663		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterPendingModifiedValues(v.PendingModifiedValues, ok); err != nil {
12664			return err
12665		}
12666	}
12667
12668	if v.PreferredMaintenanceWindow != nil {
12669		ok := object.Key("PreferredMaintenanceWindow")
12670		ok.String(*v.PreferredMaintenanceWindow)
12671	}
12672
12673	if v.PubliclyAccessible {
12674		ok := object.Key("PubliclyAccessible")
12675		ok.Boolean(v.PubliclyAccessible)
12676	}
12677
12678	if v.ResizeInfo != nil {
12679		ok := object.Key("ResizeInfo")
12680		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterResizeInfo(v.ResizeInfo, ok); err != nil {
12681			return err
12682		}
12683	}
12684
12685	if v.RestoreStatus != nil {
12686		ok := object.Key("RestoreStatus")
12687		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterRestoreStatus(v.RestoreStatus, ok); err != nil {
12688			return err
12689		}
12690	}
12691
12692	if v.SnapshotScheduleIdentifier != nil {
12693		ok := object.Key("SnapshotScheduleIdentifier")
12694		ok.String(*v.SnapshotScheduleIdentifier)
12695	}
12696
12697	if v.SnapshotScheduleState != nil {
12698		ok := object.Key("SnapshotScheduleState")
12699		ok.String(*v.SnapshotScheduleState)
12700	}
12701
12702	if v.VpcId != nil {
12703		ok := object.Key("VpcId")
12704		ok.String(*v.VpcId)
12705	}
12706
12707	if v.VpcSecurityGroups != nil {
12708		ok := object.Key("VpcSecurityGroups")
12709		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroups(v.VpcSecurityGroups, ok); err != nil {
12710			return err
12711		}
12712	}
12713
12714	return nil
12715}
12716
12717func awsRestjson1_serializeDocumentAwsRedshiftClusterElasticIpStatus(v *types.AwsRedshiftClusterElasticIpStatus, value smithyjson.Value) error {
12718	object := value.Object()
12719	defer object.Close()
12720
12721	if v.ElasticIp != nil {
12722		ok := object.Key("ElasticIp")
12723		ok.String(*v.ElasticIp)
12724	}
12725
12726	if v.Status != nil {
12727		ok := object.Key("Status")
12728		ok.String(*v.Status)
12729	}
12730
12731	return nil
12732}
12733
12734func awsRestjson1_serializeDocumentAwsRedshiftClusterEndpoint(v *types.AwsRedshiftClusterEndpoint, value smithyjson.Value) error {
12735	object := value.Object()
12736	defer object.Close()
12737
12738	if v.Address != nil {
12739		ok := object.Key("Address")
12740		ok.String(*v.Address)
12741	}
12742
12743	if v.Port != 0 {
12744		ok := object.Key("Port")
12745		ok.Integer(v.Port)
12746	}
12747
12748	return nil
12749}
12750
12751func awsRestjson1_serializeDocumentAwsRedshiftClusterHsmStatus(v *types.AwsRedshiftClusterHsmStatus, value smithyjson.Value) error {
12752	object := value.Object()
12753	defer object.Close()
12754
12755	if v.HsmClientCertificateIdentifier != nil {
12756		ok := object.Key("HsmClientCertificateIdentifier")
12757		ok.String(*v.HsmClientCertificateIdentifier)
12758	}
12759
12760	if v.HsmConfigurationIdentifier != nil {
12761		ok := object.Key("HsmConfigurationIdentifier")
12762		ok.String(*v.HsmConfigurationIdentifier)
12763	}
12764
12765	if v.Status != nil {
12766		ok := object.Key("Status")
12767		ok.String(*v.Status)
12768	}
12769
12770	return nil
12771}
12772
12773func awsRestjson1_serializeDocumentAwsRedshiftClusterIamRole(v *types.AwsRedshiftClusterIamRole, value smithyjson.Value) error {
12774	object := value.Object()
12775	defer object.Close()
12776
12777	if v.ApplyStatus != nil {
12778		ok := object.Key("ApplyStatus")
12779		ok.String(*v.ApplyStatus)
12780	}
12781
12782	if v.IamRoleArn != nil {
12783		ok := object.Key("IamRoleArn")
12784		ok.String(*v.IamRoleArn)
12785	}
12786
12787	return nil
12788}
12789
12790func awsRestjson1_serializeDocumentAwsRedshiftClusterIamRoles(v []types.AwsRedshiftClusterIamRole, value smithyjson.Value) error {
12791	array := value.Array()
12792	defer array.Close()
12793
12794	for i := range v {
12795		av := array.Value()
12796		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterIamRole(&v[i], av); err != nil {
12797			return err
12798		}
12799	}
12800	return nil
12801}
12802
12803func awsRestjson1_serializeDocumentAwsRedshiftClusterPendingModifiedValues(v *types.AwsRedshiftClusterPendingModifiedValues, value smithyjson.Value) error {
12804	object := value.Object()
12805	defer object.Close()
12806
12807	if v.AutomatedSnapshotRetentionPeriod != 0 {
12808		ok := object.Key("AutomatedSnapshotRetentionPeriod")
12809		ok.Integer(v.AutomatedSnapshotRetentionPeriod)
12810	}
12811
12812	if v.ClusterIdentifier != nil {
12813		ok := object.Key("ClusterIdentifier")
12814		ok.String(*v.ClusterIdentifier)
12815	}
12816
12817	if v.ClusterType != nil {
12818		ok := object.Key("ClusterType")
12819		ok.String(*v.ClusterType)
12820	}
12821
12822	if v.ClusterVersion != nil {
12823		ok := object.Key("ClusterVersion")
12824		ok.String(*v.ClusterVersion)
12825	}
12826
12827	if v.EncryptionType != nil {
12828		ok := object.Key("EncryptionType")
12829		ok.String(*v.EncryptionType)
12830	}
12831
12832	if v.EnhancedVpcRouting {
12833		ok := object.Key("EnhancedVpcRouting")
12834		ok.Boolean(v.EnhancedVpcRouting)
12835	}
12836
12837	if v.MaintenanceTrackName != nil {
12838		ok := object.Key("MaintenanceTrackName")
12839		ok.String(*v.MaintenanceTrackName)
12840	}
12841
12842	if v.MasterUserPassword != nil {
12843		ok := object.Key("MasterUserPassword")
12844		ok.String(*v.MasterUserPassword)
12845	}
12846
12847	if v.NodeType != nil {
12848		ok := object.Key("NodeType")
12849		ok.String(*v.NodeType)
12850	}
12851
12852	if v.NumberOfNodes != 0 {
12853		ok := object.Key("NumberOfNodes")
12854		ok.Integer(v.NumberOfNodes)
12855	}
12856
12857	if v.PubliclyAccessible {
12858		ok := object.Key("PubliclyAccessible")
12859		ok.Boolean(v.PubliclyAccessible)
12860	}
12861
12862	return nil
12863}
12864
12865func awsRestjson1_serializeDocumentAwsRedshiftClusterResizeInfo(v *types.AwsRedshiftClusterResizeInfo, value smithyjson.Value) error {
12866	object := value.Object()
12867	defer object.Close()
12868
12869	if v.AllowCancelResize {
12870		ok := object.Key("AllowCancelResize")
12871		ok.Boolean(v.AllowCancelResize)
12872	}
12873
12874	if v.ResizeType != nil {
12875		ok := object.Key("ResizeType")
12876		ok.String(*v.ResizeType)
12877	}
12878
12879	return nil
12880}
12881
12882func awsRestjson1_serializeDocumentAwsRedshiftClusterRestoreStatus(v *types.AwsRedshiftClusterRestoreStatus, value smithyjson.Value) error {
12883	object := value.Object()
12884	defer object.Close()
12885
12886	if v.CurrentRestoreRateInMegaBytesPerSecond != 0 {
12887		ok := object.Key("CurrentRestoreRateInMegaBytesPerSecond")
12888		switch {
12889		case math.IsNaN(v.CurrentRestoreRateInMegaBytesPerSecond):
12890			ok.String("NaN")
12891
12892		case math.IsInf(v.CurrentRestoreRateInMegaBytesPerSecond, 1):
12893			ok.String("Infinity")
12894
12895		case math.IsInf(v.CurrentRestoreRateInMegaBytesPerSecond, -1):
12896			ok.String("-Infinity")
12897
12898		default:
12899			ok.Double(v.CurrentRestoreRateInMegaBytesPerSecond)
12900
12901		}
12902	}
12903
12904	if v.ElapsedTimeInSeconds != 0 {
12905		ok := object.Key("ElapsedTimeInSeconds")
12906		ok.Long(v.ElapsedTimeInSeconds)
12907	}
12908
12909	if v.EstimatedTimeToCompletionInSeconds != 0 {
12910		ok := object.Key("EstimatedTimeToCompletionInSeconds")
12911		ok.Long(v.EstimatedTimeToCompletionInSeconds)
12912	}
12913
12914	if v.ProgressInMegaBytes != 0 {
12915		ok := object.Key("ProgressInMegaBytes")
12916		ok.Long(v.ProgressInMegaBytes)
12917	}
12918
12919	if v.SnapshotSizeInMegaBytes != 0 {
12920		ok := object.Key("SnapshotSizeInMegaBytes")
12921		ok.Long(v.SnapshotSizeInMegaBytes)
12922	}
12923
12924	if v.Status != nil {
12925		ok := object.Key("Status")
12926		ok.String(*v.Status)
12927	}
12928
12929	return nil
12930}
12931
12932func awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroup(v *types.AwsRedshiftClusterVpcSecurityGroup, value smithyjson.Value) error {
12933	object := value.Object()
12934	defer object.Close()
12935
12936	if v.Status != nil {
12937		ok := object.Key("Status")
12938		ok.String(*v.Status)
12939	}
12940
12941	if v.VpcSecurityGroupId != nil {
12942		ok := object.Key("VpcSecurityGroupId")
12943		ok.String(*v.VpcSecurityGroupId)
12944	}
12945
12946	return nil
12947}
12948
12949func awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroups(v []types.AwsRedshiftClusterVpcSecurityGroup, value smithyjson.Value) error {
12950	array := value.Array()
12951	defer array.Close()
12952
12953	for i := range v {
12954		av := array.Value()
12955		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterVpcSecurityGroup(&v[i], av); err != nil {
12956			return err
12957		}
12958	}
12959	return nil
12960}
12961
12962func awsRestjson1_serializeDocumentAwsS3AccountPublicAccessBlockDetails(v *types.AwsS3AccountPublicAccessBlockDetails, value smithyjson.Value) error {
12963	object := value.Object()
12964	defer object.Close()
12965
12966	if v.BlockPublicAcls {
12967		ok := object.Key("BlockPublicAcls")
12968		ok.Boolean(v.BlockPublicAcls)
12969	}
12970
12971	if v.BlockPublicPolicy {
12972		ok := object.Key("BlockPublicPolicy")
12973		ok.Boolean(v.BlockPublicPolicy)
12974	}
12975
12976	if v.IgnorePublicAcls {
12977		ok := object.Key("IgnorePublicAcls")
12978		ok.Boolean(v.IgnorePublicAcls)
12979	}
12980
12981	if v.RestrictPublicBuckets {
12982		ok := object.Key("RestrictPublicBuckets")
12983		ok.Boolean(v.RestrictPublicBuckets)
12984	}
12985
12986	return nil
12987}
12988
12989func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v *types.AwsS3BucketBucketLifecycleConfigurationDetails, value smithyjson.Value) error {
12990	object := value.Object()
12991	defer object.Close()
12992
12993	if v.Rules != nil {
12994		ok := object.Key("Rules")
12995		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(v.Rules, ok); err != nil {
12996			return err
12997		}
12998	}
12999
13000	return nil
13001}
13002
13003func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails, value smithyjson.Value) error {
13004	object := value.Object()
13005	defer object.Close()
13006
13007	if v.DaysAfterInitiation != 0 {
13008		ok := object.Key("DaysAfterInitiation")
13009		ok.Integer(v.DaysAfterInitiation)
13010	}
13011
13012	return nil
13013}
13014
13015func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value smithyjson.Value) error {
13016	object := value.Object()
13017	defer object.Close()
13018
13019	if v.AbortIncompleteMultipartUpload != nil {
13020		ok := object.Key("AbortIncompleteMultipartUpload")
13021		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails(v.AbortIncompleteMultipartUpload, ok); err != nil {
13022			return err
13023		}
13024	}
13025
13026	if v.ExpirationDate != nil {
13027		ok := object.Key("ExpirationDate")
13028		ok.String(*v.ExpirationDate)
13029	}
13030
13031	if v.ExpirationInDays != 0 {
13032		ok := object.Key("ExpirationInDays")
13033		ok.Integer(v.ExpirationInDays)
13034	}
13035
13036	if v.ExpiredObjectDeleteMarker {
13037		ok := object.Key("ExpiredObjectDeleteMarker")
13038		ok.Boolean(v.ExpiredObjectDeleteMarker)
13039	}
13040
13041	if v.Filter != nil {
13042		ok := object.Key("Filter")
13043		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(v.Filter, ok); err != nil {
13044			return err
13045		}
13046	}
13047
13048	if v.ID != nil {
13049		ok := object.Key("ID")
13050		ok.String(*v.ID)
13051	}
13052
13053	if v.NoncurrentVersionExpirationInDays != 0 {
13054		ok := object.Key("NoncurrentVersionExpirationInDays")
13055		ok.Integer(v.NoncurrentVersionExpirationInDays)
13056	}
13057
13058	if v.NoncurrentVersionTransitions != nil {
13059		ok := object.Key("NoncurrentVersionTransitions")
13060		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(v.NoncurrentVersionTransitions, ok); err != nil {
13061			return err
13062		}
13063	}
13064
13065	if v.Prefix != nil {
13066		ok := object.Key("Prefix")
13067		ok.String(*v.Prefix)
13068	}
13069
13070	if v.Status != nil {
13071		ok := object.Key("Status")
13072		ok.String(*v.Status)
13073	}
13074
13075	if v.Transitions != nil {
13076		ok := object.Key("Transitions")
13077		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(v.Transitions, ok); err != nil {
13078			return err
13079		}
13080	}
13081
13082	return nil
13083}
13084
13085func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails, value smithyjson.Value) error {
13086	object := value.Object()
13087	defer object.Close()
13088
13089	if v.Predicate != nil {
13090		ok := object.Key("Predicate")
13091		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(v.Predicate, ok); err != nil {
13092			return err
13093		}
13094	}
13095
13096	return nil
13097}
13098
13099func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails, value smithyjson.Value) error {
13100	object := value.Object()
13101	defer object.Close()
13102
13103	if v.Operands != nil {
13104		ok := object.Key("Operands")
13105		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(v.Operands, ok); err != nil {
13106			return err
13107		}
13108	}
13109
13110	if v.Prefix != nil {
13111		ok := object.Key("Prefix")
13112		ok.String(*v.Prefix)
13113	}
13114
13115	if v.Tag != nil {
13116		ok := object.Key("Tag")
13117		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(v.Tag, ok); err != nil {
13118			return err
13119		}
13120	}
13121
13122	if v.Type != nil {
13123		ok := object.Key("Type")
13124		ok.String(*v.Type)
13125	}
13126
13127	return nil
13128}
13129
13130func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value smithyjson.Value) error {
13131	object := value.Object()
13132	defer object.Close()
13133
13134	if v.Prefix != nil {
13135		ok := object.Key("Prefix")
13136		ok.String(*v.Prefix)
13137	}
13138
13139	if v.Tag != nil {
13140		ok := object.Key("Tag")
13141		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(v.Tag, ok); err != nil {
13142			return err
13143		}
13144	}
13145
13146	if v.Type != nil {
13147		ok := object.Key("Type")
13148		ok.String(*v.Type)
13149	}
13150
13151	return nil
13152}
13153
13154func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList(v []types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails, value smithyjson.Value) error {
13155	array := value.Array()
13156	defer array.Close()
13157
13158	for i := range v {
13159		av := array.Value()
13160		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails(&v[i], av); err != nil {
13161			return err
13162		}
13163	}
13164	return nil
13165}
13166
13167func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails, value smithyjson.Value) error {
13168	object := value.Object()
13169	defer object.Close()
13170
13171	if v.Key != nil {
13172		ok := object.Key("Key")
13173		ok.String(*v.Key)
13174	}
13175
13176	if v.Value != nil {
13177		ok := object.Key("Value")
13178		ok.String(*v.Value)
13179	}
13180
13181	return nil
13182}
13183
13184func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails, value smithyjson.Value) error {
13185	object := value.Object()
13186	defer object.Close()
13187
13188	if v.Key != nil {
13189		ok := object.Key("Key")
13190		ok.String(*v.Key)
13191	}
13192
13193	if v.Value != nil {
13194		ok := object.Key("Value")
13195		ok.String(*v.Value)
13196	}
13197
13198	return nil
13199}
13200
13201func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesList(v []types.AwsS3BucketBucketLifecycleConfigurationRulesDetails, value smithyjson.Value) error {
13202	array := value.Array()
13203	defer array.Close()
13204
13205	for i := range v {
13206		av := array.Value()
13207		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesDetails(&v[i], av); err != nil {
13208			return err
13209		}
13210	}
13211	return nil
13212}
13213
13214func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value smithyjson.Value) error {
13215	object := value.Object()
13216	defer object.Close()
13217
13218	if v.Days != 0 {
13219		ok := object.Key("Days")
13220		ok.Integer(v.Days)
13221	}
13222
13223	if v.StorageClass != nil {
13224		ok := object.Key("StorageClass")
13225		ok.String(*v.StorageClass)
13226	}
13227
13228	return nil
13229}
13230
13231func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList(v []types.AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, value smithyjson.Value) error {
13232	array := value.Array()
13233	defer array.Close()
13234
13235	for i := range v {
13236		av := array.Value()
13237		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails(&v[i], av); err != nil {
13238			return err
13239		}
13240	}
13241	return nil
13242}
13243
13244func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(v *types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value smithyjson.Value) error {
13245	object := value.Object()
13246	defer object.Close()
13247
13248	if v.Date != nil {
13249		ok := object.Key("Date")
13250		ok.String(*v.Date)
13251	}
13252
13253	if v.Days != 0 {
13254		ok := object.Key("Days")
13255		ok.Integer(v.Days)
13256	}
13257
13258	if v.StorageClass != nil {
13259		ok := object.Key("StorageClass")
13260		ok.String(*v.StorageClass)
13261	}
13262
13263	return nil
13264}
13265
13266func awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsList(v []types.AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, value smithyjson.Value) error {
13267	array := value.Array()
13268	defer array.Close()
13269
13270	for i := range v {
13271		av := array.Value()
13272		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails(&v[i], av); err != nil {
13273			return err
13274		}
13275	}
13276	return nil
13277}
13278
13279func awsRestjson1_serializeDocumentAwsS3BucketDetails(v *types.AwsS3BucketDetails, value smithyjson.Value) error {
13280	object := value.Object()
13281	defer object.Close()
13282
13283	if v.AccessControlList != nil {
13284		ok := object.Key("AccessControlList")
13285		ok.String(*v.AccessControlList)
13286	}
13287
13288	if v.BucketLifecycleConfiguration != nil {
13289		ok := object.Key("BucketLifecycleConfiguration")
13290		if err := awsRestjson1_serializeDocumentAwsS3BucketBucketLifecycleConfigurationDetails(v.BucketLifecycleConfiguration, ok); err != nil {
13291			return err
13292		}
13293	}
13294
13295	if v.BucketLoggingConfiguration != nil {
13296		ok := object.Key("BucketLoggingConfiguration")
13297		if err := awsRestjson1_serializeDocumentAwsS3BucketLoggingConfiguration(v.BucketLoggingConfiguration, ok); err != nil {
13298			return err
13299		}
13300	}
13301
13302	if v.BucketNotificationConfiguration != nil {
13303		ok := object.Key("BucketNotificationConfiguration")
13304		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfiguration(v.BucketNotificationConfiguration, ok); err != nil {
13305			return err
13306		}
13307	}
13308
13309	if v.BucketWebsiteConfiguration != nil {
13310		ok := object.Key("BucketWebsiteConfiguration")
13311		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfiguration(v.BucketWebsiteConfiguration, ok); err != nil {
13312			return err
13313		}
13314	}
13315
13316	if v.CreatedAt != nil {
13317		ok := object.Key("CreatedAt")
13318		ok.String(*v.CreatedAt)
13319	}
13320
13321	if v.OwnerId != nil {
13322		ok := object.Key("OwnerId")
13323		ok.String(*v.OwnerId)
13324	}
13325
13326	if v.OwnerName != nil {
13327		ok := object.Key("OwnerName")
13328		ok.String(*v.OwnerName)
13329	}
13330
13331	if v.PublicAccessBlockConfiguration != nil {
13332		ok := object.Key("PublicAccessBlockConfiguration")
13333		if err := awsRestjson1_serializeDocumentAwsS3AccountPublicAccessBlockDetails(v.PublicAccessBlockConfiguration, ok); err != nil {
13334			return err
13335		}
13336	}
13337
13338	if v.ServerSideEncryptionConfiguration != nil {
13339		ok := object.Key("ServerSideEncryptionConfiguration")
13340		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v.ServerSideEncryptionConfiguration, ok); err != nil {
13341			return err
13342		}
13343	}
13344
13345	return nil
13346}
13347
13348func awsRestjson1_serializeDocumentAwsS3BucketLoggingConfiguration(v *types.AwsS3BucketLoggingConfiguration, value smithyjson.Value) error {
13349	object := value.Object()
13350	defer object.Close()
13351
13352	if v.DestinationBucketName != nil {
13353		ok := object.Key("DestinationBucketName")
13354		ok.String(*v.DestinationBucketName)
13355	}
13356
13357	if v.LogFilePrefix != nil {
13358		ok := object.Key("LogFilePrefix")
13359		ok.String(*v.LogFilePrefix)
13360	}
13361
13362	return nil
13363}
13364
13365func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfiguration(v *types.AwsS3BucketNotificationConfiguration, value smithyjson.Value) error {
13366	object := value.Object()
13367	defer object.Close()
13368
13369	if v.Configurations != nil {
13370		ok := object.Key("Configurations")
13371		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetails(v.Configurations, ok); err != nil {
13372			return err
13373		}
13374	}
13375
13376	return nil
13377}
13378
13379func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetail(v *types.AwsS3BucketNotificationConfigurationDetail, value smithyjson.Value) error {
13380	object := value.Object()
13381	defer object.Close()
13382
13383	if v.Destination != nil {
13384		ok := object.Key("Destination")
13385		ok.String(*v.Destination)
13386	}
13387
13388	if v.Events != nil {
13389		ok := object.Key("Events")
13390		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationEvents(v.Events, ok); err != nil {
13391			return err
13392		}
13393	}
13394
13395	if v.Filter != nil {
13396		ok := object.Key("Filter")
13397		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationFilter(v.Filter, ok); err != nil {
13398			return err
13399		}
13400	}
13401
13402	if v.Type != nil {
13403		ok := object.Key("Type")
13404		ok.String(*v.Type)
13405	}
13406
13407	return nil
13408}
13409
13410func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetails(v []types.AwsS3BucketNotificationConfigurationDetail, value smithyjson.Value) error {
13411	array := value.Array()
13412	defer array.Close()
13413
13414	for i := range v {
13415		av := array.Value()
13416		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationDetail(&v[i], av); err != nil {
13417			return err
13418		}
13419	}
13420	return nil
13421}
13422
13423func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationEvents(v []string, value smithyjson.Value) error {
13424	array := value.Array()
13425	defer array.Close()
13426
13427	for i := range v {
13428		av := array.Value()
13429		av.String(v[i])
13430	}
13431	return nil
13432}
13433
13434func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationFilter(v *types.AwsS3BucketNotificationConfigurationFilter, value smithyjson.Value) error {
13435	object := value.Object()
13436	defer object.Close()
13437
13438	if v.S3KeyFilter != nil {
13439		ok := object.Key("S3KeyFilter")
13440		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v.S3KeyFilter, ok); err != nil {
13441			return err
13442		}
13443	}
13444
13445	return nil
13446}
13447
13448func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilter(v *types.AwsS3BucketNotificationConfigurationS3KeyFilter, value smithyjson.Value) error {
13449	object := value.Object()
13450	defer object.Close()
13451
13452	if v.FilterRules != nil {
13453		ok := object.Key("FilterRules")
13454		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v.FilterRules, ok); err != nil {
13455			return err
13456		}
13457	}
13458
13459	return nil
13460}
13461
13462func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(v *types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value smithyjson.Value) error {
13463	object := value.Object()
13464	defer object.Close()
13465
13466	if len(v.Name) > 0 {
13467		ok := object.Key("Name")
13468		ok.String(string(v.Name))
13469	}
13470
13471	if v.Value != nil {
13472		ok := object.Key("Value")
13473		ok.String(*v.Value)
13474	}
13475
13476	return nil
13477}
13478
13479func awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRules(v []types.AwsS3BucketNotificationConfigurationS3KeyFilterRule, value smithyjson.Value) error {
13480	array := value.Array()
13481	defer array.Close()
13482
13483	for i := range v {
13484		av := array.Value()
13485		if err := awsRestjson1_serializeDocumentAwsS3BucketNotificationConfigurationS3KeyFilterRule(&v[i], av); err != nil {
13486			return err
13487		}
13488	}
13489	return nil
13490}
13491
13492func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionByDefault(v *types.AwsS3BucketServerSideEncryptionByDefault, value smithyjson.Value) error {
13493	object := value.Object()
13494	defer object.Close()
13495
13496	if v.KMSMasterKeyID != nil {
13497		ok := object.Key("KMSMasterKeyID")
13498		ok.String(*v.KMSMasterKeyID)
13499	}
13500
13501	if v.SSEAlgorithm != nil {
13502		ok := object.Key("SSEAlgorithm")
13503		ok.String(*v.SSEAlgorithm)
13504	}
13505
13506	return nil
13507}
13508
13509func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionConfiguration(v *types.AwsS3BucketServerSideEncryptionConfiguration, value smithyjson.Value) error {
13510	object := value.Object()
13511	defer object.Close()
13512
13513	if v.Rules != nil {
13514		ok := object.Key("Rules")
13515		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRules(v.Rules, ok); err != nil {
13516			return err
13517		}
13518	}
13519
13520	return nil
13521}
13522
13523func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRule(v *types.AwsS3BucketServerSideEncryptionRule, value smithyjson.Value) error {
13524	object := value.Object()
13525	defer object.Close()
13526
13527	if v.ApplyServerSideEncryptionByDefault != nil {
13528		ok := object.Key("ApplyServerSideEncryptionByDefault")
13529		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionByDefault(v.ApplyServerSideEncryptionByDefault, ok); err != nil {
13530			return err
13531		}
13532	}
13533
13534	return nil
13535}
13536
13537func awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRules(v []types.AwsS3BucketServerSideEncryptionRule, value smithyjson.Value) error {
13538	array := value.Array()
13539	defer array.Close()
13540
13541	for i := range v {
13542		av := array.Value()
13543		if err := awsRestjson1_serializeDocumentAwsS3BucketServerSideEncryptionRule(&v[i], av); err != nil {
13544			return err
13545		}
13546	}
13547	return nil
13548}
13549
13550func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfiguration(v *types.AwsS3BucketWebsiteConfiguration, value smithyjson.Value) error {
13551	object := value.Object()
13552	defer object.Close()
13553
13554	if v.ErrorDocument != nil {
13555		ok := object.Key("ErrorDocument")
13556		ok.String(*v.ErrorDocument)
13557	}
13558
13559	if v.IndexDocumentSuffix != nil {
13560		ok := object.Key("IndexDocumentSuffix")
13561		ok.String(*v.IndexDocumentSuffix)
13562	}
13563
13564	if v.RedirectAllRequestsTo != nil {
13565		ok := object.Key("RedirectAllRequestsTo")
13566		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v.RedirectAllRequestsTo, ok); err != nil {
13567			return err
13568		}
13569	}
13570
13571	if v.RoutingRules != nil {
13572		ok := object.Key("RoutingRules")
13573		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v.RoutingRules, ok); err != nil {
13574			return err
13575		}
13576	}
13577
13578	return nil
13579}
13580
13581func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRedirectTo(v *types.AwsS3BucketWebsiteConfigurationRedirectTo, value smithyjson.Value) error {
13582	object := value.Object()
13583	defer object.Close()
13584
13585	if v.Hostname != nil {
13586		ok := object.Key("Hostname")
13587		ok.String(*v.Hostname)
13588	}
13589
13590	if v.Protocol != nil {
13591		ok := object.Key("Protocol")
13592		ok.String(*v.Protocol)
13593	}
13594
13595	return nil
13596}
13597
13598func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(v *types.AwsS3BucketWebsiteConfigurationRoutingRule, value smithyjson.Value) error {
13599	object := value.Object()
13600	defer object.Close()
13601
13602	if v.Condition != nil {
13603		ok := object.Key("Condition")
13604		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v.Condition, ok); err != nil {
13605			return err
13606		}
13607	}
13608
13609	if v.Redirect != nil {
13610		ok := object.Key("Redirect")
13611		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v.Redirect, ok); err != nil {
13612			return err
13613		}
13614	}
13615
13616	return nil
13617}
13618
13619func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleCondition(v *types.AwsS3BucketWebsiteConfigurationRoutingRuleCondition, value smithyjson.Value) error {
13620	object := value.Object()
13621	defer object.Close()
13622
13623	if v.HttpErrorCodeReturnedEquals != nil {
13624		ok := object.Key("HttpErrorCodeReturnedEquals")
13625		ok.String(*v.HttpErrorCodeReturnedEquals)
13626	}
13627
13628	if v.KeyPrefixEquals != nil {
13629		ok := object.Key("KeyPrefixEquals")
13630		ok.String(*v.KeyPrefixEquals)
13631	}
13632
13633	return nil
13634}
13635
13636func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRuleRedirect(v *types.AwsS3BucketWebsiteConfigurationRoutingRuleRedirect, value smithyjson.Value) error {
13637	object := value.Object()
13638	defer object.Close()
13639
13640	if v.Hostname != nil {
13641		ok := object.Key("Hostname")
13642		ok.String(*v.Hostname)
13643	}
13644
13645	if v.HttpRedirectCode != nil {
13646		ok := object.Key("HttpRedirectCode")
13647		ok.String(*v.HttpRedirectCode)
13648	}
13649
13650	if v.Protocol != nil {
13651		ok := object.Key("Protocol")
13652		ok.String(*v.Protocol)
13653	}
13654
13655	if v.ReplaceKeyPrefixWith != nil {
13656		ok := object.Key("ReplaceKeyPrefixWith")
13657		ok.String(*v.ReplaceKeyPrefixWith)
13658	}
13659
13660	if v.ReplaceKeyWith != nil {
13661		ok := object.Key("ReplaceKeyWith")
13662		ok.String(*v.ReplaceKeyWith)
13663	}
13664
13665	return nil
13666}
13667
13668func awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRules(v []types.AwsS3BucketWebsiteConfigurationRoutingRule, value smithyjson.Value) error {
13669	array := value.Array()
13670	defer array.Close()
13671
13672	for i := range v {
13673		av := array.Value()
13674		if err := awsRestjson1_serializeDocumentAwsS3BucketWebsiteConfigurationRoutingRule(&v[i], av); err != nil {
13675			return err
13676		}
13677	}
13678	return nil
13679}
13680
13681func awsRestjson1_serializeDocumentAwsS3ObjectDetails(v *types.AwsS3ObjectDetails, value smithyjson.Value) error {
13682	object := value.Object()
13683	defer object.Close()
13684
13685	if v.ContentType != nil {
13686		ok := object.Key("ContentType")
13687		ok.String(*v.ContentType)
13688	}
13689
13690	if v.ETag != nil {
13691		ok := object.Key("ETag")
13692		ok.String(*v.ETag)
13693	}
13694
13695	if v.LastModified != nil {
13696		ok := object.Key("LastModified")
13697		ok.String(*v.LastModified)
13698	}
13699
13700	if v.ServerSideEncryption != nil {
13701		ok := object.Key("ServerSideEncryption")
13702		ok.String(*v.ServerSideEncryption)
13703	}
13704
13705	if v.SSEKMSKeyId != nil {
13706		ok := object.Key("SSEKMSKeyId")
13707		ok.String(*v.SSEKMSKeyId)
13708	}
13709
13710	if v.VersionId != nil {
13711		ok := object.Key("VersionId")
13712		ok.String(*v.VersionId)
13713	}
13714
13715	return nil
13716}
13717
13718func awsRestjson1_serializeDocumentAwsSecretsManagerSecretDetails(v *types.AwsSecretsManagerSecretDetails, value smithyjson.Value) error {
13719	object := value.Object()
13720	defer object.Close()
13721
13722	if v.Deleted {
13723		ok := object.Key("Deleted")
13724		ok.Boolean(v.Deleted)
13725	}
13726
13727	if v.Description != nil {
13728		ok := object.Key("Description")
13729		ok.String(*v.Description)
13730	}
13731
13732	if v.KmsKeyId != nil {
13733		ok := object.Key("KmsKeyId")
13734		ok.String(*v.KmsKeyId)
13735	}
13736
13737	if v.Name != nil {
13738		ok := object.Key("Name")
13739		ok.String(*v.Name)
13740	}
13741
13742	if v.RotationEnabled {
13743		ok := object.Key("RotationEnabled")
13744		ok.Boolean(v.RotationEnabled)
13745	}
13746
13747	if v.RotationLambdaArn != nil {
13748		ok := object.Key("RotationLambdaArn")
13749		ok.String(*v.RotationLambdaArn)
13750	}
13751
13752	if v.RotationOccurredWithinFrequency {
13753		ok := object.Key("RotationOccurredWithinFrequency")
13754		ok.Boolean(v.RotationOccurredWithinFrequency)
13755	}
13756
13757	if v.RotationRules != nil {
13758		ok := object.Key("RotationRules")
13759		if err := awsRestjson1_serializeDocumentAwsSecretsManagerSecretRotationRules(v.RotationRules, ok); err != nil {
13760			return err
13761		}
13762	}
13763
13764	return nil
13765}
13766
13767func awsRestjson1_serializeDocumentAwsSecretsManagerSecretRotationRules(v *types.AwsSecretsManagerSecretRotationRules, value smithyjson.Value) error {
13768	object := value.Object()
13769	defer object.Close()
13770
13771	if v.AutomaticallyAfterDays != 0 {
13772		ok := object.Key("AutomaticallyAfterDays")
13773		ok.Integer(v.AutomaticallyAfterDays)
13774	}
13775
13776	return nil
13777}
13778
13779func awsRestjson1_serializeDocumentAwsSecurityFinding(v *types.AwsSecurityFinding, value smithyjson.Value) error {
13780	object := value.Object()
13781	defer object.Close()
13782
13783	if v.Action != nil {
13784		ok := object.Key("Action")
13785		if err := awsRestjson1_serializeDocumentAction(v.Action, ok); err != nil {
13786			return err
13787		}
13788	}
13789
13790	if v.AwsAccountId != nil {
13791		ok := object.Key("AwsAccountId")
13792		ok.String(*v.AwsAccountId)
13793	}
13794
13795	if v.CompanyName != nil {
13796		ok := object.Key("CompanyName")
13797		ok.String(*v.CompanyName)
13798	}
13799
13800	if v.Compliance != nil {
13801		ok := object.Key("Compliance")
13802		if err := awsRestjson1_serializeDocumentCompliance(v.Compliance, ok); err != nil {
13803			return err
13804		}
13805	}
13806
13807	if v.Confidence != 0 {
13808		ok := object.Key("Confidence")
13809		ok.Integer(v.Confidence)
13810	}
13811
13812	if v.CreatedAt != nil {
13813		ok := object.Key("CreatedAt")
13814		ok.String(*v.CreatedAt)
13815	}
13816
13817	if v.Criticality != 0 {
13818		ok := object.Key("Criticality")
13819		ok.Integer(v.Criticality)
13820	}
13821
13822	if v.Description != nil {
13823		ok := object.Key("Description")
13824		ok.String(*v.Description)
13825	}
13826
13827	if v.FindingProviderFields != nil {
13828		ok := object.Key("FindingProviderFields")
13829		if err := awsRestjson1_serializeDocumentFindingProviderFields(v.FindingProviderFields, ok); err != nil {
13830			return err
13831		}
13832	}
13833
13834	if v.FirstObservedAt != nil {
13835		ok := object.Key("FirstObservedAt")
13836		ok.String(*v.FirstObservedAt)
13837	}
13838
13839	if v.GeneratorId != nil {
13840		ok := object.Key("GeneratorId")
13841		ok.String(*v.GeneratorId)
13842	}
13843
13844	if v.Id != nil {
13845		ok := object.Key("Id")
13846		ok.String(*v.Id)
13847	}
13848
13849	if v.LastObservedAt != nil {
13850		ok := object.Key("LastObservedAt")
13851		ok.String(*v.LastObservedAt)
13852	}
13853
13854	if v.Malware != nil {
13855		ok := object.Key("Malware")
13856		if err := awsRestjson1_serializeDocumentMalwareList(v.Malware, ok); err != nil {
13857			return err
13858		}
13859	}
13860
13861	if v.Network != nil {
13862		ok := object.Key("Network")
13863		if err := awsRestjson1_serializeDocumentNetwork(v.Network, ok); err != nil {
13864			return err
13865		}
13866	}
13867
13868	if v.NetworkPath != nil {
13869		ok := object.Key("NetworkPath")
13870		if err := awsRestjson1_serializeDocumentNetworkPathList(v.NetworkPath, ok); err != nil {
13871			return err
13872		}
13873	}
13874
13875	if v.Note != nil {
13876		ok := object.Key("Note")
13877		if err := awsRestjson1_serializeDocumentNote(v.Note, ok); err != nil {
13878			return err
13879		}
13880	}
13881
13882	if v.PatchSummary != nil {
13883		ok := object.Key("PatchSummary")
13884		if err := awsRestjson1_serializeDocumentPatchSummary(v.PatchSummary, ok); err != nil {
13885			return err
13886		}
13887	}
13888
13889	if v.Process != nil {
13890		ok := object.Key("Process")
13891		if err := awsRestjson1_serializeDocumentProcessDetails(v.Process, ok); err != nil {
13892			return err
13893		}
13894	}
13895
13896	if v.ProductArn != nil {
13897		ok := object.Key("ProductArn")
13898		ok.String(*v.ProductArn)
13899	}
13900
13901	if v.ProductFields != nil {
13902		ok := object.Key("ProductFields")
13903		if err := awsRestjson1_serializeDocumentFieldMap(v.ProductFields, ok); err != nil {
13904			return err
13905		}
13906	}
13907
13908	if v.ProductName != nil {
13909		ok := object.Key("ProductName")
13910		ok.String(*v.ProductName)
13911	}
13912
13913	if len(v.RecordState) > 0 {
13914		ok := object.Key("RecordState")
13915		ok.String(string(v.RecordState))
13916	}
13917
13918	if v.Region != nil {
13919		ok := object.Key("Region")
13920		ok.String(*v.Region)
13921	}
13922
13923	if v.RelatedFindings != nil {
13924		ok := object.Key("RelatedFindings")
13925		if err := awsRestjson1_serializeDocumentRelatedFindingList(v.RelatedFindings, ok); err != nil {
13926			return err
13927		}
13928	}
13929
13930	if v.Remediation != nil {
13931		ok := object.Key("Remediation")
13932		if err := awsRestjson1_serializeDocumentRemediation(v.Remediation, ok); err != nil {
13933			return err
13934		}
13935	}
13936
13937	if v.Resources != nil {
13938		ok := object.Key("Resources")
13939		if err := awsRestjson1_serializeDocumentResourceList(v.Resources, ok); err != nil {
13940			return err
13941		}
13942	}
13943
13944	if v.SchemaVersion != nil {
13945		ok := object.Key("SchemaVersion")
13946		ok.String(*v.SchemaVersion)
13947	}
13948
13949	if v.Severity != nil {
13950		ok := object.Key("Severity")
13951		if err := awsRestjson1_serializeDocumentSeverity(v.Severity, ok); err != nil {
13952			return err
13953		}
13954	}
13955
13956	if v.SourceUrl != nil {
13957		ok := object.Key("SourceUrl")
13958		ok.String(*v.SourceUrl)
13959	}
13960
13961	if v.ThreatIntelIndicators != nil {
13962		ok := object.Key("ThreatIntelIndicators")
13963		if err := awsRestjson1_serializeDocumentThreatIntelIndicatorList(v.ThreatIntelIndicators, ok); err != nil {
13964			return err
13965		}
13966	}
13967
13968	if v.Title != nil {
13969		ok := object.Key("Title")
13970		ok.String(*v.Title)
13971	}
13972
13973	if v.Types != nil {
13974		ok := object.Key("Types")
13975		if err := awsRestjson1_serializeDocumentTypeList(v.Types, ok); err != nil {
13976			return err
13977		}
13978	}
13979
13980	if v.UpdatedAt != nil {
13981		ok := object.Key("UpdatedAt")
13982		ok.String(*v.UpdatedAt)
13983	}
13984
13985	if v.UserDefinedFields != nil {
13986		ok := object.Key("UserDefinedFields")
13987		if err := awsRestjson1_serializeDocumentFieldMap(v.UserDefinedFields, ok); err != nil {
13988			return err
13989		}
13990	}
13991
13992	if len(v.VerificationState) > 0 {
13993		ok := object.Key("VerificationState")
13994		ok.String(string(v.VerificationState))
13995	}
13996
13997	if v.Vulnerabilities != nil {
13998		ok := object.Key("Vulnerabilities")
13999		if err := awsRestjson1_serializeDocumentVulnerabilityList(v.Vulnerabilities, ok); err != nil {
14000			return err
14001		}
14002	}
14003
14004	if v.Workflow != nil {
14005		ok := object.Key("Workflow")
14006		if err := awsRestjson1_serializeDocumentWorkflow(v.Workflow, ok); err != nil {
14007			return err
14008		}
14009	}
14010
14011	if len(v.WorkflowState) > 0 {
14012		ok := object.Key("WorkflowState")
14013		ok.String(string(v.WorkflowState))
14014	}
14015
14016	return nil
14017}
14018
14019func awsRestjson1_serializeDocumentAwsSecurityFindingFilters(v *types.AwsSecurityFindingFilters, value smithyjson.Value) error {
14020	object := value.Object()
14021	defer object.Close()
14022
14023	if v.AwsAccountId != nil {
14024		ok := object.Key("AwsAccountId")
14025		if err := awsRestjson1_serializeDocumentStringFilterList(v.AwsAccountId, ok); err != nil {
14026			return err
14027		}
14028	}
14029
14030	if v.CompanyName != nil {
14031		ok := object.Key("CompanyName")
14032		if err := awsRestjson1_serializeDocumentStringFilterList(v.CompanyName, ok); err != nil {
14033			return err
14034		}
14035	}
14036
14037	if v.ComplianceStatus != nil {
14038		ok := object.Key("ComplianceStatus")
14039		if err := awsRestjson1_serializeDocumentStringFilterList(v.ComplianceStatus, ok); err != nil {
14040			return err
14041		}
14042	}
14043
14044	if v.Confidence != nil {
14045		ok := object.Key("Confidence")
14046		if err := awsRestjson1_serializeDocumentNumberFilterList(v.Confidence, ok); err != nil {
14047			return err
14048		}
14049	}
14050
14051	if v.CreatedAt != nil {
14052		ok := object.Key("CreatedAt")
14053		if err := awsRestjson1_serializeDocumentDateFilterList(v.CreatedAt, ok); err != nil {
14054			return err
14055		}
14056	}
14057
14058	if v.Criticality != nil {
14059		ok := object.Key("Criticality")
14060		if err := awsRestjson1_serializeDocumentNumberFilterList(v.Criticality, ok); err != nil {
14061			return err
14062		}
14063	}
14064
14065	if v.Description != nil {
14066		ok := object.Key("Description")
14067		if err := awsRestjson1_serializeDocumentStringFilterList(v.Description, ok); err != nil {
14068			return err
14069		}
14070	}
14071
14072	if v.FindingProviderFieldsConfidence != nil {
14073		ok := object.Key("FindingProviderFieldsConfidence")
14074		if err := awsRestjson1_serializeDocumentNumberFilterList(v.FindingProviderFieldsConfidence, ok); err != nil {
14075			return err
14076		}
14077	}
14078
14079	if v.FindingProviderFieldsCriticality != nil {
14080		ok := object.Key("FindingProviderFieldsCriticality")
14081		if err := awsRestjson1_serializeDocumentNumberFilterList(v.FindingProviderFieldsCriticality, ok); err != nil {
14082			return err
14083		}
14084	}
14085
14086	if v.FindingProviderFieldsRelatedFindingsId != nil {
14087		ok := object.Key("FindingProviderFieldsRelatedFindingsId")
14088		if err := awsRestjson1_serializeDocumentStringFilterList(v.FindingProviderFieldsRelatedFindingsId, ok); err != nil {
14089			return err
14090		}
14091	}
14092
14093	if v.FindingProviderFieldsRelatedFindingsProductArn != nil {
14094		ok := object.Key("FindingProviderFieldsRelatedFindingsProductArn")
14095		if err := awsRestjson1_serializeDocumentStringFilterList(v.FindingProviderFieldsRelatedFindingsProductArn, ok); err != nil {
14096			return err
14097		}
14098	}
14099
14100	if v.FindingProviderFieldsSeverityLabel != nil {
14101		ok := object.Key("FindingProviderFieldsSeverityLabel")
14102		if err := awsRestjson1_serializeDocumentStringFilterList(v.FindingProviderFieldsSeverityLabel, ok); err != nil {
14103			return err
14104		}
14105	}
14106
14107	if v.FindingProviderFieldsSeverityOriginal != nil {
14108		ok := object.Key("FindingProviderFieldsSeverityOriginal")
14109		if err := awsRestjson1_serializeDocumentStringFilterList(v.FindingProviderFieldsSeverityOriginal, ok); err != nil {
14110			return err
14111		}
14112	}
14113
14114	if v.FindingProviderFieldsTypes != nil {
14115		ok := object.Key("FindingProviderFieldsTypes")
14116		if err := awsRestjson1_serializeDocumentStringFilterList(v.FindingProviderFieldsTypes, ok); err != nil {
14117			return err
14118		}
14119	}
14120
14121	if v.FirstObservedAt != nil {
14122		ok := object.Key("FirstObservedAt")
14123		if err := awsRestjson1_serializeDocumentDateFilterList(v.FirstObservedAt, ok); err != nil {
14124			return err
14125		}
14126	}
14127
14128	if v.GeneratorId != nil {
14129		ok := object.Key("GeneratorId")
14130		if err := awsRestjson1_serializeDocumentStringFilterList(v.GeneratorId, ok); err != nil {
14131			return err
14132		}
14133	}
14134
14135	if v.Id != nil {
14136		ok := object.Key("Id")
14137		if err := awsRestjson1_serializeDocumentStringFilterList(v.Id, ok); err != nil {
14138			return err
14139		}
14140	}
14141
14142	if v.Keyword != nil {
14143		ok := object.Key("Keyword")
14144		if err := awsRestjson1_serializeDocumentKeywordFilterList(v.Keyword, ok); err != nil {
14145			return err
14146		}
14147	}
14148
14149	if v.LastObservedAt != nil {
14150		ok := object.Key("LastObservedAt")
14151		if err := awsRestjson1_serializeDocumentDateFilterList(v.LastObservedAt, ok); err != nil {
14152			return err
14153		}
14154	}
14155
14156	if v.MalwareName != nil {
14157		ok := object.Key("MalwareName")
14158		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareName, ok); err != nil {
14159			return err
14160		}
14161	}
14162
14163	if v.MalwarePath != nil {
14164		ok := object.Key("MalwarePath")
14165		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwarePath, ok); err != nil {
14166			return err
14167		}
14168	}
14169
14170	if v.MalwareState != nil {
14171		ok := object.Key("MalwareState")
14172		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareState, ok); err != nil {
14173			return err
14174		}
14175	}
14176
14177	if v.MalwareType != nil {
14178		ok := object.Key("MalwareType")
14179		if err := awsRestjson1_serializeDocumentStringFilterList(v.MalwareType, ok); err != nil {
14180			return err
14181		}
14182	}
14183
14184	if v.NetworkDestinationDomain != nil {
14185		ok := object.Key("NetworkDestinationDomain")
14186		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkDestinationDomain, ok); err != nil {
14187			return err
14188		}
14189	}
14190
14191	if v.NetworkDestinationIpV4 != nil {
14192		ok := object.Key("NetworkDestinationIpV4")
14193		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkDestinationIpV4, ok); err != nil {
14194			return err
14195		}
14196	}
14197
14198	if v.NetworkDestinationIpV6 != nil {
14199		ok := object.Key("NetworkDestinationIpV6")
14200		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkDestinationIpV6, ok); err != nil {
14201			return err
14202		}
14203	}
14204
14205	if v.NetworkDestinationPort != nil {
14206		ok := object.Key("NetworkDestinationPort")
14207		if err := awsRestjson1_serializeDocumentNumberFilterList(v.NetworkDestinationPort, ok); err != nil {
14208			return err
14209		}
14210	}
14211
14212	if v.NetworkDirection != nil {
14213		ok := object.Key("NetworkDirection")
14214		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkDirection, ok); err != nil {
14215			return err
14216		}
14217	}
14218
14219	if v.NetworkProtocol != nil {
14220		ok := object.Key("NetworkProtocol")
14221		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkProtocol, ok); err != nil {
14222			return err
14223		}
14224	}
14225
14226	if v.NetworkSourceDomain != nil {
14227		ok := object.Key("NetworkSourceDomain")
14228		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkSourceDomain, ok); err != nil {
14229			return err
14230		}
14231	}
14232
14233	if v.NetworkSourceIpV4 != nil {
14234		ok := object.Key("NetworkSourceIpV4")
14235		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkSourceIpV4, ok); err != nil {
14236			return err
14237		}
14238	}
14239
14240	if v.NetworkSourceIpV6 != nil {
14241		ok := object.Key("NetworkSourceIpV6")
14242		if err := awsRestjson1_serializeDocumentIpFilterList(v.NetworkSourceIpV6, ok); err != nil {
14243			return err
14244		}
14245	}
14246
14247	if v.NetworkSourceMac != nil {
14248		ok := object.Key("NetworkSourceMac")
14249		if err := awsRestjson1_serializeDocumentStringFilterList(v.NetworkSourceMac, ok); err != nil {
14250			return err
14251		}
14252	}
14253
14254	if v.NetworkSourcePort != nil {
14255		ok := object.Key("NetworkSourcePort")
14256		if err := awsRestjson1_serializeDocumentNumberFilterList(v.NetworkSourcePort, ok); err != nil {
14257			return err
14258		}
14259	}
14260
14261	if v.NoteText != nil {
14262		ok := object.Key("NoteText")
14263		if err := awsRestjson1_serializeDocumentStringFilterList(v.NoteText, ok); err != nil {
14264			return err
14265		}
14266	}
14267
14268	if v.NoteUpdatedAt != nil {
14269		ok := object.Key("NoteUpdatedAt")
14270		if err := awsRestjson1_serializeDocumentDateFilterList(v.NoteUpdatedAt, ok); err != nil {
14271			return err
14272		}
14273	}
14274
14275	if v.NoteUpdatedBy != nil {
14276		ok := object.Key("NoteUpdatedBy")
14277		if err := awsRestjson1_serializeDocumentStringFilterList(v.NoteUpdatedBy, ok); err != nil {
14278			return err
14279		}
14280	}
14281
14282	if v.ProcessLaunchedAt != nil {
14283		ok := object.Key("ProcessLaunchedAt")
14284		if err := awsRestjson1_serializeDocumentDateFilterList(v.ProcessLaunchedAt, ok); err != nil {
14285			return err
14286		}
14287	}
14288
14289	if v.ProcessName != nil {
14290		ok := object.Key("ProcessName")
14291		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProcessName, ok); err != nil {
14292			return err
14293		}
14294	}
14295
14296	if v.ProcessParentPid != nil {
14297		ok := object.Key("ProcessParentPid")
14298		if err := awsRestjson1_serializeDocumentNumberFilterList(v.ProcessParentPid, ok); err != nil {
14299			return err
14300		}
14301	}
14302
14303	if v.ProcessPath != nil {
14304		ok := object.Key("ProcessPath")
14305		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProcessPath, ok); err != nil {
14306			return err
14307		}
14308	}
14309
14310	if v.ProcessPid != nil {
14311		ok := object.Key("ProcessPid")
14312		if err := awsRestjson1_serializeDocumentNumberFilterList(v.ProcessPid, ok); err != nil {
14313			return err
14314		}
14315	}
14316
14317	if v.ProcessTerminatedAt != nil {
14318		ok := object.Key("ProcessTerminatedAt")
14319		if err := awsRestjson1_serializeDocumentDateFilterList(v.ProcessTerminatedAt, ok); err != nil {
14320			return err
14321		}
14322	}
14323
14324	if v.ProductArn != nil {
14325		ok := object.Key("ProductArn")
14326		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProductArn, ok); err != nil {
14327			return err
14328		}
14329	}
14330
14331	if v.ProductFields != nil {
14332		ok := object.Key("ProductFields")
14333		if err := awsRestjson1_serializeDocumentMapFilterList(v.ProductFields, ok); err != nil {
14334			return err
14335		}
14336	}
14337
14338	if v.ProductName != nil {
14339		ok := object.Key("ProductName")
14340		if err := awsRestjson1_serializeDocumentStringFilterList(v.ProductName, ok); err != nil {
14341			return err
14342		}
14343	}
14344
14345	if v.RecommendationText != nil {
14346		ok := object.Key("RecommendationText")
14347		if err := awsRestjson1_serializeDocumentStringFilterList(v.RecommendationText, ok); err != nil {
14348			return err
14349		}
14350	}
14351
14352	if v.RecordState != nil {
14353		ok := object.Key("RecordState")
14354		if err := awsRestjson1_serializeDocumentStringFilterList(v.RecordState, ok); err != nil {
14355			return err
14356		}
14357	}
14358
14359	if v.Region != nil {
14360		ok := object.Key("Region")
14361		if err := awsRestjson1_serializeDocumentStringFilterList(v.Region, ok); err != nil {
14362			return err
14363		}
14364	}
14365
14366	if v.RelatedFindingsId != nil {
14367		ok := object.Key("RelatedFindingsId")
14368		if err := awsRestjson1_serializeDocumentStringFilterList(v.RelatedFindingsId, ok); err != nil {
14369			return err
14370		}
14371	}
14372
14373	if v.RelatedFindingsProductArn != nil {
14374		ok := object.Key("RelatedFindingsProductArn")
14375		if err := awsRestjson1_serializeDocumentStringFilterList(v.RelatedFindingsProductArn, ok); err != nil {
14376			return err
14377		}
14378	}
14379
14380	if v.ResourceAwsEc2InstanceIamInstanceProfileArn != nil {
14381		ok := object.Key("ResourceAwsEc2InstanceIamInstanceProfileArn")
14382		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceIamInstanceProfileArn, ok); err != nil {
14383			return err
14384		}
14385	}
14386
14387	if v.ResourceAwsEc2InstanceImageId != nil {
14388		ok := object.Key("ResourceAwsEc2InstanceImageId")
14389		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceImageId, ok); err != nil {
14390			return err
14391		}
14392	}
14393
14394	if v.ResourceAwsEc2InstanceIpV4Addresses != nil {
14395		ok := object.Key("ResourceAwsEc2InstanceIpV4Addresses")
14396		if err := awsRestjson1_serializeDocumentIpFilterList(v.ResourceAwsEc2InstanceIpV4Addresses, ok); err != nil {
14397			return err
14398		}
14399	}
14400
14401	if v.ResourceAwsEc2InstanceIpV6Addresses != nil {
14402		ok := object.Key("ResourceAwsEc2InstanceIpV6Addresses")
14403		if err := awsRestjson1_serializeDocumentIpFilterList(v.ResourceAwsEc2InstanceIpV6Addresses, ok); err != nil {
14404			return err
14405		}
14406	}
14407
14408	if v.ResourceAwsEc2InstanceKeyName != nil {
14409		ok := object.Key("ResourceAwsEc2InstanceKeyName")
14410		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceKeyName, ok); err != nil {
14411			return err
14412		}
14413	}
14414
14415	if v.ResourceAwsEc2InstanceLaunchedAt != nil {
14416		ok := object.Key("ResourceAwsEc2InstanceLaunchedAt")
14417		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceAwsEc2InstanceLaunchedAt, ok); err != nil {
14418			return err
14419		}
14420	}
14421
14422	if v.ResourceAwsEc2InstanceSubnetId != nil {
14423		ok := object.Key("ResourceAwsEc2InstanceSubnetId")
14424		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceSubnetId, ok); err != nil {
14425			return err
14426		}
14427	}
14428
14429	if v.ResourceAwsEc2InstanceType != nil {
14430		ok := object.Key("ResourceAwsEc2InstanceType")
14431		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceType, ok); err != nil {
14432			return err
14433		}
14434	}
14435
14436	if v.ResourceAwsEc2InstanceVpcId != nil {
14437		ok := object.Key("ResourceAwsEc2InstanceVpcId")
14438		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsEc2InstanceVpcId, ok); err != nil {
14439			return err
14440		}
14441	}
14442
14443	if v.ResourceAwsIamAccessKeyCreatedAt != nil {
14444		ok := object.Key("ResourceAwsIamAccessKeyCreatedAt")
14445		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceAwsIamAccessKeyCreatedAt, ok); err != nil {
14446			return err
14447		}
14448	}
14449
14450	if v.ResourceAwsIamAccessKeyPrincipalName != nil {
14451		ok := object.Key("ResourceAwsIamAccessKeyPrincipalName")
14452		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamAccessKeyPrincipalName, ok); err != nil {
14453			return err
14454		}
14455	}
14456
14457	if v.ResourceAwsIamAccessKeyStatus != nil {
14458		ok := object.Key("ResourceAwsIamAccessKeyStatus")
14459		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamAccessKeyStatus, ok); err != nil {
14460			return err
14461		}
14462	}
14463
14464	if v.ResourceAwsIamAccessKeyUserName != nil {
14465		ok := object.Key("ResourceAwsIamAccessKeyUserName")
14466		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamAccessKeyUserName, ok); err != nil {
14467			return err
14468		}
14469	}
14470
14471	if v.ResourceAwsIamUserUserName != nil {
14472		ok := object.Key("ResourceAwsIamUserUserName")
14473		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsIamUserUserName, ok); err != nil {
14474			return err
14475		}
14476	}
14477
14478	if v.ResourceAwsS3BucketOwnerId != nil {
14479		ok := object.Key("ResourceAwsS3BucketOwnerId")
14480		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsS3BucketOwnerId, ok); err != nil {
14481			return err
14482		}
14483	}
14484
14485	if v.ResourceAwsS3BucketOwnerName != nil {
14486		ok := object.Key("ResourceAwsS3BucketOwnerName")
14487		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceAwsS3BucketOwnerName, ok); err != nil {
14488			return err
14489		}
14490	}
14491
14492	if v.ResourceContainerImageId != nil {
14493		ok := object.Key("ResourceContainerImageId")
14494		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerImageId, ok); err != nil {
14495			return err
14496		}
14497	}
14498
14499	if v.ResourceContainerImageName != nil {
14500		ok := object.Key("ResourceContainerImageName")
14501		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerImageName, ok); err != nil {
14502			return err
14503		}
14504	}
14505
14506	if v.ResourceContainerLaunchedAt != nil {
14507		ok := object.Key("ResourceContainerLaunchedAt")
14508		if err := awsRestjson1_serializeDocumentDateFilterList(v.ResourceContainerLaunchedAt, ok); err != nil {
14509			return err
14510		}
14511	}
14512
14513	if v.ResourceContainerName != nil {
14514		ok := object.Key("ResourceContainerName")
14515		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceContainerName, ok); err != nil {
14516			return err
14517		}
14518	}
14519
14520	if v.ResourceDetailsOther != nil {
14521		ok := object.Key("ResourceDetailsOther")
14522		if err := awsRestjson1_serializeDocumentMapFilterList(v.ResourceDetailsOther, ok); err != nil {
14523			return err
14524		}
14525	}
14526
14527	if v.ResourceId != nil {
14528		ok := object.Key("ResourceId")
14529		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceId, ok); err != nil {
14530			return err
14531		}
14532	}
14533
14534	if v.ResourcePartition != nil {
14535		ok := object.Key("ResourcePartition")
14536		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourcePartition, ok); err != nil {
14537			return err
14538		}
14539	}
14540
14541	if v.ResourceRegion != nil {
14542		ok := object.Key("ResourceRegion")
14543		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceRegion, ok); err != nil {
14544			return err
14545		}
14546	}
14547
14548	if v.ResourceTags != nil {
14549		ok := object.Key("ResourceTags")
14550		if err := awsRestjson1_serializeDocumentMapFilterList(v.ResourceTags, ok); err != nil {
14551			return err
14552		}
14553	}
14554
14555	if v.ResourceType != nil {
14556		ok := object.Key("ResourceType")
14557		if err := awsRestjson1_serializeDocumentStringFilterList(v.ResourceType, ok); err != nil {
14558			return err
14559		}
14560	}
14561
14562	if v.SeverityLabel != nil {
14563		ok := object.Key("SeverityLabel")
14564		if err := awsRestjson1_serializeDocumentStringFilterList(v.SeverityLabel, ok); err != nil {
14565			return err
14566		}
14567	}
14568
14569	if v.SeverityNormalized != nil {
14570		ok := object.Key("SeverityNormalized")
14571		if err := awsRestjson1_serializeDocumentNumberFilterList(v.SeverityNormalized, ok); err != nil {
14572			return err
14573		}
14574	}
14575
14576	if v.SeverityProduct != nil {
14577		ok := object.Key("SeverityProduct")
14578		if err := awsRestjson1_serializeDocumentNumberFilterList(v.SeverityProduct, ok); err != nil {
14579			return err
14580		}
14581	}
14582
14583	if v.SourceUrl != nil {
14584		ok := object.Key("SourceUrl")
14585		if err := awsRestjson1_serializeDocumentStringFilterList(v.SourceUrl, ok); err != nil {
14586			return err
14587		}
14588	}
14589
14590	if v.ThreatIntelIndicatorCategory != nil {
14591		ok := object.Key("ThreatIntelIndicatorCategory")
14592		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorCategory, ok); err != nil {
14593			return err
14594		}
14595	}
14596
14597	if v.ThreatIntelIndicatorLastObservedAt != nil {
14598		ok := object.Key("ThreatIntelIndicatorLastObservedAt")
14599		if err := awsRestjson1_serializeDocumentDateFilterList(v.ThreatIntelIndicatorLastObservedAt, ok); err != nil {
14600			return err
14601		}
14602	}
14603
14604	if v.ThreatIntelIndicatorSource != nil {
14605		ok := object.Key("ThreatIntelIndicatorSource")
14606		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorSource, ok); err != nil {
14607			return err
14608		}
14609	}
14610
14611	if v.ThreatIntelIndicatorSourceUrl != nil {
14612		ok := object.Key("ThreatIntelIndicatorSourceUrl")
14613		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorSourceUrl, ok); err != nil {
14614			return err
14615		}
14616	}
14617
14618	if v.ThreatIntelIndicatorType != nil {
14619		ok := object.Key("ThreatIntelIndicatorType")
14620		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorType, ok); err != nil {
14621			return err
14622		}
14623	}
14624
14625	if v.ThreatIntelIndicatorValue != nil {
14626		ok := object.Key("ThreatIntelIndicatorValue")
14627		if err := awsRestjson1_serializeDocumentStringFilterList(v.ThreatIntelIndicatorValue, ok); err != nil {
14628			return err
14629		}
14630	}
14631
14632	if v.Title != nil {
14633		ok := object.Key("Title")
14634		if err := awsRestjson1_serializeDocumentStringFilterList(v.Title, ok); err != nil {
14635			return err
14636		}
14637	}
14638
14639	if v.Type != nil {
14640		ok := object.Key("Type")
14641		if err := awsRestjson1_serializeDocumentStringFilterList(v.Type, ok); err != nil {
14642			return err
14643		}
14644	}
14645
14646	if v.UpdatedAt != nil {
14647		ok := object.Key("UpdatedAt")
14648		if err := awsRestjson1_serializeDocumentDateFilterList(v.UpdatedAt, ok); err != nil {
14649			return err
14650		}
14651	}
14652
14653	if v.UserDefinedFields != nil {
14654		ok := object.Key("UserDefinedFields")
14655		if err := awsRestjson1_serializeDocumentMapFilterList(v.UserDefinedFields, ok); err != nil {
14656			return err
14657		}
14658	}
14659
14660	if v.VerificationState != nil {
14661		ok := object.Key("VerificationState")
14662		if err := awsRestjson1_serializeDocumentStringFilterList(v.VerificationState, ok); err != nil {
14663			return err
14664		}
14665	}
14666
14667	if v.WorkflowState != nil {
14668		ok := object.Key("WorkflowState")
14669		if err := awsRestjson1_serializeDocumentStringFilterList(v.WorkflowState, ok); err != nil {
14670			return err
14671		}
14672	}
14673
14674	if v.WorkflowStatus != nil {
14675		ok := object.Key("WorkflowStatus")
14676		if err := awsRestjson1_serializeDocumentStringFilterList(v.WorkflowStatus, ok); err != nil {
14677			return err
14678		}
14679	}
14680
14681	return nil
14682}
14683
14684func awsRestjson1_serializeDocumentAwsSecurityFindingIdentifier(v *types.AwsSecurityFindingIdentifier, value smithyjson.Value) error {
14685	object := value.Object()
14686	defer object.Close()
14687
14688	if v.Id != nil {
14689		ok := object.Key("Id")
14690		ok.String(*v.Id)
14691	}
14692
14693	if v.ProductArn != nil {
14694		ok := object.Key("ProductArn")
14695		ok.String(*v.ProductArn)
14696	}
14697
14698	return nil
14699}
14700
14701func awsRestjson1_serializeDocumentAwsSecurityFindingIdentifierList(v []types.AwsSecurityFindingIdentifier, value smithyjson.Value) error {
14702	array := value.Array()
14703	defer array.Close()
14704
14705	for i := range v {
14706		av := array.Value()
14707		if err := awsRestjson1_serializeDocumentAwsSecurityFindingIdentifier(&v[i], av); err != nil {
14708			return err
14709		}
14710	}
14711	return nil
14712}
14713
14714func awsRestjson1_serializeDocumentAwsSnsTopicDetails(v *types.AwsSnsTopicDetails, value smithyjson.Value) error {
14715	object := value.Object()
14716	defer object.Close()
14717
14718	if v.KmsMasterKeyId != nil {
14719		ok := object.Key("KmsMasterKeyId")
14720		ok.String(*v.KmsMasterKeyId)
14721	}
14722
14723	if v.Owner != nil {
14724		ok := object.Key("Owner")
14725		ok.String(*v.Owner)
14726	}
14727
14728	if v.Subscription != nil {
14729		ok := object.Key("Subscription")
14730		if err := awsRestjson1_serializeDocumentAwsSnsTopicSubscriptionList(v.Subscription, ok); err != nil {
14731			return err
14732		}
14733	}
14734
14735	if v.TopicName != nil {
14736		ok := object.Key("TopicName")
14737		ok.String(*v.TopicName)
14738	}
14739
14740	return nil
14741}
14742
14743func awsRestjson1_serializeDocumentAwsSnsTopicSubscription(v *types.AwsSnsTopicSubscription, value smithyjson.Value) error {
14744	object := value.Object()
14745	defer object.Close()
14746
14747	if v.Endpoint != nil {
14748		ok := object.Key("Endpoint")
14749		ok.String(*v.Endpoint)
14750	}
14751
14752	if v.Protocol != nil {
14753		ok := object.Key("Protocol")
14754		ok.String(*v.Protocol)
14755	}
14756
14757	return nil
14758}
14759
14760func awsRestjson1_serializeDocumentAwsSnsTopicSubscriptionList(v []types.AwsSnsTopicSubscription, value smithyjson.Value) error {
14761	array := value.Array()
14762	defer array.Close()
14763
14764	for i := range v {
14765		av := array.Value()
14766		if err := awsRestjson1_serializeDocumentAwsSnsTopicSubscription(&v[i], av); err != nil {
14767			return err
14768		}
14769	}
14770	return nil
14771}
14772
14773func awsRestjson1_serializeDocumentAwsSqsQueueDetails(v *types.AwsSqsQueueDetails, value smithyjson.Value) error {
14774	object := value.Object()
14775	defer object.Close()
14776
14777	if v.DeadLetterTargetArn != nil {
14778		ok := object.Key("DeadLetterTargetArn")
14779		ok.String(*v.DeadLetterTargetArn)
14780	}
14781
14782	if v.KmsDataKeyReusePeriodSeconds != 0 {
14783		ok := object.Key("KmsDataKeyReusePeriodSeconds")
14784		ok.Integer(v.KmsDataKeyReusePeriodSeconds)
14785	}
14786
14787	if v.KmsMasterKeyId != nil {
14788		ok := object.Key("KmsMasterKeyId")
14789		ok.String(*v.KmsMasterKeyId)
14790	}
14791
14792	if v.QueueName != nil {
14793		ok := object.Key("QueueName")
14794		ok.String(*v.QueueName)
14795	}
14796
14797	return nil
14798}
14799
14800func awsRestjson1_serializeDocumentAwsSsmComplianceSummary(v *types.AwsSsmComplianceSummary, value smithyjson.Value) error {
14801	object := value.Object()
14802	defer object.Close()
14803
14804	if v.ComplianceType != nil {
14805		ok := object.Key("ComplianceType")
14806		ok.String(*v.ComplianceType)
14807	}
14808
14809	if v.CompliantCriticalCount != 0 {
14810		ok := object.Key("CompliantCriticalCount")
14811		ok.Integer(v.CompliantCriticalCount)
14812	}
14813
14814	if v.CompliantHighCount != 0 {
14815		ok := object.Key("CompliantHighCount")
14816		ok.Integer(v.CompliantHighCount)
14817	}
14818
14819	if v.CompliantInformationalCount != 0 {
14820		ok := object.Key("CompliantInformationalCount")
14821		ok.Integer(v.CompliantInformationalCount)
14822	}
14823
14824	if v.CompliantLowCount != 0 {
14825		ok := object.Key("CompliantLowCount")
14826		ok.Integer(v.CompliantLowCount)
14827	}
14828
14829	if v.CompliantMediumCount != 0 {
14830		ok := object.Key("CompliantMediumCount")
14831		ok.Integer(v.CompliantMediumCount)
14832	}
14833
14834	if v.CompliantUnspecifiedCount != 0 {
14835		ok := object.Key("CompliantUnspecifiedCount")
14836		ok.Integer(v.CompliantUnspecifiedCount)
14837	}
14838
14839	if v.ExecutionType != nil {
14840		ok := object.Key("ExecutionType")
14841		ok.String(*v.ExecutionType)
14842	}
14843
14844	if v.NonCompliantCriticalCount != 0 {
14845		ok := object.Key("NonCompliantCriticalCount")
14846		ok.Integer(v.NonCompliantCriticalCount)
14847	}
14848
14849	if v.NonCompliantHighCount != 0 {
14850		ok := object.Key("NonCompliantHighCount")
14851		ok.Integer(v.NonCompliantHighCount)
14852	}
14853
14854	if v.NonCompliantInformationalCount != 0 {
14855		ok := object.Key("NonCompliantInformationalCount")
14856		ok.Integer(v.NonCompliantInformationalCount)
14857	}
14858
14859	if v.NonCompliantLowCount != 0 {
14860		ok := object.Key("NonCompliantLowCount")
14861		ok.Integer(v.NonCompliantLowCount)
14862	}
14863
14864	if v.NonCompliantMediumCount != 0 {
14865		ok := object.Key("NonCompliantMediumCount")
14866		ok.Integer(v.NonCompliantMediumCount)
14867	}
14868
14869	if v.NonCompliantUnspecifiedCount != 0 {
14870		ok := object.Key("NonCompliantUnspecifiedCount")
14871		ok.Integer(v.NonCompliantUnspecifiedCount)
14872	}
14873
14874	if v.OverallSeverity != nil {
14875		ok := object.Key("OverallSeverity")
14876		ok.String(*v.OverallSeverity)
14877	}
14878
14879	if v.PatchBaselineId != nil {
14880		ok := object.Key("PatchBaselineId")
14881		ok.String(*v.PatchBaselineId)
14882	}
14883
14884	if v.PatchGroup != nil {
14885		ok := object.Key("PatchGroup")
14886		ok.String(*v.PatchGroup)
14887	}
14888
14889	if v.Status != nil {
14890		ok := object.Key("Status")
14891		ok.String(*v.Status)
14892	}
14893
14894	return nil
14895}
14896
14897func awsRestjson1_serializeDocumentAwsSsmPatch(v *types.AwsSsmPatch, value smithyjson.Value) error {
14898	object := value.Object()
14899	defer object.Close()
14900
14901	if v.ComplianceSummary != nil {
14902		ok := object.Key("ComplianceSummary")
14903		if err := awsRestjson1_serializeDocumentAwsSsmComplianceSummary(v.ComplianceSummary, ok); err != nil {
14904			return err
14905		}
14906	}
14907
14908	return nil
14909}
14910
14911func awsRestjson1_serializeDocumentAwsSsmPatchComplianceDetails(v *types.AwsSsmPatchComplianceDetails, value smithyjson.Value) error {
14912	object := value.Object()
14913	defer object.Close()
14914
14915	if v.Patch != nil {
14916		ok := object.Key("Patch")
14917		if err := awsRestjson1_serializeDocumentAwsSsmPatch(v.Patch, ok); err != nil {
14918			return err
14919		}
14920	}
14921
14922	return nil
14923}
14924
14925func awsRestjson1_serializeDocumentAwsWafWebAclDetails(v *types.AwsWafWebAclDetails, value smithyjson.Value) error {
14926	object := value.Object()
14927	defer object.Close()
14928
14929	if v.DefaultAction != nil {
14930		ok := object.Key("DefaultAction")
14931		ok.String(*v.DefaultAction)
14932	}
14933
14934	if v.Name != nil {
14935		ok := object.Key("Name")
14936		ok.String(*v.Name)
14937	}
14938
14939	if v.Rules != nil {
14940		ok := object.Key("Rules")
14941		if err := awsRestjson1_serializeDocumentAwsWafWebAclRuleList(v.Rules, ok); err != nil {
14942			return err
14943		}
14944	}
14945
14946	if v.WebAclId != nil {
14947		ok := object.Key("WebAclId")
14948		ok.String(*v.WebAclId)
14949	}
14950
14951	return nil
14952}
14953
14954func awsRestjson1_serializeDocumentAwsWafWebAclRule(v *types.AwsWafWebAclRule, value smithyjson.Value) error {
14955	object := value.Object()
14956	defer object.Close()
14957
14958	if v.Action != nil {
14959		ok := object.Key("Action")
14960		if err := awsRestjson1_serializeDocumentWafAction(v.Action, ok); err != nil {
14961			return err
14962		}
14963	}
14964
14965	if v.ExcludedRules != nil {
14966		ok := object.Key("ExcludedRules")
14967		if err := awsRestjson1_serializeDocumentWafExcludedRuleList(v.ExcludedRules, ok); err != nil {
14968			return err
14969		}
14970	}
14971
14972	if v.OverrideAction != nil {
14973		ok := object.Key("OverrideAction")
14974		if err := awsRestjson1_serializeDocumentWafOverrideAction(v.OverrideAction, ok); err != nil {
14975			return err
14976		}
14977	}
14978
14979	if v.Priority != 0 {
14980		ok := object.Key("Priority")
14981		ok.Integer(v.Priority)
14982	}
14983
14984	if v.RuleId != nil {
14985		ok := object.Key("RuleId")
14986		ok.String(*v.RuleId)
14987	}
14988
14989	if v.Type != nil {
14990		ok := object.Key("Type")
14991		ok.String(*v.Type)
14992	}
14993
14994	return nil
14995}
14996
14997func awsRestjson1_serializeDocumentAwsWafWebAclRuleList(v []types.AwsWafWebAclRule, value smithyjson.Value) error {
14998	array := value.Array()
14999	defer array.Close()
15000
15001	for i := range v {
15002		av := array.Value()
15003		if err := awsRestjson1_serializeDocumentAwsWafWebAclRule(&v[i], av); err != nil {
15004			return err
15005		}
15006	}
15007	return nil
15008}
15009
15010func awsRestjson1_serializeDocumentBatchImportFindingsRequestFindingList(v []types.AwsSecurityFinding, value smithyjson.Value) error {
15011	array := value.Array()
15012	defer array.Close()
15013
15014	for i := range v {
15015		av := array.Value()
15016		if err := awsRestjson1_serializeDocumentAwsSecurityFinding(&v[i], av); err != nil {
15017			return err
15018		}
15019	}
15020	return nil
15021}
15022
15023func awsRestjson1_serializeDocumentCell(v *types.Cell, value smithyjson.Value) error {
15024	object := value.Object()
15025	defer object.Close()
15026
15027	if v.CellReference != nil {
15028		ok := object.Key("CellReference")
15029		ok.String(*v.CellReference)
15030	}
15031
15032	if v.Column != 0 {
15033		ok := object.Key("Column")
15034		ok.Long(v.Column)
15035	}
15036
15037	if v.ColumnName != nil {
15038		ok := object.Key("ColumnName")
15039		ok.String(*v.ColumnName)
15040	}
15041
15042	if v.Row != 0 {
15043		ok := object.Key("Row")
15044		ok.Long(v.Row)
15045	}
15046
15047	return nil
15048}
15049
15050func awsRestjson1_serializeDocumentCells(v []types.Cell, value smithyjson.Value) error {
15051	array := value.Array()
15052	defer array.Close()
15053
15054	for i := range v {
15055		av := array.Value()
15056		if err := awsRestjson1_serializeDocumentCell(&v[i], av); err != nil {
15057			return err
15058		}
15059	}
15060	return nil
15061}
15062
15063func awsRestjson1_serializeDocumentCidrBlockAssociation(v *types.CidrBlockAssociation, value smithyjson.Value) error {
15064	object := value.Object()
15065	defer object.Close()
15066
15067	if v.AssociationId != nil {
15068		ok := object.Key("AssociationId")
15069		ok.String(*v.AssociationId)
15070	}
15071
15072	if v.CidrBlock != nil {
15073		ok := object.Key("CidrBlock")
15074		ok.String(*v.CidrBlock)
15075	}
15076
15077	if v.CidrBlockState != nil {
15078		ok := object.Key("CidrBlockState")
15079		ok.String(*v.CidrBlockState)
15080	}
15081
15082	return nil
15083}
15084
15085func awsRestjson1_serializeDocumentCidrBlockAssociationList(v []types.CidrBlockAssociation, value smithyjson.Value) error {
15086	array := value.Array()
15087	defer array.Close()
15088
15089	for i := range v {
15090		av := array.Value()
15091		if err := awsRestjson1_serializeDocumentCidrBlockAssociation(&v[i], av); err != nil {
15092			return err
15093		}
15094	}
15095	return nil
15096}
15097
15098func awsRestjson1_serializeDocumentCity(v *types.City, value smithyjson.Value) error {
15099	object := value.Object()
15100	defer object.Close()
15101
15102	if v.CityName != nil {
15103		ok := object.Key("CityName")
15104		ok.String(*v.CityName)
15105	}
15106
15107	return nil
15108}
15109
15110func awsRestjson1_serializeDocumentClassificationResult(v *types.ClassificationResult, value smithyjson.Value) error {
15111	object := value.Object()
15112	defer object.Close()
15113
15114	if v.AdditionalOccurrences {
15115		ok := object.Key("AdditionalOccurrences")
15116		ok.Boolean(v.AdditionalOccurrences)
15117	}
15118
15119	if v.CustomDataIdentifiers != nil {
15120		ok := object.Key("CustomDataIdentifiers")
15121		if err := awsRestjson1_serializeDocumentCustomDataIdentifiersResult(v.CustomDataIdentifiers, ok); err != nil {
15122			return err
15123		}
15124	}
15125
15126	if v.MimeType != nil {
15127		ok := object.Key("MimeType")
15128		ok.String(*v.MimeType)
15129	}
15130
15131	if v.SensitiveData != nil {
15132		ok := object.Key("SensitiveData")
15133		if err := awsRestjson1_serializeDocumentSensitiveDataResultList(v.SensitiveData, ok); err != nil {
15134			return err
15135		}
15136	}
15137
15138	if v.SizeClassified != 0 {
15139		ok := object.Key("SizeClassified")
15140		ok.Long(v.SizeClassified)
15141	}
15142
15143	if v.Status != nil {
15144		ok := object.Key("Status")
15145		if err := awsRestjson1_serializeDocumentClassificationStatus(v.Status, ok); err != nil {
15146			return err
15147		}
15148	}
15149
15150	return nil
15151}
15152
15153func awsRestjson1_serializeDocumentClassificationStatus(v *types.ClassificationStatus, value smithyjson.Value) error {
15154	object := value.Object()
15155	defer object.Close()
15156
15157	if v.Code != nil {
15158		ok := object.Key("Code")
15159		ok.String(*v.Code)
15160	}
15161
15162	if v.Reason != nil {
15163		ok := object.Key("Reason")
15164		ok.String(*v.Reason)
15165	}
15166
15167	return nil
15168}
15169
15170func awsRestjson1_serializeDocumentCompliance(v *types.Compliance, value smithyjson.Value) error {
15171	object := value.Object()
15172	defer object.Close()
15173
15174	if v.RelatedRequirements != nil {
15175		ok := object.Key("RelatedRequirements")
15176		if err := awsRestjson1_serializeDocumentRelatedRequirementsList(v.RelatedRequirements, ok); err != nil {
15177			return err
15178		}
15179	}
15180
15181	if len(v.Status) > 0 {
15182		ok := object.Key("Status")
15183		ok.String(string(v.Status))
15184	}
15185
15186	if v.StatusReasons != nil {
15187		ok := object.Key("StatusReasons")
15188		if err := awsRestjson1_serializeDocumentStatusReasonsList(v.StatusReasons, ok); err != nil {
15189			return err
15190		}
15191	}
15192
15193	return nil
15194}
15195
15196func awsRestjson1_serializeDocumentContainerDetails(v *types.ContainerDetails, value smithyjson.Value) error {
15197	object := value.Object()
15198	defer object.Close()
15199
15200	if v.ImageId != nil {
15201		ok := object.Key("ImageId")
15202		ok.String(*v.ImageId)
15203	}
15204
15205	if v.ImageName != nil {
15206		ok := object.Key("ImageName")
15207		ok.String(*v.ImageName)
15208	}
15209
15210	if v.LaunchedAt != nil {
15211		ok := object.Key("LaunchedAt")
15212		ok.String(*v.LaunchedAt)
15213	}
15214
15215	if v.Name != nil {
15216		ok := object.Key("Name")
15217		ok.String(*v.Name)
15218	}
15219
15220	return nil
15221}
15222
15223func awsRestjson1_serializeDocumentCountry(v *types.Country, value smithyjson.Value) error {
15224	object := value.Object()
15225	defer object.Close()
15226
15227	if v.CountryCode != nil {
15228		ok := object.Key("CountryCode")
15229		ok.String(*v.CountryCode)
15230	}
15231
15232	if v.CountryName != nil {
15233		ok := object.Key("CountryName")
15234		ok.String(*v.CountryName)
15235	}
15236
15237	return nil
15238}
15239
15240func awsRestjson1_serializeDocumentCustomDataIdentifiersDetections(v *types.CustomDataIdentifiersDetections, value smithyjson.Value) error {
15241	object := value.Object()
15242	defer object.Close()
15243
15244	if v.Arn != nil {
15245		ok := object.Key("Arn")
15246		ok.String(*v.Arn)
15247	}
15248
15249	if v.Count != 0 {
15250		ok := object.Key("Count")
15251		ok.Long(v.Count)
15252	}
15253
15254	if v.Name != nil {
15255		ok := object.Key("Name")
15256		ok.String(*v.Name)
15257	}
15258
15259	if v.Occurrences != nil {
15260		ok := object.Key("Occurrences")
15261		if err := awsRestjson1_serializeDocumentOccurrences(v.Occurrences, ok); err != nil {
15262			return err
15263		}
15264	}
15265
15266	return nil
15267}
15268
15269func awsRestjson1_serializeDocumentCustomDataIdentifiersDetectionsList(v []types.CustomDataIdentifiersDetections, value smithyjson.Value) error {
15270	array := value.Array()
15271	defer array.Close()
15272
15273	for i := range v {
15274		av := array.Value()
15275		if err := awsRestjson1_serializeDocumentCustomDataIdentifiersDetections(&v[i], av); err != nil {
15276			return err
15277		}
15278	}
15279	return nil
15280}
15281
15282func awsRestjson1_serializeDocumentCustomDataIdentifiersResult(v *types.CustomDataIdentifiersResult, value smithyjson.Value) error {
15283	object := value.Object()
15284	defer object.Close()
15285
15286	if v.Detections != nil {
15287		ok := object.Key("Detections")
15288		if err := awsRestjson1_serializeDocumentCustomDataIdentifiersDetectionsList(v.Detections, ok); err != nil {
15289			return err
15290		}
15291	}
15292
15293	if v.TotalCount != 0 {
15294		ok := object.Key("TotalCount")
15295		ok.Long(v.TotalCount)
15296	}
15297
15298	return nil
15299}
15300
15301func awsRestjson1_serializeDocumentCvss(v *types.Cvss, value smithyjson.Value) error {
15302	object := value.Object()
15303	defer object.Close()
15304
15305	if v.Adjustments != nil {
15306		ok := object.Key("Adjustments")
15307		if err := awsRestjson1_serializeDocumentAdjustmentList(v.Adjustments, ok); err != nil {
15308			return err
15309		}
15310	}
15311
15312	if v.BaseScore != 0 {
15313		ok := object.Key("BaseScore")
15314		switch {
15315		case math.IsNaN(v.BaseScore):
15316			ok.String("NaN")
15317
15318		case math.IsInf(v.BaseScore, 1):
15319			ok.String("Infinity")
15320
15321		case math.IsInf(v.BaseScore, -1):
15322			ok.String("-Infinity")
15323
15324		default:
15325			ok.Double(v.BaseScore)
15326
15327		}
15328	}
15329
15330	if v.BaseVector != nil {
15331		ok := object.Key("BaseVector")
15332		ok.String(*v.BaseVector)
15333	}
15334
15335	if v.Source != nil {
15336		ok := object.Key("Source")
15337		ok.String(*v.Source)
15338	}
15339
15340	if v.Version != nil {
15341		ok := object.Key("Version")
15342		ok.String(*v.Version)
15343	}
15344
15345	return nil
15346}
15347
15348func awsRestjson1_serializeDocumentCvssList(v []types.Cvss, value smithyjson.Value) error {
15349	array := value.Array()
15350	defer array.Close()
15351
15352	for i := range v {
15353		av := array.Value()
15354		if err := awsRestjson1_serializeDocumentCvss(&v[i], av); err != nil {
15355			return err
15356		}
15357	}
15358	return nil
15359}
15360
15361func awsRestjson1_serializeDocumentDataClassificationDetails(v *types.DataClassificationDetails, value smithyjson.Value) error {
15362	object := value.Object()
15363	defer object.Close()
15364
15365	if v.DetailedResultsLocation != nil {
15366		ok := object.Key("DetailedResultsLocation")
15367		ok.String(*v.DetailedResultsLocation)
15368	}
15369
15370	if v.Result != nil {
15371		ok := object.Key("Result")
15372		if err := awsRestjson1_serializeDocumentClassificationResult(v.Result, ok); err != nil {
15373			return err
15374		}
15375	}
15376
15377	return nil
15378}
15379
15380func awsRestjson1_serializeDocumentDateFilter(v *types.DateFilter, value smithyjson.Value) error {
15381	object := value.Object()
15382	defer object.Close()
15383
15384	if v.DateRange != nil {
15385		ok := object.Key("DateRange")
15386		if err := awsRestjson1_serializeDocumentDateRange(v.DateRange, ok); err != nil {
15387			return err
15388		}
15389	}
15390
15391	if v.End != nil {
15392		ok := object.Key("End")
15393		ok.String(*v.End)
15394	}
15395
15396	if v.Start != nil {
15397		ok := object.Key("Start")
15398		ok.String(*v.Start)
15399	}
15400
15401	return nil
15402}
15403
15404func awsRestjson1_serializeDocumentDateFilterList(v []types.DateFilter, value smithyjson.Value) error {
15405	array := value.Array()
15406	defer array.Close()
15407
15408	for i := range v {
15409		av := array.Value()
15410		if err := awsRestjson1_serializeDocumentDateFilter(&v[i], av); err != nil {
15411			return err
15412		}
15413	}
15414	return nil
15415}
15416
15417func awsRestjson1_serializeDocumentDateRange(v *types.DateRange, value smithyjson.Value) error {
15418	object := value.Object()
15419	defer object.Close()
15420
15421	if len(v.Unit) > 0 {
15422		ok := object.Key("Unit")
15423		ok.String(string(v.Unit))
15424	}
15425
15426	if v.Value != 0 {
15427		ok := object.Key("Value")
15428		ok.Integer(v.Value)
15429	}
15430
15431	return nil
15432}
15433
15434func awsRestjson1_serializeDocumentDnsRequestAction(v *types.DnsRequestAction, value smithyjson.Value) error {
15435	object := value.Object()
15436	defer object.Close()
15437
15438	if v.Blocked {
15439		ok := object.Key("Blocked")
15440		ok.Boolean(v.Blocked)
15441	}
15442
15443	if v.Domain != nil {
15444		ok := object.Key("Domain")
15445		ok.String(*v.Domain)
15446	}
15447
15448	if v.Protocol != nil {
15449		ok := object.Key("Protocol")
15450		ok.String(*v.Protocol)
15451	}
15452
15453	return nil
15454}
15455
15456func awsRestjson1_serializeDocumentFieldMap(v map[string]string, value smithyjson.Value) error {
15457	object := value.Object()
15458	defer object.Close()
15459
15460	for key := range v {
15461		om := object.Key(key)
15462		om.String(v[key])
15463	}
15464	return nil
15465}
15466
15467func awsRestjson1_serializeDocumentFindingProviderFields(v *types.FindingProviderFields, value smithyjson.Value) error {
15468	object := value.Object()
15469	defer object.Close()
15470
15471	if v.Confidence != 0 {
15472		ok := object.Key("Confidence")
15473		ok.Integer(v.Confidence)
15474	}
15475
15476	if v.Criticality != 0 {
15477		ok := object.Key("Criticality")
15478		ok.Integer(v.Criticality)
15479	}
15480
15481	if v.RelatedFindings != nil {
15482		ok := object.Key("RelatedFindings")
15483		if err := awsRestjson1_serializeDocumentRelatedFindingList(v.RelatedFindings, ok); err != nil {
15484			return err
15485		}
15486	}
15487
15488	if v.Severity != nil {
15489		ok := object.Key("Severity")
15490		if err := awsRestjson1_serializeDocumentFindingProviderSeverity(v.Severity, ok); err != nil {
15491			return err
15492		}
15493	}
15494
15495	if v.Types != nil {
15496		ok := object.Key("Types")
15497		if err := awsRestjson1_serializeDocumentTypeList(v.Types, ok); err != nil {
15498			return err
15499		}
15500	}
15501
15502	return nil
15503}
15504
15505func awsRestjson1_serializeDocumentFindingProviderSeverity(v *types.FindingProviderSeverity, value smithyjson.Value) error {
15506	object := value.Object()
15507	defer object.Close()
15508
15509	if len(v.Label) > 0 {
15510		ok := object.Key("Label")
15511		ok.String(string(v.Label))
15512	}
15513
15514	if v.Original != nil {
15515		ok := object.Key("Original")
15516		ok.String(*v.Original)
15517	}
15518
15519	return nil
15520}
15521
15522func awsRestjson1_serializeDocumentGeoLocation(v *types.GeoLocation, value smithyjson.Value) error {
15523	object := value.Object()
15524	defer object.Close()
15525
15526	if v.Lat != 0 {
15527		ok := object.Key("Lat")
15528		switch {
15529		case math.IsNaN(v.Lat):
15530			ok.String("NaN")
15531
15532		case math.IsInf(v.Lat, 1):
15533			ok.String("Infinity")
15534
15535		case math.IsInf(v.Lat, -1):
15536			ok.String("-Infinity")
15537
15538		default:
15539			ok.Double(v.Lat)
15540
15541		}
15542	}
15543
15544	if v.Lon != 0 {
15545		ok := object.Key("Lon")
15546		switch {
15547		case math.IsNaN(v.Lon):
15548			ok.String("NaN")
15549
15550		case math.IsInf(v.Lon, 1):
15551			ok.String("Infinity")
15552
15553		case math.IsInf(v.Lon, -1):
15554			ok.String("-Infinity")
15555
15556		default:
15557			ok.Double(v.Lon)
15558
15559		}
15560	}
15561
15562	return nil
15563}
15564
15565func awsRestjson1_serializeDocumentIcmpTypeCode(v *types.IcmpTypeCode, value smithyjson.Value) error {
15566	object := value.Object()
15567	defer object.Close()
15568
15569	if v.Code != 0 {
15570		ok := object.Key("Code")
15571		ok.Integer(v.Code)
15572	}
15573
15574	if v.Type != 0 {
15575		ok := object.Key("Type")
15576		ok.Integer(v.Type)
15577	}
15578
15579	return nil
15580}
15581
15582func awsRestjson1_serializeDocumentIntegerList(v []int32, value smithyjson.Value) error {
15583	array := value.Array()
15584	defer array.Close()
15585
15586	for i := range v {
15587		av := array.Value()
15588		av.Integer(v[i])
15589	}
15590	return nil
15591}
15592
15593func awsRestjson1_serializeDocumentIpFilter(v *types.IpFilter, value smithyjson.Value) error {
15594	object := value.Object()
15595	defer object.Close()
15596
15597	if v.Cidr != nil {
15598		ok := object.Key("Cidr")
15599		ok.String(*v.Cidr)
15600	}
15601
15602	return nil
15603}
15604
15605func awsRestjson1_serializeDocumentIpFilterList(v []types.IpFilter, value smithyjson.Value) error {
15606	array := value.Array()
15607	defer array.Close()
15608
15609	for i := range v {
15610		av := array.Value()
15611		if err := awsRestjson1_serializeDocumentIpFilter(&v[i], av); err != nil {
15612			return err
15613		}
15614	}
15615	return nil
15616}
15617
15618func awsRestjson1_serializeDocumentIpOrganizationDetails(v *types.IpOrganizationDetails, value smithyjson.Value) error {
15619	object := value.Object()
15620	defer object.Close()
15621
15622	if v.Asn != 0 {
15623		ok := object.Key("Asn")
15624		ok.Integer(v.Asn)
15625	}
15626
15627	if v.AsnOrg != nil {
15628		ok := object.Key("AsnOrg")
15629		ok.String(*v.AsnOrg)
15630	}
15631
15632	if v.Isp != nil {
15633		ok := object.Key("Isp")
15634		ok.String(*v.Isp)
15635	}
15636
15637	if v.Org != nil {
15638		ok := object.Key("Org")
15639		ok.String(*v.Org)
15640	}
15641
15642	return nil
15643}
15644
15645func awsRestjson1_serializeDocumentIpv6CidrBlockAssociation(v *types.Ipv6CidrBlockAssociation, value smithyjson.Value) error {
15646	object := value.Object()
15647	defer object.Close()
15648
15649	if v.AssociationId != nil {
15650		ok := object.Key("AssociationId")
15651		ok.String(*v.AssociationId)
15652	}
15653
15654	if v.CidrBlockState != nil {
15655		ok := object.Key("CidrBlockState")
15656		ok.String(*v.CidrBlockState)
15657	}
15658
15659	if v.Ipv6CidrBlock != nil {
15660		ok := object.Key("Ipv6CidrBlock")
15661		ok.String(*v.Ipv6CidrBlock)
15662	}
15663
15664	return nil
15665}
15666
15667func awsRestjson1_serializeDocumentIpv6CidrBlockAssociationList(v []types.Ipv6CidrBlockAssociation, value smithyjson.Value) error {
15668	array := value.Array()
15669	defer array.Close()
15670
15671	for i := range v {
15672		av := array.Value()
15673		if err := awsRestjson1_serializeDocumentIpv6CidrBlockAssociation(&v[i], av); err != nil {
15674			return err
15675		}
15676	}
15677	return nil
15678}
15679
15680func awsRestjson1_serializeDocumentKeywordFilter(v *types.KeywordFilter, value smithyjson.Value) error {
15681	object := value.Object()
15682	defer object.Close()
15683
15684	if v.Value != nil {
15685		ok := object.Key("Value")
15686		ok.String(*v.Value)
15687	}
15688
15689	return nil
15690}
15691
15692func awsRestjson1_serializeDocumentKeywordFilterList(v []types.KeywordFilter, value smithyjson.Value) error {
15693	array := value.Array()
15694	defer array.Close()
15695
15696	for i := range v {
15697		av := array.Value()
15698		if err := awsRestjson1_serializeDocumentKeywordFilter(&v[i], av); err != nil {
15699			return err
15700		}
15701	}
15702	return nil
15703}
15704
15705func awsRestjson1_serializeDocumentLoadBalancerState(v *types.LoadBalancerState, value smithyjson.Value) error {
15706	object := value.Object()
15707	defer object.Close()
15708
15709	if v.Code != nil {
15710		ok := object.Key("Code")
15711		ok.String(*v.Code)
15712	}
15713
15714	if v.Reason != nil {
15715		ok := object.Key("Reason")
15716		ok.String(*v.Reason)
15717	}
15718
15719	return nil
15720}
15721
15722func awsRestjson1_serializeDocumentMalware(v *types.Malware, value smithyjson.Value) error {
15723	object := value.Object()
15724	defer object.Close()
15725
15726	if v.Name != nil {
15727		ok := object.Key("Name")
15728		ok.String(*v.Name)
15729	}
15730
15731	if v.Path != nil {
15732		ok := object.Key("Path")
15733		ok.String(*v.Path)
15734	}
15735
15736	if len(v.State) > 0 {
15737		ok := object.Key("State")
15738		ok.String(string(v.State))
15739	}
15740
15741	if len(v.Type) > 0 {
15742		ok := object.Key("Type")
15743		ok.String(string(v.Type))
15744	}
15745
15746	return nil
15747}
15748
15749func awsRestjson1_serializeDocumentMalwareList(v []types.Malware, value smithyjson.Value) error {
15750	array := value.Array()
15751	defer array.Close()
15752
15753	for i := range v {
15754		av := array.Value()
15755		if err := awsRestjson1_serializeDocumentMalware(&v[i], av); err != nil {
15756			return err
15757		}
15758	}
15759	return nil
15760}
15761
15762func awsRestjson1_serializeDocumentMapFilter(v *types.MapFilter, value smithyjson.Value) error {
15763	object := value.Object()
15764	defer object.Close()
15765
15766	if len(v.Comparison) > 0 {
15767		ok := object.Key("Comparison")
15768		ok.String(string(v.Comparison))
15769	}
15770
15771	if v.Key != nil {
15772		ok := object.Key("Key")
15773		ok.String(*v.Key)
15774	}
15775
15776	if v.Value != nil {
15777		ok := object.Key("Value")
15778		ok.String(*v.Value)
15779	}
15780
15781	return nil
15782}
15783
15784func awsRestjson1_serializeDocumentMapFilterList(v []types.MapFilter, value smithyjson.Value) error {
15785	array := value.Array()
15786	defer array.Close()
15787
15788	for i := range v {
15789		av := array.Value()
15790		if err := awsRestjson1_serializeDocumentMapFilter(&v[i], av); err != nil {
15791			return err
15792		}
15793	}
15794	return nil
15795}
15796
15797func awsRestjson1_serializeDocumentNetwork(v *types.Network, value smithyjson.Value) error {
15798	object := value.Object()
15799	defer object.Close()
15800
15801	if v.DestinationDomain != nil {
15802		ok := object.Key("DestinationDomain")
15803		ok.String(*v.DestinationDomain)
15804	}
15805
15806	if v.DestinationIpV4 != nil {
15807		ok := object.Key("DestinationIpV4")
15808		ok.String(*v.DestinationIpV4)
15809	}
15810
15811	if v.DestinationIpV6 != nil {
15812		ok := object.Key("DestinationIpV6")
15813		ok.String(*v.DestinationIpV6)
15814	}
15815
15816	if v.DestinationPort != 0 {
15817		ok := object.Key("DestinationPort")
15818		ok.Integer(v.DestinationPort)
15819	}
15820
15821	if len(v.Direction) > 0 {
15822		ok := object.Key("Direction")
15823		ok.String(string(v.Direction))
15824	}
15825
15826	if v.OpenPortRange != nil {
15827		ok := object.Key("OpenPortRange")
15828		if err := awsRestjson1_serializeDocumentPortRange(v.OpenPortRange, ok); err != nil {
15829			return err
15830		}
15831	}
15832
15833	if v.Protocol != nil {
15834		ok := object.Key("Protocol")
15835		ok.String(*v.Protocol)
15836	}
15837
15838	if v.SourceDomain != nil {
15839		ok := object.Key("SourceDomain")
15840		ok.String(*v.SourceDomain)
15841	}
15842
15843	if v.SourceIpV4 != nil {
15844		ok := object.Key("SourceIpV4")
15845		ok.String(*v.SourceIpV4)
15846	}
15847
15848	if v.SourceIpV6 != nil {
15849		ok := object.Key("SourceIpV6")
15850		ok.String(*v.SourceIpV6)
15851	}
15852
15853	if v.SourceMac != nil {
15854		ok := object.Key("SourceMac")
15855		ok.String(*v.SourceMac)
15856	}
15857
15858	if v.SourcePort != 0 {
15859		ok := object.Key("SourcePort")
15860		ok.Integer(v.SourcePort)
15861	}
15862
15863	return nil
15864}
15865
15866func awsRestjson1_serializeDocumentNetworkConnectionAction(v *types.NetworkConnectionAction, value smithyjson.Value) error {
15867	object := value.Object()
15868	defer object.Close()
15869
15870	if v.Blocked {
15871		ok := object.Key("Blocked")
15872		ok.Boolean(v.Blocked)
15873	}
15874
15875	if v.ConnectionDirection != nil {
15876		ok := object.Key("ConnectionDirection")
15877		ok.String(*v.ConnectionDirection)
15878	}
15879
15880	if v.LocalPortDetails != nil {
15881		ok := object.Key("LocalPortDetails")
15882		if err := awsRestjson1_serializeDocumentActionLocalPortDetails(v.LocalPortDetails, ok); err != nil {
15883			return err
15884		}
15885	}
15886
15887	if v.Protocol != nil {
15888		ok := object.Key("Protocol")
15889		ok.String(*v.Protocol)
15890	}
15891
15892	if v.RemoteIpDetails != nil {
15893		ok := object.Key("RemoteIpDetails")
15894		if err := awsRestjson1_serializeDocumentActionRemoteIpDetails(v.RemoteIpDetails, ok); err != nil {
15895			return err
15896		}
15897	}
15898
15899	if v.RemotePortDetails != nil {
15900		ok := object.Key("RemotePortDetails")
15901		if err := awsRestjson1_serializeDocumentActionRemotePortDetails(v.RemotePortDetails, ok); err != nil {
15902			return err
15903		}
15904	}
15905
15906	return nil
15907}
15908
15909func awsRestjson1_serializeDocumentNetworkHeader(v *types.NetworkHeader, value smithyjson.Value) error {
15910	object := value.Object()
15911	defer object.Close()
15912
15913	if v.Destination != nil {
15914		ok := object.Key("Destination")
15915		if err := awsRestjson1_serializeDocumentNetworkPathComponentDetails(v.Destination, ok); err != nil {
15916			return err
15917		}
15918	}
15919
15920	if v.Protocol != nil {
15921		ok := object.Key("Protocol")
15922		ok.String(*v.Protocol)
15923	}
15924
15925	if v.Source != nil {
15926		ok := object.Key("Source")
15927		if err := awsRestjson1_serializeDocumentNetworkPathComponentDetails(v.Source, ok); err != nil {
15928			return err
15929		}
15930	}
15931
15932	return nil
15933}
15934
15935func awsRestjson1_serializeDocumentNetworkPathComponent(v *types.NetworkPathComponent, value smithyjson.Value) error {
15936	object := value.Object()
15937	defer object.Close()
15938
15939	if v.ComponentId != nil {
15940		ok := object.Key("ComponentId")
15941		ok.String(*v.ComponentId)
15942	}
15943
15944	if v.ComponentType != nil {
15945		ok := object.Key("ComponentType")
15946		ok.String(*v.ComponentType)
15947	}
15948
15949	if v.Egress != nil {
15950		ok := object.Key("Egress")
15951		if err := awsRestjson1_serializeDocumentNetworkHeader(v.Egress, ok); err != nil {
15952			return err
15953		}
15954	}
15955
15956	if v.Ingress != nil {
15957		ok := object.Key("Ingress")
15958		if err := awsRestjson1_serializeDocumentNetworkHeader(v.Ingress, ok); err != nil {
15959			return err
15960		}
15961	}
15962
15963	return nil
15964}
15965
15966func awsRestjson1_serializeDocumentNetworkPathComponentDetails(v *types.NetworkPathComponentDetails, value smithyjson.Value) error {
15967	object := value.Object()
15968	defer object.Close()
15969
15970	if v.Address != nil {
15971		ok := object.Key("Address")
15972		if err := awsRestjson1_serializeDocumentStringList(v.Address, ok); err != nil {
15973			return err
15974		}
15975	}
15976
15977	if v.PortRanges != nil {
15978		ok := object.Key("PortRanges")
15979		if err := awsRestjson1_serializeDocumentPortRangeList(v.PortRanges, ok); err != nil {
15980			return err
15981		}
15982	}
15983
15984	return nil
15985}
15986
15987func awsRestjson1_serializeDocumentNetworkPathList(v []types.NetworkPathComponent, value smithyjson.Value) error {
15988	array := value.Array()
15989	defer array.Close()
15990
15991	for i := range v {
15992		av := array.Value()
15993		if err := awsRestjson1_serializeDocumentNetworkPathComponent(&v[i], av); err != nil {
15994			return err
15995		}
15996	}
15997	return nil
15998}
15999
16000func awsRestjson1_serializeDocumentNonEmptyStringList(v []string, value smithyjson.Value) error {
16001	array := value.Array()
16002	defer array.Close()
16003
16004	for i := range v {
16005		av := array.Value()
16006		av.String(v[i])
16007	}
16008	return nil
16009}
16010
16011func awsRestjson1_serializeDocumentNote(v *types.Note, value smithyjson.Value) error {
16012	object := value.Object()
16013	defer object.Close()
16014
16015	if v.Text != nil {
16016		ok := object.Key("Text")
16017		ok.String(*v.Text)
16018	}
16019
16020	if v.UpdatedAt != nil {
16021		ok := object.Key("UpdatedAt")
16022		ok.String(*v.UpdatedAt)
16023	}
16024
16025	if v.UpdatedBy != nil {
16026		ok := object.Key("UpdatedBy")
16027		ok.String(*v.UpdatedBy)
16028	}
16029
16030	return nil
16031}
16032
16033func awsRestjson1_serializeDocumentNoteUpdate(v *types.NoteUpdate, value smithyjson.Value) error {
16034	object := value.Object()
16035	defer object.Close()
16036
16037	if v.Text != nil {
16038		ok := object.Key("Text")
16039		ok.String(*v.Text)
16040	}
16041
16042	if v.UpdatedBy != nil {
16043		ok := object.Key("UpdatedBy")
16044		ok.String(*v.UpdatedBy)
16045	}
16046
16047	return nil
16048}
16049
16050func awsRestjson1_serializeDocumentNumberFilter(v *types.NumberFilter, value smithyjson.Value) error {
16051	object := value.Object()
16052	defer object.Close()
16053
16054	if v.Eq != 0 {
16055		ok := object.Key("Eq")
16056		switch {
16057		case math.IsNaN(v.Eq):
16058			ok.String("NaN")
16059
16060		case math.IsInf(v.Eq, 1):
16061			ok.String("Infinity")
16062
16063		case math.IsInf(v.Eq, -1):
16064			ok.String("-Infinity")
16065
16066		default:
16067			ok.Double(v.Eq)
16068
16069		}
16070	}
16071
16072	if v.Gte != 0 {
16073		ok := object.Key("Gte")
16074		switch {
16075		case math.IsNaN(v.Gte):
16076			ok.String("NaN")
16077
16078		case math.IsInf(v.Gte, 1):
16079			ok.String("Infinity")
16080
16081		case math.IsInf(v.Gte, -1):
16082			ok.String("-Infinity")
16083
16084		default:
16085			ok.Double(v.Gte)
16086
16087		}
16088	}
16089
16090	if v.Lte != 0 {
16091		ok := object.Key("Lte")
16092		switch {
16093		case math.IsNaN(v.Lte):
16094			ok.String("NaN")
16095
16096		case math.IsInf(v.Lte, 1):
16097			ok.String("Infinity")
16098
16099		case math.IsInf(v.Lte, -1):
16100			ok.String("-Infinity")
16101
16102		default:
16103			ok.Double(v.Lte)
16104
16105		}
16106	}
16107
16108	return nil
16109}
16110
16111func awsRestjson1_serializeDocumentNumberFilterList(v []types.NumberFilter, value smithyjson.Value) error {
16112	array := value.Array()
16113	defer array.Close()
16114
16115	for i := range v {
16116		av := array.Value()
16117		if err := awsRestjson1_serializeDocumentNumberFilter(&v[i], av); err != nil {
16118			return err
16119		}
16120	}
16121	return nil
16122}
16123
16124func awsRestjson1_serializeDocumentOccurrences(v *types.Occurrences, value smithyjson.Value) error {
16125	object := value.Object()
16126	defer object.Close()
16127
16128	if v.Cells != nil {
16129		ok := object.Key("Cells")
16130		if err := awsRestjson1_serializeDocumentCells(v.Cells, ok); err != nil {
16131			return err
16132		}
16133	}
16134
16135	if v.LineRanges != nil {
16136		ok := object.Key("LineRanges")
16137		if err := awsRestjson1_serializeDocumentRanges(v.LineRanges, ok); err != nil {
16138			return err
16139		}
16140	}
16141
16142	if v.OffsetRanges != nil {
16143		ok := object.Key("OffsetRanges")
16144		if err := awsRestjson1_serializeDocumentRanges(v.OffsetRanges, ok); err != nil {
16145			return err
16146		}
16147	}
16148
16149	if v.Pages != nil {
16150		ok := object.Key("Pages")
16151		if err := awsRestjson1_serializeDocumentPages(v.Pages, ok); err != nil {
16152			return err
16153		}
16154	}
16155
16156	if v.Records != nil {
16157		ok := object.Key("Records")
16158		if err := awsRestjson1_serializeDocumentRecords(v.Records, ok); err != nil {
16159			return err
16160		}
16161	}
16162
16163	return nil
16164}
16165
16166func awsRestjson1_serializeDocumentPage(v *types.Page, value smithyjson.Value) error {
16167	object := value.Object()
16168	defer object.Close()
16169
16170	if v.LineRange != nil {
16171		ok := object.Key("LineRange")
16172		if err := awsRestjson1_serializeDocumentRange(v.LineRange, ok); err != nil {
16173			return err
16174		}
16175	}
16176
16177	if v.OffsetRange != nil {
16178		ok := object.Key("OffsetRange")
16179		if err := awsRestjson1_serializeDocumentRange(v.OffsetRange, ok); err != nil {
16180			return err
16181		}
16182	}
16183
16184	if v.PageNumber != 0 {
16185		ok := object.Key("PageNumber")
16186		ok.Long(v.PageNumber)
16187	}
16188
16189	return nil
16190}
16191
16192func awsRestjson1_serializeDocumentPages(v []types.Page, value smithyjson.Value) error {
16193	array := value.Array()
16194	defer array.Close()
16195
16196	for i := range v {
16197		av := array.Value()
16198		if err := awsRestjson1_serializeDocumentPage(&v[i], av); err != nil {
16199			return err
16200		}
16201	}
16202	return nil
16203}
16204
16205func awsRestjson1_serializeDocumentPatchSummary(v *types.PatchSummary, value smithyjson.Value) error {
16206	object := value.Object()
16207	defer object.Close()
16208
16209	if v.FailedCount != 0 {
16210		ok := object.Key("FailedCount")
16211		ok.Integer(v.FailedCount)
16212	}
16213
16214	if v.Id != nil {
16215		ok := object.Key("Id")
16216		ok.String(*v.Id)
16217	}
16218
16219	if v.InstalledCount != 0 {
16220		ok := object.Key("InstalledCount")
16221		ok.Integer(v.InstalledCount)
16222	}
16223
16224	if v.InstalledOtherCount != 0 {
16225		ok := object.Key("InstalledOtherCount")
16226		ok.Integer(v.InstalledOtherCount)
16227	}
16228
16229	if v.InstalledPendingReboot != 0 {
16230		ok := object.Key("InstalledPendingReboot")
16231		ok.Integer(v.InstalledPendingReboot)
16232	}
16233
16234	if v.InstalledRejectedCount != 0 {
16235		ok := object.Key("InstalledRejectedCount")
16236		ok.Integer(v.InstalledRejectedCount)
16237	}
16238
16239	if v.MissingCount != 0 {
16240		ok := object.Key("MissingCount")
16241		ok.Integer(v.MissingCount)
16242	}
16243
16244	if v.Operation != nil {
16245		ok := object.Key("Operation")
16246		ok.String(*v.Operation)
16247	}
16248
16249	if v.OperationEndTime != nil {
16250		ok := object.Key("OperationEndTime")
16251		ok.String(*v.OperationEndTime)
16252	}
16253
16254	if v.OperationStartTime != nil {
16255		ok := object.Key("OperationStartTime")
16256		ok.String(*v.OperationStartTime)
16257	}
16258
16259	if v.RebootOption != nil {
16260		ok := object.Key("RebootOption")
16261		ok.String(*v.RebootOption)
16262	}
16263
16264	return nil
16265}
16266
16267func awsRestjson1_serializeDocumentPortProbeAction(v *types.PortProbeAction, value smithyjson.Value) error {
16268	object := value.Object()
16269	defer object.Close()
16270
16271	if v.Blocked {
16272		ok := object.Key("Blocked")
16273		ok.Boolean(v.Blocked)
16274	}
16275
16276	if v.PortProbeDetails != nil {
16277		ok := object.Key("PortProbeDetails")
16278		if err := awsRestjson1_serializeDocumentPortProbeDetailList(v.PortProbeDetails, ok); err != nil {
16279			return err
16280		}
16281	}
16282
16283	return nil
16284}
16285
16286func awsRestjson1_serializeDocumentPortProbeDetail(v *types.PortProbeDetail, value smithyjson.Value) error {
16287	object := value.Object()
16288	defer object.Close()
16289
16290	if v.LocalIpDetails != nil {
16291		ok := object.Key("LocalIpDetails")
16292		if err := awsRestjson1_serializeDocumentActionLocalIpDetails(v.LocalIpDetails, ok); err != nil {
16293			return err
16294		}
16295	}
16296
16297	if v.LocalPortDetails != nil {
16298		ok := object.Key("LocalPortDetails")
16299		if err := awsRestjson1_serializeDocumentActionLocalPortDetails(v.LocalPortDetails, ok); err != nil {
16300			return err
16301		}
16302	}
16303
16304	if v.RemoteIpDetails != nil {
16305		ok := object.Key("RemoteIpDetails")
16306		if err := awsRestjson1_serializeDocumentActionRemoteIpDetails(v.RemoteIpDetails, ok); err != nil {
16307			return err
16308		}
16309	}
16310
16311	return nil
16312}
16313
16314func awsRestjson1_serializeDocumentPortProbeDetailList(v []types.PortProbeDetail, value smithyjson.Value) error {
16315	array := value.Array()
16316	defer array.Close()
16317
16318	for i := range v {
16319		av := array.Value()
16320		if err := awsRestjson1_serializeDocumentPortProbeDetail(&v[i], av); err != nil {
16321			return err
16322		}
16323	}
16324	return nil
16325}
16326
16327func awsRestjson1_serializeDocumentPortRange(v *types.PortRange, value smithyjson.Value) error {
16328	object := value.Object()
16329	defer object.Close()
16330
16331	if v.Begin != 0 {
16332		ok := object.Key("Begin")
16333		ok.Integer(v.Begin)
16334	}
16335
16336	if v.End != 0 {
16337		ok := object.Key("End")
16338		ok.Integer(v.End)
16339	}
16340
16341	return nil
16342}
16343
16344func awsRestjson1_serializeDocumentPortRangeFromTo(v *types.PortRangeFromTo, value smithyjson.Value) error {
16345	object := value.Object()
16346	defer object.Close()
16347
16348	if v.From != 0 {
16349		ok := object.Key("From")
16350		ok.Integer(v.From)
16351	}
16352
16353	if v.To != 0 {
16354		ok := object.Key("To")
16355		ok.Integer(v.To)
16356	}
16357
16358	return nil
16359}
16360
16361func awsRestjson1_serializeDocumentPortRangeList(v []types.PortRange, value smithyjson.Value) error {
16362	array := value.Array()
16363	defer array.Close()
16364
16365	for i := range v {
16366		av := array.Value()
16367		if err := awsRestjson1_serializeDocumentPortRange(&v[i], av); err != nil {
16368			return err
16369		}
16370	}
16371	return nil
16372}
16373
16374func awsRestjson1_serializeDocumentProcessDetails(v *types.ProcessDetails, value smithyjson.Value) error {
16375	object := value.Object()
16376	defer object.Close()
16377
16378	if v.LaunchedAt != nil {
16379		ok := object.Key("LaunchedAt")
16380		ok.String(*v.LaunchedAt)
16381	}
16382
16383	if v.Name != nil {
16384		ok := object.Key("Name")
16385		ok.String(*v.Name)
16386	}
16387
16388	if v.ParentPid != 0 {
16389		ok := object.Key("ParentPid")
16390		ok.Integer(v.ParentPid)
16391	}
16392
16393	if v.Path != nil {
16394		ok := object.Key("Path")
16395		ok.String(*v.Path)
16396	}
16397
16398	if v.Pid != 0 {
16399		ok := object.Key("Pid")
16400		ok.Integer(v.Pid)
16401	}
16402
16403	if v.TerminatedAt != nil {
16404		ok := object.Key("TerminatedAt")
16405		ok.String(*v.TerminatedAt)
16406	}
16407
16408	return nil
16409}
16410
16411func awsRestjson1_serializeDocumentRange(v *types.Range, value smithyjson.Value) error {
16412	object := value.Object()
16413	defer object.Close()
16414
16415	if v.End != 0 {
16416		ok := object.Key("End")
16417		ok.Long(v.End)
16418	}
16419
16420	if v.Start != 0 {
16421		ok := object.Key("Start")
16422		ok.Long(v.Start)
16423	}
16424
16425	if v.StartColumn != 0 {
16426		ok := object.Key("StartColumn")
16427		ok.Long(v.StartColumn)
16428	}
16429
16430	return nil
16431}
16432
16433func awsRestjson1_serializeDocumentRanges(v []types.Range, value smithyjson.Value) error {
16434	array := value.Array()
16435	defer array.Close()
16436
16437	for i := range v {
16438		av := array.Value()
16439		if err := awsRestjson1_serializeDocumentRange(&v[i], av); err != nil {
16440			return err
16441		}
16442	}
16443	return nil
16444}
16445
16446func awsRestjson1_serializeDocumentRecommendation(v *types.Recommendation, value smithyjson.Value) error {
16447	object := value.Object()
16448	defer object.Close()
16449
16450	if v.Text != nil {
16451		ok := object.Key("Text")
16452		ok.String(*v.Text)
16453	}
16454
16455	if v.Url != nil {
16456		ok := object.Key("Url")
16457		ok.String(*v.Url)
16458	}
16459
16460	return nil
16461}
16462
16463func awsRestjson1_serializeDocumentRecord(v *types.Record, value smithyjson.Value) error {
16464	object := value.Object()
16465	defer object.Close()
16466
16467	if v.JsonPath != nil {
16468		ok := object.Key("JsonPath")
16469		ok.String(*v.JsonPath)
16470	}
16471
16472	if v.RecordIndex != 0 {
16473		ok := object.Key("RecordIndex")
16474		ok.Long(v.RecordIndex)
16475	}
16476
16477	return nil
16478}
16479
16480func awsRestjson1_serializeDocumentRecords(v []types.Record, value smithyjson.Value) error {
16481	array := value.Array()
16482	defer array.Close()
16483
16484	for i := range v {
16485		av := array.Value()
16486		if err := awsRestjson1_serializeDocumentRecord(&v[i], av); err != nil {
16487			return err
16488		}
16489	}
16490	return nil
16491}
16492
16493func awsRestjson1_serializeDocumentRelatedFinding(v *types.RelatedFinding, value smithyjson.Value) error {
16494	object := value.Object()
16495	defer object.Close()
16496
16497	if v.Id != nil {
16498		ok := object.Key("Id")
16499		ok.String(*v.Id)
16500	}
16501
16502	if v.ProductArn != nil {
16503		ok := object.Key("ProductArn")
16504		ok.String(*v.ProductArn)
16505	}
16506
16507	return nil
16508}
16509
16510func awsRestjson1_serializeDocumentRelatedFindingList(v []types.RelatedFinding, value smithyjson.Value) error {
16511	array := value.Array()
16512	defer array.Close()
16513
16514	for i := range v {
16515		av := array.Value()
16516		if err := awsRestjson1_serializeDocumentRelatedFinding(&v[i], av); err != nil {
16517			return err
16518		}
16519	}
16520	return nil
16521}
16522
16523func awsRestjson1_serializeDocumentRelatedRequirementsList(v []string, value smithyjson.Value) error {
16524	array := value.Array()
16525	defer array.Close()
16526
16527	for i := range v {
16528		av := array.Value()
16529		av.String(v[i])
16530	}
16531	return nil
16532}
16533
16534func awsRestjson1_serializeDocumentRemediation(v *types.Remediation, value smithyjson.Value) error {
16535	object := value.Object()
16536	defer object.Close()
16537
16538	if v.Recommendation != nil {
16539		ok := object.Key("Recommendation")
16540		if err := awsRestjson1_serializeDocumentRecommendation(v.Recommendation, ok); err != nil {
16541			return err
16542		}
16543	}
16544
16545	return nil
16546}
16547
16548func awsRestjson1_serializeDocumentResource(v *types.Resource, value smithyjson.Value) error {
16549	object := value.Object()
16550	defer object.Close()
16551
16552	if v.DataClassification != nil {
16553		ok := object.Key("DataClassification")
16554		if err := awsRestjson1_serializeDocumentDataClassificationDetails(v.DataClassification, ok); err != nil {
16555			return err
16556		}
16557	}
16558
16559	if v.Details != nil {
16560		ok := object.Key("Details")
16561		if err := awsRestjson1_serializeDocumentResourceDetails(v.Details, ok); err != nil {
16562			return err
16563		}
16564	}
16565
16566	if v.Id != nil {
16567		ok := object.Key("Id")
16568		ok.String(*v.Id)
16569	}
16570
16571	if len(v.Partition) > 0 {
16572		ok := object.Key("Partition")
16573		ok.String(string(v.Partition))
16574	}
16575
16576	if v.Region != nil {
16577		ok := object.Key("Region")
16578		ok.String(*v.Region)
16579	}
16580
16581	if v.ResourceRole != nil {
16582		ok := object.Key("ResourceRole")
16583		ok.String(*v.ResourceRole)
16584	}
16585
16586	if v.Tags != nil {
16587		ok := object.Key("Tags")
16588		if err := awsRestjson1_serializeDocumentFieldMap(v.Tags, ok); err != nil {
16589			return err
16590		}
16591	}
16592
16593	if v.Type != nil {
16594		ok := object.Key("Type")
16595		ok.String(*v.Type)
16596	}
16597
16598	return nil
16599}
16600
16601func awsRestjson1_serializeDocumentResourceDetails(v *types.ResourceDetails, value smithyjson.Value) error {
16602	object := value.Object()
16603	defer object.Close()
16604
16605	if v.AwsApiGatewayRestApi != nil {
16606		ok := object.Key("AwsApiGatewayRestApi")
16607		if err := awsRestjson1_serializeDocumentAwsApiGatewayRestApiDetails(v.AwsApiGatewayRestApi, ok); err != nil {
16608			return err
16609		}
16610	}
16611
16612	if v.AwsApiGatewayStage != nil {
16613		ok := object.Key("AwsApiGatewayStage")
16614		if err := awsRestjson1_serializeDocumentAwsApiGatewayStageDetails(v.AwsApiGatewayStage, ok); err != nil {
16615			return err
16616		}
16617	}
16618
16619	if v.AwsApiGatewayV2Api != nil {
16620		ok := object.Key("AwsApiGatewayV2Api")
16621		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2ApiDetails(v.AwsApiGatewayV2Api, ok); err != nil {
16622			return err
16623		}
16624	}
16625
16626	if v.AwsApiGatewayV2Stage != nil {
16627		ok := object.Key("AwsApiGatewayV2Stage")
16628		if err := awsRestjson1_serializeDocumentAwsApiGatewayV2StageDetails(v.AwsApiGatewayV2Stage, ok); err != nil {
16629			return err
16630		}
16631	}
16632
16633	if v.AwsAutoScalingAutoScalingGroup != nil {
16634		ok := object.Key("AwsAutoScalingAutoScalingGroup")
16635		if err := awsRestjson1_serializeDocumentAwsAutoScalingAutoScalingGroupDetails(v.AwsAutoScalingAutoScalingGroup, ok); err != nil {
16636			return err
16637		}
16638	}
16639
16640	if v.AwsAutoScalingLaunchConfiguration != nil {
16641		ok := object.Key("AwsAutoScalingLaunchConfiguration")
16642		if err := awsRestjson1_serializeDocumentAwsAutoScalingLaunchConfigurationDetails(v.AwsAutoScalingLaunchConfiguration, ok); err != nil {
16643			return err
16644		}
16645	}
16646
16647	if v.AwsCertificateManagerCertificate != nil {
16648		ok := object.Key("AwsCertificateManagerCertificate")
16649		if err := awsRestjson1_serializeDocumentAwsCertificateManagerCertificateDetails(v.AwsCertificateManagerCertificate, ok); err != nil {
16650			return err
16651		}
16652	}
16653
16654	if v.AwsCloudFrontDistribution != nil {
16655		ok := object.Key("AwsCloudFrontDistribution")
16656		if err := awsRestjson1_serializeDocumentAwsCloudFrontDistributionDetails(v.AwsCloudFrontDistribution, ok); err != nil {
16657			return err
16658		}
16659	}
16660
16661	if v.AwsCloudTrailTrail != nil {
16662		ok := object.Key("AwsCloudTrailTrail")
16663		if err := awsRestjson1_serializeDocumentAwsCloudTrailTrailDetails(v.AwsCloudTrailTrail, ok); err != nil {
16664			return err
16665		}
16666	}
16667
16668	if v.AwsCodeBuildProject != nil {
16669		ok := object.Key("AwsCodeBuildProject")
16670		if err := awsRestjson1_serializeDocumentAwsCodeBuildProjectDetails(v.AwsCodeBuildProject, ok); err != nil {
16671			return err
16672		}
16673	}
16674
16675	if v.AwsDynamoDbTable != nil {
16676		ok := object.Key("AwsDynamoDbTable")
16677		if err := awsRestjson1_serializeDocumentAwsDynamoDbTableDetails(v.AwsDynamoDbTable, ok); err != nil {
16678			return err
16679		}
16680	}
16681
16682	if v.AwsEc2Eip != nil {
16683		ok := object.Key("AwsEc2Eip")
16684		if err := awsRestjson1_serializeDocumentAwsEc2EipDetails(v.AwsEc2Eip, ok); err != nil {
16685			return err
16686		}
16687	}
16688
16689	if v.AwsEc2Instance != nil {
16690		ok := object.Key("AwsEc2Instance")
16691		if err := awsRestjson1_serializeDocumentAwsEc2InstanceDetails(v.AwsEc2Instance, ok); err != nil {
16692			return err
16693		}
16694	}
16695
16696	if v.AwsEc2NetworkAcl != nil {
16697		ok := object.Key("AwsEc2NetworkAcl")
16698		if err := awsRestjson1_serializeDocumentAwsEc2NetworkAclDetails(v.AwsEc2NetworkAcl, ok); err != nil {
16699			return err
16700		}
16701	}
16702
16703	if v.AwsEc2NetworkInterface != nil {
16704		ok := object.Key("AwsEc2NetworkInterface")
16705		if err := awsRestjson1_serializeDocumentAwsEc2NetworkInterfaceDetails(v.AwsEc2NetworkInterface, ok); err != nil {
16706			return err
16707		}
16708	}
16709
16710	if v.AwsEc2SecurityGroup != nil {
16711		ok := object.Key("AwsEc2SecurityGroup")
16712		if err := awsRestjson1_serializeDocumentAwsEc2SecurityGroupDetails(v.AwsEc2SecurityGroup, ok); err != nil {
16713			return err
16714		}
16715	}
16716
16717	if v.AwsEc2Subnet != nil {
16718		ok := object.Key("AwsEc2Subnet")
16719		if err := awsRestjson1_serializeDocumentAwsEc2SubnetDetails(v.AwsEc2Subnet, ok); err != nil {
16720			return err
16721		}
16722	}
16723
16724	if v.AwsEc2Volume != nil {
16725		ok := object.Key("AwsEc2Volume")
16726		if err := awsRestjson1_serializeDocumentAwsEc2VolumeDetails(v.AwsEc2Volume, ok); err != nil {
16727			return err
16728		}
16729	}
16730
16731	if v.AwsEc2Vpc != nil {
16732		ok := object.Key("AwsEc2Vpc")
16733		if err := awsRestjson1_serializeDocumentAwsEc2VpcDetails(v.AwsEc2Vpc, ok); err != nil {
16734			return err
16735		}
16736	}
16737
16738	if v.AwsEc2VpnConnection != nil {
16739		ok := object.Key("AwsEc2VpnConnection")
16740		if err := awsRestjson1_serializeDocumentAwsEc2VpnConnectionDetails(v.AwsEc2VpnConnection, ok); err != nil {
16741			return err
16742		}
16743	}
16744
16745	if v.AwsEcrContainerImage != nil {
16746		ok := object.Key("AwsEcrContainerImage")
16747		if err := awsRestjson1_serializeDocumentAwsEcrContainerImageDetails(v.AwsEcrContainerImage, ok); err != nil {
16748			return err
16749		}
16750	}
16751
16752	if v.AwsEcsCluster != nil {
16753		ok := object.Key("AwsEcsCluster")
16754		if err := awsRestjson1_serializeDocumentAwsEcsClusterDetails(v.AwsEcsCluster, ok); err != nil {
16755			return err
16756		}
16757	}
16758
16759	if v.AwsEcsService != nil {
16760		ok := object.Key("AwsEcsService")
16761		if err := awsRestjson1_serializeDocumentAwsEcsServiceDetails(v.AwsEcsService, ok); err != nil {
16762			return err
16763		}
16764	}
16765
16766	if v.AwsEcsTaskDefinition != nil {
16767		ok := object.Key("AwsEcsTaskDefinition")
16768		if err := awsRestjson1_serializeDocumentAwsEcsTaskDefinitionDetails(v.AwsEcsTaskDefinition, ok); err != nil {
16769			return err
16770		}
16771	}
16772
16773	if v.AwsElasticBeanstalkEnvironment != nil {
16774		ok := object.Key("AwsElasticBeanstalkEnvironment")
16775		if err := awsRestjson1_serializeDocumentAwsElasticBeanstalkEnvironmentDetails(v.AwsElasticBeanstalkEnvironment, ok); err != nil {
16776			return err
16777		}
16778	}
16779
16780	if v.AwsElasticsearchDomain != nil {
16781		ok := object.Key("AwsElasticsearchDomain")
16782		if err := awsRestjson1_serializeDocumentAwsElasticsearchDomainDetails(v.AwsElasticsearchDomain, ok); err != nil {
16783			return err
16784		}
16785	}
16786
16787	if v.AwsElbLoadBalancer != nil {
16788		ok := object.Key("AwsElbLoadBalancer")
16789		if err := awsRestjson1_serializeDocumentAwsElbLoadBalancerDetails(v.AwsElbLoadBalancer, ok); err != nil {
16790			return err
16791		}
16792	}
16793
16794	if v.AwsElbv2LoadBalancer != nil {
16795		ok := object.Key("AwsElbv2LoadBalancer")
16796		if err := awsRestjson1_serializeDocumentAwsElbv2LoadBalancerDetails(v.AwsElbv2LoadBalancer, ok); err != nil {
16797			return err
16798		}
16799	}
16800
16801	if v.AwsIamAccessKey != nil {
16802		ok := object.Key("AwsIamAccessKey")
16803		if err := awsRestjson1_serializeDocumentAwsIamAccessKeyDetails(v.AwsIamAccessKey, ok); err != nil {
16804			return err
16805		}
16806	}
16807
16808	if v.AwsIamGroup != nil {
16809		ok := object.Key("AwsIamGroup")
16810		if err := awsRestjson1_serializeDocumentAwsIamGroupDetails(v.AwsIamGroup, ok); err != nil {
16811			return err
16812		}
16813	}
16814
16815	if v.AwsIamPolicy != nil {
16816		ok := object.Key("AwsIamPolicy")
16817		if err := awsRestjson1_serializeDocumentAwsIamPolicyDetails(v.AwsIamPolicy, ok); err != nil {
16818			return err
16819		}
16820	}
16821
16822	if v.AwsIamRole != nil {
16823		ok := object.Key("AwsIamRole")
16824		if err := awsRestjson1_serializeDocumentAwsIamRoleDetails(v.AwsIamRole, ok); err != nil {
16825			return err
16826		}
16827	}
16828
16829	if v.AwsIamUser != nil {
16830		ok := object.Key("AwsIamUser")
16831		if err := awsRestjson1_serializeDocumentAwsIamUserDetails(v.AwsIamUser, ok); err != nil {
16832			return err
16833		}
16834	}
16835
16836	if v.AwsKmsKey != nil {
16837		ok := object.Key("AwsKmsKey")
16838		if err := awsRestjson1_serializeDocumentAwsKmsKeyDetails(v.AwsKmsKey, ok); err != nil {
16839			return err
16840		}
16841	}
16842
16843	if v.AwsLambdaFunction != nil {
16844		ok := object.Key("AwsLambdaFunction")
16845		if err := awsRestjson1_serializeDocumentAwsLambdaFunctionDetails(v.AwsLambdaFunction, ok); err != nil {
16846			return err
16847		}
16848	}
16849
16850	if v.AwsLambdaLayerVersion != nil {
16851		ok := object.Key("AwsLambdaLayerVersion")
16852		if err := awsRestjson1_serializeDocumentAwsLambdaLayerVersionDetails(v.AwsLambdaLayerVersion, ok); err != nil {
16853			return err
16854		}
16855	}
16856
16857	if v.AwsRdsDbCluster != nil {
16858		ok := object.Key("AwsRdsDbCluster")
16859		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterDetails(v.AwsRdsDbCluster, ok); err != nil {
16860			return err
16861		}
16862	}
16863
16864	if v.AwsRdsDbClusterSnapshot != nil {
16865		ok := object.Key("AwsRdsDbClusterSnapshot")
16866		if err := awsRestjson1_serializeDocumentAwsRdsDbClusterSnapshotDetails(v.AwsRdsDbClusterSnapshot, ok); err != nil {
16867			return err
16868		}
16869	}
16870
16871	if v.AwsRdsDbInstance != nil {
16872		ok := object.Key("AwsRdsDbInstance")
16873		if err := awsRestjson1_serializeDocumentAwsRdsDbInstanceDetails(v.AwsRdsDbInstance, ok); err != nil {
16874			return err
16875		}
16876	}
16877
16878	if v.AwsRdsDbSnapshot != nil {
16879		ok := object.Key("AwsRdsDbSnapshot")
16880		if err := awsRestjson1_serializeDocumentAwsRdsDbSnapshotDetails(v.AwsRdsDbSnapshot, ok); err != nil {
16881			return err
16882		}
16883	}
16884
16885	if v.AwsRdsEventSubscription != nil {
16886		ok := object.Key("AwsRdsEventSubscription")
16887		if err := awsRestjson1_serializeDocumentAwsRdsEventSubscriptionDetails(v.AwsRdsEventSubscription, ok); err != nil {
16888			return err
16889		}
16890	}
16891
16892	if v.AwsRedshiftCluster != nil {
16893		ok := object.Key("AwsRedshiftCluster")
16894		if err := awsRestjson1_serializeDocumentAwsRedshiftClusterDetails(v.AwsRedshiftCluster, ok); err != nil {
16895			return err
16896		}
16897	}
16898
16899	if v.AwsS3AccountPublicAccessBlock != nil {
16900		ok := object.Key("AwsS3AccountPublicAccessBlock")
16901		if err := awsRestjson1_serializeDocumentAwsS3AccountPublicAccessBlockDetails(v.AwsS3AccountPublicAccessBlock, ok); err != nil {
16902			return err
16903		}
16904	}
16905
16906	if v.AwsS3Bucket != nil {
16907		ok := object.Key("AwsS3Bucket")
16908		if err := awsRestjson1_serializeDocumentAwsS3BucketDetails(v.AwsS3Bucket, ok); err != nil {
16909			return err
16910		}
16911	}
16912
16913	if v.AwsS3Object != nil {
16914		ok := object.Key("AwsS3Object")
16915		if err := awsRestjson1_serializeDocumentAwsS3ObjectDetails(v.AwsS3Object, ok); err != nil {
16916			return err
16917		}
16918	}
16919
16920	if v.AwsSecretsManagerSecret != nil {
16921		ok := object.Key("AwsSecretsManagerSecret")
16922		if err := awsRestjson1_serializeDocumentAwsSecretsManagerSecretDetails(v.AwsSecretsManagerSecret, ok); err != nil {
16923			return err
16924		}
16925	}
16926
16927	if v.AwsSnsTopic != nil {
16928		ok := object.Key("AwsSnsTopic")
16929		if err := awsRestjson1_serializeDocumentAwsSnsTopicDetails(v.AwsSnsTopic, ok); err != nil {
16930			return err
16931		}
16932	}
16933
16934	if v.AwsSqsQueue != nil {
16935		ok := object.Key("AwsSqsQueue")
16936		if err := awsRestjson1_serializeDocumentAwsSqsQueueDetails(v.AwsSqsQueue, ok); err != nil {
16937			return err
16938		}
16939	}
16940
16941	if v.AwsSsmPatchCompliance != nil {
16942		ok := object.Key("AwsSsmPatchCompliance")
16943		if err := awsRestjson1_serializeDocumentAwsSsmPatchComplianceDetails(v.AwsSsmPatchCompliance, ok); err != nil {
16944			return err
16945		}
16946	}
16947
16948	if v.AwsWafWebAcl != nil {
16949		ok := object.Key("AwsWafWebAcl")
16950		if err := awsRestjson1_serializeDocumentAwsWafWebAclDetails(v.AwsWafWebAcl, ok); err != nil {
16951			return err
16952		}
16953	}
16954
16955	if v.Container != nil {
16956		ok := object.Key("Container")
16957		if err := awsRestjson1_serializeDocumentContainerDetails(v.Container, ok); err != nil {
16958			return err
16959		}
16960	}
16961
16962	if v.Other != nil {
16963		ok := object.Key("Other")
16964		if err := awsRestjson1_serializeDocumentFieldMap(v.Other, ok); err != nil {
16965			return err
16966		}
16967	}
16968
16969	return nil
16970}
16971
16972func awsRestjson1_serializeDocumentResourceList(v []types.Resource, value smithyjson.Value) error {
16973	array := value.Array()
16974	defer array.Close()
16975
16976	for i := range v {
16977		av := array.Value()
16978		if err := awsRestjson1_serializeDocumentResource(&v[i], av); err != nil {
16979			return err
16980		}
16981	}
16982	return nil
16983}
16984
16985func awsRestjson1_serializeDocumentSecurityGroups(v []string, value smithyjson.Value) error {
16986	array := value.Array()
16987	defer array.Close()
16988
16989	for i := range v {
16990		av := array.Value()
16991		av.String(v[i])
16992	}
16993	return nil
16994}
16995
16996func awsRestjson1_serializeDocumentSensitiveDataDetections(v *types.SensitiveDataDetections, value smithyjson.Value) error {
16997	object := value.Object()
16998	defer object.Close()
16999
17000	if v.Count != 0 {
17001		ok := object.Key("Count")
17002		ok.Long(v.Count)
17003	}
17004
17005	if v.Occurrences != nil {
17006		ok := object.Key("Occurrences")
17007		if err := awsRestjson1_serializeDocumentOccurrences(v.Occurrences, ok); err != nil {
17008			return err
17009		}
17010	}
17011
17012	if v.Type != nil {
17013		ok := object.Key("Type")
17014		ok.String(*v.Type)
17015	}
17016
17017	return nil
17018}
17019
17020func awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v []types.SensitiveDataDetections, value smithyjson.Value) error {
17021	array := value.Array()
17022	defer array.Close()
17023
17024	for i := range v {
17025		av := array.Value()
17026		if err := awsRestjson1_serializeDocumentSensitiveDataDetections(&v[i], av); err != nil {
17027			return err
17028		}
17029	}
17030	return nil
17031}
17032
17033func awsRestjson1_serializeDocumentSensitiveDataResult(v *types.SensitiveDataResult, value smithyjson.Value) error {
17034	object := value.Object()
17035	defer object.Close()
17036
17037	if v.Category != nil {
17038		ok := object.Key("Category")
17039		ok.String(*v.Category)
17040	}
17041
17042	if v.Detections != nil {
17043		ok := object.Key("Detections")
17044		if err := awsRestjson1_serializeDocumentSensitiveDataDetectionsList(v.Detections, ok); err != nil {
17045			return err
17046		}
17047	}
17048
17049	if v.TotalCount != 0 {
17050		ok := object.Key("TotalCount")
17051		ok.Long(v.TotalCount)
17052	}
17053
17054	return nil
17055}
17056
17057func awsRestjson1_serializeDocumentSensitiveDataResultList(v []types.SensitiveDataResult, value smithyjson.Value) error {
17058	array := value.Array()
17059	defer array.Close()
17060
17061	for i := range v {
17062		av := array.Value()
17063		if err := awsRestjson1_serializeDocumentSensitiveDataResult(&v[i], av); err != nil {
17064			return err
17065		}
17066	}
17067	return nil
17068}
17069
17070func awsRestjson1_serializeDocumentSeverity(v *types.Severity, value smithyjson.Value) error {
17071	object := value.Object()
17072	defer object.Close()
17073
17074	if len(v.Label) > 0 {
17075		ok := object.Key("Label")
17076		ok.String(string(v.Label))
17077	}
17078
17079	if v.Normalized != 0 {
17080		ok := object.Key("Normalized")
17081		ok.Integer(v.Normalized)
17082	}
17083
17084	if v.Original != nil {
17085		ok := object.Key("Original")
17086		ok.String(*v.Original)
17087	}
17088
17089	if v.Product != 0 {
17090		ok := object.Key("Product")
17091		switch {
17092		case math.IsNaN(v.Product):
17093			ok.String("NaN")
17094
17095		case math.IsInf(v.Product, 1):
17096			ok.String("Infinity")
17097
17098		case math.IsInf(v.Product, -1):
17099			ok.String("-Infinity")
17100
17101		default:
17102			ok.Double(v.Product)
17103
17104		}
17105	}
17106
17107	return nil
17108}
17109
17110func awsRestjson1_serializeDocumentSeverityUpdate(v *types.SeverityUpdate, value smithyjson.Value) error {
17111	object := value.Object()
17112	defer object.Close()
17113
17114	if len(v.Label) > 0 {
17115		ok := object.Key("Label")
17116		ok.String(string(v.Label))
17117	}
17118
17119	if v.Normalized != 0 {
17120		ok := object.Key("Normalized")
17121		ok.Integer(v.Normalized)
17122	}
17123
17124	if v.Product != 0 {
17125		ok := object.Key("Product")
17126		switch {
17127		case math.IsNaN(v.Product):
17128			ok.String("NaN")
17129
17130		case math.IsInf(v.Product, 1):
17131			ok.String("Infinity")
17132
17133		case math.IsInf(v.Product, -1):
17134			ok.String("-Infinity")
17135
17136		default:
17137			ok.Double(v.Product)
17138
17139		}
17140	}
17141
17142	return nil
17143}
17144
17145func awsRestjson1_serializeDocumentSoftwarePackage(v *types.SoftwarePackage, value smithyjson.Value) error {
17146	object := value.Object()
17147	defer object.Close()
17148
17149	if v.Architecture != nil {
17150		ok := object.Key("Architecture")
17151		ok.String(*v.Architecture)
17152	}
17153
17154	if v.Epoch != nil {
17155		ok := object.Key("Epoch")
17156		ok.String(*v.Epoch)
17157	}
17158
17159	if v.FilePath != nil {
17160		ok := object.Key("FilePath")
17161		ok.String(*v.FilePath)
17162	}
17163
17164	if v.Name != nil {
17165		ok := object.Key("Name")
17166		ok.String(*v.Name)
17167	}
17168
17169	if v.PackageManager != nil {
17170		ok := object.Key("PackageManager")
17171		ok.String(*v.PackageManager)
17172	}
17173
17174	if v.Release != nil {
17175		ok := object.Key("Release")
17176		ok.String(*v.Release)
17177	}
17178
17179	if v.Version != nil {
17180		ok := object.Key("Version")
17181		ok.String(*v.Version)
17182	}
17183
17184	return nil
17185}
17186
17187func awsRestjson1_serializeDocumentSoftwarePackageList(v []types.SoftwarePackage, value smithyjson.Value) error {
17188	array := value.Array()
17189	defer array.Close()
17190
17191	for i := range v {
17192		av := array.Value()
17193		if err := awsRestjson1_serializeDocumentSoftwarePackage(&v[i], av); err != nil {
17194			return err
17195		}
17196	}
17197	return nil
17198}
17199
17200func awsRestjson1_serializeDocumentSortCriteria(v []types.SortCriterion, value smithyjson.Value) error {
17201	array := value.Array()
17202	defer array.Close()
17203
17204	for i := range v {
17205		av := array.Value()
17206		if err := awsRestjson1_serializeDocumentSortCriterion(&v[i], av); err != nil {
17207			return err
17208		}
17209	}
17210	return nil
17211}
17212
17213func awsRestjson1_serializeDocumentSortCriterion(v *types.SortCriterion, value smithyjson.Value) error {
17214	object := value.Object()
17215	defer object.Close()
17216
17217	if v.Field != nil {
17218		ok := object.Key("Field")
17219		ok.String(*v.Field)
17220	}
17221
17222	if len(v.SortOrder) > 0 {
17223		ok := object.Key("SortOrder")
17224		ok.String(string(v.SortOrder))
17225	}
17226
17227	return nil
17228}
17229
17230func awsRestjson1_serializeDocumentStandardsInputParameterMap(v map[string]string, value smithyjson.Value) error {
17231	object := value.Object()
17232	defer object.Close()
17233
17234	for key := range v {
17235		om := object.Key(key)
17236		om.String(v[key])
17237	}
17238	return nil
17239}
17240
17241func awsRestjson1_serializeDocumentStandardsSubscriptionArns(v []string, value smithyjson.Value) error {
17242	array := value.Array()
17243	defer array.Close()
17244
17245	for i := range v {
17246		av := array.Value()
17247		av.String(v[i])
17248	}
17249	return nil
17250}
17251
17252func awsRestjson1_serializeDocumentStandardsSubscriptionRequest(v *types.StandardsSubscriptionRequest, value smithyjson.Value) error {
17253	object := value.Object()
17254	defer object.Close()
17255
17256	if v.StandardsArn != nil {
17257		ok := object.Key("StandardsArn")
17258		ok.String(*v.StandardsArn)
17259	}
17260
17261	if v.StandardsInput != nil {
17262		ok := object.Key("StandardsInput")
17263		if err := awsRestjson1_serializeDocumentStandardsInputParameterMap(v.StandardsInput, ok); err != nil {
17264			return err
17265		}
17266	}
17267
17268	return nil
17269}
17270
17271func awsRestjson1_serializeDocumentStandardsSubscriptionRequests(v []types.StandardsSubscriptionRequest, value smithyjson.Value) error {
17272	array := value.Array()
17273	defer array.Close()
17274
17275	for i := range v {
17276		av := array.Value()
17277		if err := awsRestjson1_serializeDocumentStandardsSubscriptionRequest(&v[i], av); err != nil {
17278			return err
17279		}
17280	}
17281	return nil
17282}
17283
17284func awsRestjson1_serializeDocumentStatusReason(v *types.StatusReason, value smithyjson.Value) error {
17285	object := value.Object()
17286	defer object.Close()
17287
17288	if v.Description != nil {
17289		ok := object.Key("Description")
17290		ok.String(*v.Description)
17291	}
17292
17293	if v.ReasonCode != nil {
17294		ok := object.Key("ReasonCode")
17295		ok.String(*v.ReasonCode)
17296	}
17297
17298	return nil
17299}
17300
17301func awsRestjson1_serializeDocumentStatusReasonsList(v []types.StatusReason, value smithyjson.Value) error {
17302	array := value.Array()
17303	defer array.Close()
17304
17305	for i := range v {
17306		av := array.Value()
17307		if err := awsRestjson1_serializeDocumentStatusReason(&v[i], av); err != nil {
17308			return err
17309		}
17310	}
17311	return nil
17312}
17313
17314func awsRestjson1_serializeDocumentStringFilter(v *types.StringFilter, value smithyjson.Value) error {
17315	object := value.Object()
17316	defer object.Close()
17317
17318	if len(v.Comparison) > 0 {
17319		ok := object.Key("Comparison")
17320		ok.String(string(v.Comparison))
17321	}
17322
17323	if v.Value != nil {
17324		ok := object.Key("Value")
17325		ok.String(*v.Value)
17326	}
17327
17328	return nil
17329}
17330
17331func awsRestjson1_serializeDocumentStringFilterList(v []types.StringFilter, value smithyjson.Value) error {
17332	array := value.Array()
17333	defer array.Close()
17334
17335	for i := range v {
17336		av := array.Value()
17337		if err := awsRestjson1_serializeDocumentStringFilter(&v[i], av); err != nil {
17338			return err
17339		}
17340	}
17341	return nil
17342}
17343
17344func awsRestjson1_serializeDocumentStringList(v []string, value smithyjson.Value) error {
17345	array := value.Array()
17346	defer array.Close()
17347
17348	for i := range v {
17349		av := array.Value()
17350		av.String(v[i])
17351	}
17352	return nil
17353}
17354
17355func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson.Value) error {
17356	object := value.Object()
17357	defer object.Close()
17358
17359	for key := range v {
17360		om := object.Key(key)
17361		om.String(v[key])
17362	}
17363	return nil
17364}
17365
17366func awsRestjson1_serializeDocumentThreatIntelIndicator(v *types.ThreatIntelIndicator, value smithyjson.Value) error {
17367	object := value.Object()
17368	defer object.Close()
17369
17370	if len(v.Category) > 0 {
17371		ok := object.Key("Category")
17372		ok.String(string(v.Category))
17373	}
17374
17375	if v.LastObservedAt != nil {
17376		ok := object.Key("LastObservedAt")
17377		ok.String(*v.LastObservedAt)
17378	}
17379
17380	if v.Source != nil {
17381		ok := object.Key("Source")
17382		ok.String(*v.Source)
17383	}
17384
17385	if v.SourceUrl != nil {
17386		ok := object.Key("SourceUrl")
17387		ok.String(*v.SourceUrl)
17388	}
17389
17390	if len(v.Type) > 0 {
17391		ok := object.Key("Type")
17392		ok.String(string(v.Type))
17393	}
17394
17395	if v.Value != nil {
17396		ok := object.Key("Value")
17397		ok.String(*v.Value)
17398	}
17399
17400	return nil
17401}
17402
17403func awsRestjson1_serializeDocumentThreatIntelIndicatorList(v []types.ThreatIntelIndicator, value smithyjson.Value) error {
17404	array := value.Array()
17405	defer array.Close()
17406
17407	for i := range v {
17408		av := array.Value()
17409		if err := awsRestjson1_serializeDocumentThreatIntelIndicator(&v[i], av); err != nil {
17410			return err
17411		}
17412	}
17413	return nil
17414}
17415
17416func awsRestjson1_serializeDocumentTypeList(v []string, value smithyjson.Value) error {
17417	array := value.Array()
17418	defer array.Close()
17419
17420	for i := range v {
17421		av := array.Value()
17422		av.String(v[i])
17423	}
17424	return nil
17425}
17426
17427func awsRestjson1_serializeDocumentVulnerability(v *types.Vulnerability, value smithyjson.Value) error {
17428	object := value.Object()
17429	defer object.Close()
17430
17431	if v.Cvss != nil {
17432		ok := object.Key("Cvss")
17433		if err := awsRestjson1_serializeDocumentCvssList(v.Cvss, ok); err != nil {
17434			return err
17435		}
17436	}
17437
17438	if v.Id != nil {
17439		ok := object.Key("Id")
17440		ok.String(*v.Id)
17441	}
17442
17443	if v.ReferenceUrls != nil {
17444		ok := object.Key("ReferenceUrls")
17445		if err := awsRestjson1_serializeDocumentStringList(v.ReferenceUrls, ok); err != nil {
17446			return err
17447		}
17448	}
17449
17450	if v.RelatedVulnerabilities != nil {
17451		ok := object.Key("RelatedVulnerabilities")
17452		if err := awsRestjson1_serializeDocumentStringList(v.RelatedVulnerabilities, ok); err != nil {
17453			return err
17454		}
17455	}
17456
17457	if v.Vendor != nil {
17458		ok := object.Key("Vendor")
17459		if err := awsRestjson1_serializeDocumentVulnerabilityVendor(v.Vendor, ok); err != nil {
17460			return err
17461		}
17462	}
17463
17464	if v.VulnerablePackages != nil {
17465		ok := object.Key("VulnerablePackages")
17466		if err := awsRestjson1_serializeDocumentSoftwarePackageList(v.VulnerablePackages, ok); err != nil {
17467			return err
17468		}
17469	}
17470
17471	return nil
17472}
17473
17474func awsRestjson1_serializeDocumentVulnerabilityList(v []types.Vulnerability, value smithyjson.Value) error {
17475	array := value.Array()
17476	defer array.Close()
17477
17478	for i := range v {
17479		av := array.Value()
17480		if err := awsRestjson1_serializeDocumentVulnerability(&v[i], av); err != nil {
17481			return err
17482		}
17483	}
17484	return nil
17485}
17486
17487func awsRestjson1_serializeDocumentVulnerabilityVendor(v *types.VulnerabilityVendor, value smithyjson.Value) error {
17488	object := value.Object()
17489	defer object.Close()
17490
17491	if v.Name != nil {
17492		ok := object.Key("Name")
17493		ok.String(*v.Name)
17494	}
17495
17496	if v.Url != nil {
17497		ok := object.Key("Url")
17498		ok.String(*v.Url)
17499	}
17500
17501	if v.VendorCreatedAt != nil {
17502		ok := object.Key("VendorCreatedAt")
17503		ok.String(*v.VendorCreatedAt)
17504	}
17505
17506	if v.VendorSeverity != nil {
17507		ok := object.Key("VendorSeverity")
17508		ok.String(*v.VendorSeverity)
17509	}
17510
17511	if v.VendorUpdatedAt != nil {
17512		ok := object.Key("VendorUpdatedAt")
17513		ok.String(*v.VendorUpdatedAt)
17514	}
17515
17516	return nil
17517}
17518
17519func awsRestjson1_serializeDocumentWafAction(v *types.WafAction, value smithyjson.Value) error {
17520	object := value.Object()
17521	defer object.Close()
17522
17523	if v.Type != nil {
17524		ok := object.Key("Type")
17525		ok.String(*v.Type)
17526	}
17527
17528	return nil
17529}
17530
17531func awsRestjson1_serializeDocumentWafExcludedRule(v *types.WafExcludedRule, value smithyjson.Value) error {
17532	object := value.Object()
17533	defer object.Close()
17534
17535	if v.RuleId != nil {
17536		ok := object.Key("RuleId")
17537		ok.String(*v.RuleId)
17538	}
17539
17540	return nil
17541}
17542
17543func awsRestjson1_serializeDocumentWafExcludedRuleList(v []types.WafExcludedRule, value smithyjson.Value) error {
17544	array := value.Array()
17545	defer array.Close()
17546
17547	for i := range v {
17548		av := array.Value()
17549		if err := awsRestjson1_serializeDocumentWafExcludedRule(&v[i], av); err != nil {
17550			return err
17551		}
17552	}
17553	return nil
17554}
17555
17556func awsRestjson1_serializeDocumentWafOverrideAction(v *types.WafOverrideAction, value smithyjson.Value) error {
17557	object := value.Object()
17558	defer object.Close()
17559
17560	if v.Type != nil {
17561		ok := object.Key("Type")
17562		ok.String(*v.Type)
17563	}
17564
17565	return nil
17566}
17567
17568func awsRestjson1_serializeDocumentWorkflow(v *types.Workflow, value smithyjson.Value) error {
17569	object := value.Object()
17570	defer object.Close()
17571
17572	if len(v.Status) > 0 {
17573		ok := object.Key("Status")
17574		ok.String(string(v.Status))
17575	}
17576
17577	return nil
17578}
17579
17580func awsRestjson1_serializeDocumentWorkflowUpdate(v *types.WorkflowUpdate, value smithyjson.Value) error {
17581	object := value.Object()
17582	defer object.Close()
17583
17584	if len(v.Status) > 0 {
17585		ok := object.Key("Status")
17586		ok.String(string(v.Status))
17587	}
17588
17589	return nil
17590}
17591