1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package iotsecuretunneling
4
5import (
6	"bytes"
7	"context"
8	"fmt"
9	"github.com/aws/aws-sdk-go-v2/service/iotsecuretunneling/types"
10	smithy "github.com/aws/smithy-go"
11	"github.com/aws/smithy-go/encoding/httpbinding"
12	smithyjson "github.com/aws/smithy-go/encoding/json"
13	"github.com/aws/smithy-go/middleware"
14	smithyhttp "github.com/aws/smithy-go/transport/http"
15)
16
17type awsAwsjson11_serializeOpCloseTunnel struct {
18}
19
20func (*awsAwsjson11_serializeOpCloseTunnel) ID() string {
21	return "OperationSerializer"
22}
23
24func (m *awsAwsjson11_serializeOpCloseTunnel) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
25	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
26) {
27	request, ok := in.Request.(*smithyhttp.Request)
28	if !ok {
29		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
30	}
31
32	input, ok := in.Parameters.(*CloseTunnelInput)
33	_ = input
34	if !ok {
35		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
36	}
37
38	request.Request.URL.Path = "/"
39	request.Request.Method = "POST"
40	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
41	if err != nil {
42		return out, metadata, &smithy.SerializationError{Err: err}
43	}
44	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
45	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.CloseTunnel")
46
47	jsonEncoder := smithyjson.NewEncoder()
48	if err := awsAwsjson11_serializeOpDocumentCloseTunnelInput(input, jsonEncoder.Value); err != nil {
49		return out, metadata, &smithy.SerializationError{Err: err}
50	}
51
52	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
53		return out, metadata, &smithy.SerializationError{Err: err}
54	}
55
56	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
57		return out, metadata, &smithy.SerializationError{Err: err}
58	}
59	in.Request = request
60
61	return next.HandleSerialize(ctx, in)
62}
63
64type awsAwsjson11_serializeOpDescribeTunnel struct {
65}
66
67func (*awsAwsjson11_serializeOpDescribeTunnel) ID() string {
68	return "OperationSerializer"
69}
70
71func (m *awsAwsjson11_serializeOpDescribeTunnel) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
72	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
73) {
74	request, ok := in.Request.(*smithyhttp.Request)
75	if !ok {
76		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
77	}
78
79	input, ok := in.Parameters.(*DescribeTunnelInput)
80	_ = input
81	if !ok {
82		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
83	}
84
85	request.Request.URL.Path = "/"
86	request.Request.Method = "POST"
87	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
88	if err != nil {
89		return out, metadata, &smithy.SerializationError{Err: err}
90	}
91	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
92	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.DescribeTunnel")
93
94	jsonEncoder := smithyjson.NewEncoder()
95	if err := awsAwsjson11_serializeOpDocumentDescribeTunnelInput(input, jsonEncoder.Value); err != nil {
96		return out, metadata, &smithy.SerializationError{Err: err}
97	}
98
99	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
100		return out, metadata, &smithy.SerializationError{Err: err}
101	}
102
103	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
104		return out, metadata, &smithy.SerializationError{Err: err}
105	}
106	in.Request = request
107
108	return next.HandleSerialize(ctx, in)
109}
110
111type awsAwsjson11_serializeOpListTagsForResource struct {
112}
113
114func (*awsAwsjson11_serializeOpListTagsForResource) ID() string {
115	return "OperationSerializer"
116}
117
118func (m *awsAwsjson11_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
119	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
120) {
121	request, ok := in.Request.(*smithyhttp.Request)
122	if !ok {
123		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
124	}
125
126	input, ok := in.Parameters.(*ListTagsForResourceInput)
127	_ = input
128	if !ok {
129		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
130	}
131
132	request.Request.URL.Path = "/"
133	request.Request.Method = "POST"
134	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
135	if err != nil {
136		return out, metadata, &smithy.SerializationError{Err: err}
137	}
138	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
139	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.ListTagsForResource")
140
141	jsonEncoder := smithyjson.NewEncoder()
142	if err := awsAwsjson11_serializeOpDocumentListTagsForResourceInput(input, jsonEncoder.Value); err != nil {
143		return out, metadata, &smithy.SerializationError{Err: err}
144	}
145
146	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
147		return out, metadata, &smithy.SerializationError{Err: err}
148	}
149
150	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
151		return out, metadata, &smithy.SerializationError{Err: err}
152	}
153	in.Request = request
154
155	return next.HandleSerialize(ctx, in)
156}
157
158type awsAwsjson11_serializeOpListTunnels struct {
159}
160
161func (*awsAwsjson11_serializeOpListTunnels) ID() string {
162	return "OperationSerializer"
163}
164
165func (m *awsAwsjson11_serializeOpListTunnels) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
166	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
167) {
168	request, ok := in.Request.(*smithyhttp.Request)
169	if !ok {
170		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
171	}
172
173	input, ok := in.Parameters.(*ListTunnelsInput)
174	_ = input
175	if !ok {
176		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
177	}
178
179	request.Request.URL.Path = "/"
180	request.Request.Method = "POST"
181	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
182	if err != nil {
183		return out, metadata, &smithy.SerializationError{Err: err}
184	}
185	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
186	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.ListTunnels")
187
188	jsonEncoder := smithyjson.NewEncoder()
189	if err := awsAwsjson11_serializeOpDocumentListTunnelsInput(input, jsonEncoder.Value); err != nil {
190		return out, metadata, &smithy.SerializationError{Err: err}
191	}
192
193	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
194		return out, metadata, &smithy.SerializationError{Err: err}
195	}
196
197	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
198		return out, metadata, &smithy.SerializationError{Err: err}
199	}
200	in.Request = request
201
202	return next.HandleSerialize(ctx, in)
203}
204
205type awsAwsjson11_serializeOpOpenTunnel struct {
206}
207
208func (*awsAwsjson11_serializeOpOpenTunnel) ID() string {
209	return "OperationSerializer"
210}
211
212func (m *awsAwsjson11_serializeOpOpenTunnel) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
213	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
214) {
215	request, ok := in.Request.(*smithyhttp.Request)
216	if !ok {
217		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
218	}
219
220	input, ok := in.Parameters.(*OpenTunnelInput)
221	_ = input
222	if !ok {
223		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
224	}
225
226	request.Request.URL.Path = "/"
227	request.Request.Method = "POST"
228	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
229	if err != nil {
230		return out, metadata, &smithy.SerializationError{Err: err}
231	}
232	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
233	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.OpenTunnel")
234
235	jsonEncoder := smithyjson.NewEncoder()
236	if err := awsAwsjson11_serializeOpDocumentOpenTunnelInput(input, jsonEncoder.Value); err != nil {
237		return out, metadata, &smithy.SerializationError{Err: err}
238	}
239
240	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
241		return out, metadata, &smithy.SerializationError{Err: err}
242	}
243
244	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
245		return out, metadata, &smithy.SerializationError{Err: err}
246	}
247	in.Request = request
248
249	return next.HandleSerialize(ctx, in)
250}
251
252type awsAwsjson11_serializeOpTagResource struct {
253}
254
255func (*awsAwsjson11_serializeOpTagResource) ID() string {
256	return "OperationSerializer"
257}
258
259func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
260	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
261) {
262	request, ok := in.Request.(*smithyhttp.Request)
263	if !ok {
264		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
265	}
266
267	input, ok := in.Parameters.(*TagResourceInput)
268	_ = input
269	if !ok {
270		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
271	}
272
273	request.Request.URL.Path = "/"
274	request.Request.Method = "POST"
275	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
276	if err != nil {
277		return out, metadata, &smithy.SerializationError{Err: err}
278	}
279	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
280	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.TagResource")
281
282	jsonEncoder := smithyjson.NewEncoder()
283	if err := awsAwsjson11_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil {
284		return out, metadata, &smithy.SerializationError{Err: err}
285	}
286
287	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
288		return out, metadata, &smithy.SerializationError{Err: err}
289	}
290
291	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
292		return out, metadata, &smithy.SerializationError{Err: err}
293	}
294	in.Request = request
295
296	return next.HandleSerialize(ctx, in)
297}
298
299type awsAwsjson11_serializeOpUntagResource struct {
300}
301
302func (*awsAwsjson11_serializeOpUntagResource) ID() string {
303	return "OperationSerializer"
304}
305
306func (m *awsAwsjson11_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
307	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
308) {
309	request, ok := in.Request.(*smithyhttp.Request)
310	if !ok {
311		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
312	}
313
314	input, ok := in.Parameters.(*UntagResourceInput)
315	_ = input
316	if !ok {
317		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
318	}
319
320	request.Request.URL.Path = "/"
321	request.Request.Method = "POST"
322	httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
323	if err != nil {
324		return out, metadata, &smithy.SerializationError{Err: err}
325	}
326	httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1")
327	httpBindingEncoder.SetHeader("X-Amz-Target").String("IoTSecuredTunneling.UntagResource")
328
329	jsonEncoder := smithyjson.NewEncoder()
330	if err := awsAwsjson11_serializeOpDocumentUntagResourceInput(input, jsonEncoder.Value); err != nil {
331		return out, metadata, &smithy.SerializationError{Err: err}
332	}
333
334	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
335		return out, metadata, &smithy.SerializationError{Err: err}
336	}
337
338	if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
339		return out, metadata, &smithy.SerializationError{Err: err}
340	}
341	in.Request = request
342
343	return next.HandleSerialize(ctx, in)
344}
345func awsAwsjson11_serializeDocumentDestinationConfig(v *types.DestinationConfig, value smithyjson.Value) error {
346	object := value.Object()
347	defer object.Close()
348
349	if v.Services != nil {
350		ok := object.Key("services")
351		if err := awsAwsjson11_serializeDocumentServiceList(v.Services, ok); err != nil {
352			return err
353		}
354	}
355
356	if v.ThingName != nil {
357		ok := object.Key("thingName")
358		ok.String(*v.ThingName)
359	}
360
361	return nil
362}
363
364func awsAwsjson11_serializeDocumentServiceList(v []string, value smithyjson.Value) error {
365	array := value.Array()
366	defer array.Close()
367
368	for i := range v {
369		av := array.Value()
370		av.String(v[i])
371	}
372	return nil
373}
374
375func awsAwsjson11_serializeDocumentTag(v *types.Tag, value smithyjson.Value) error {
376	object := value.Object()
377	defer object.Close()
378
379	if v.Key != nil {
380		ok := object.Key("key")
381		ok.String(*v.Key)
382	}
383
384	if v.Value != nil {
385		ok := object.Key("value")
386		ok.String(*v.Value)
387	}
388
389	return nil
390}
391
392func awsAwsjson11_serializeDocumentTagKeyList(v []string, value smithyjson.Value) error {
393	array := value.Array()
394	defer array.Close()
395
396	for i := range v {
397		av := array.Value()
398		av.String(v[i])
399	}
400	return nil
401}
402
403func awsAwsjson11_serializeDocumentTagList(v []types.Tag, value smithyjson.Value) error {
404	array := value.Array()
405	defer array.Close()
406
407	for i := range v {
408		av := array.Value()
409		if err := awsAwsjson11_serializeDocumentTag(&v[i], av); err != nil {
410			return err
411		}
412	}
413	return nil
414}
415
416func awsAwsjson11_serializeDocumentTimeoutConfig(v *types.TimeoutConfig, value smithyjson.Value) error {
417	object := value.Object()
418	defer object.Close()
419
420	if v.MaxLifetimeTimeoutMinutes != 0 {
421		ok := object.Key("maxLifetimeTimeoutMinutes")
422		ok.Integer(v.MaxLifetimeTimeoutMinutes)
423	}
424
425	return nil
426}
427
428func awsAwsjson11_serializeOpDocumentCloseTunnelInput(v *CloseTunnelInput, value smithyjson.Value) error {
429	object := value.Object()
430	defer object.Close()
431
432	if v.Delete {
433		ok := object.Key("delete")
434		ok.Boolean(v.Delete)
435	}
436
437	if v.TunnelId != nil {
438		ok := object.Key("tunnelId")
439		ok.String(*v.TunnelId)
440	}
441
442	return nil
443}
444
445func awsAwsjson11_serializeOpDocumentDescribeTunnelInput(v *DescribeTunnelInput, value smithyjson.Value) error {
446	object := value.Object()
447	defer object.Close()
448
449	if v.TunnelId != nil {
450		ok := object.Key("tunnelId")
451		ok.String(*v.TunnelId)
452	}
453
454	return nil
455}
456
457func awsAwsjson11_serializeOpDocumentListTagsForResourceInput(v *ListTagsForResourceInput, value smithyjson.Value) error {
458	object := value.Object()
459	defer object.Close()
460
461	if v.ResourceArn != nil {
462		ok := object.Key("resourceArn")
463		ok.String(*v.ResourceArn)
464	}
465
466	return nil
467}
468
469func awsAwsjson11_serializeOpDocumentListTunnelsInput(v *ListTunnelsInput, value smithyjson.Value) error {
470	object := value.Object()
471	defer object.Close()
472
473	if v.MaxResults != 0 {
474		ok := object.Key("maxResults")
475		ok.Integer(v.MaxResults)
476	}
477
478	if v.NextToken != nil {
479		ok := object.Key("nextToken")
480		ok.String(*v.NextToken)
481	}
482
483	if v.ThingName != nil {
484		ok := object.Key("thingName")
485		ok.String(*v.ThingName)
486	}
487
488	return nil
489}
490
491func awsAwsjson11_serializeOpDocumentOpenTunnelInput(v *OpenTunnelInput, value smithyjson.Value) error {
492	object := value.Object()
493	defer object.Close()
494
495	if v.Description != nil {
496		ok := object.Key("description")
497		ok.String(*v.Description)
498	}
499
500	if v.DestinationConfig != nil {
501		ok := object.Key("destinationConfig")
502		if err := awsAwsjson11_serializeDocumentDestinationConfig(v.DestinationConfig, ok); err != nil {
503			return err
504		}
505	}
506
507	if v.Tags != nil {
508		ok := object.Key("tags")
509		if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil {
510			return err
511		}
512	}
513
514	if v.TimeoutConfig != nil {
515		ok := object.Key("timeoutConfig")
516		if err := awsAwsjson11_serializeDocumentTimeoutConfig(v.TimeoutConfig, ok); err != nil {
517			return err
518		}
519	}
520
521	return nil
522}
523
524func awsAwsjson11_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error {
525	object := value.Object()
526	defer object.Close()
527
528	if v.ResourceArn != nil {
529		ok := object.Key("resourceArn")
530		ok.String(*v.ResourceArn)
531	}
532
533	if v.Tags != nil {
534		ok := object.Key("tags")
535		if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil {
536			return err
537		}
538	}
539
540	return nil
541}
542
543func awsAwsjson11_serializeOpDocumentUntagResourceInput(v *UntagResourceInput, value smithyjson.Value) error {
544	object := value.Object()
545	defer object.Close()
546
547	if v.ResourceArn != nil {
548		ok := object.Key("resourceArn")
549		ok.String(*v.ResourceArn)
550	}
551
552	if v.TagKeys != nil {
553		ok := object.Key("tagKeys")
554		if err := awsAwsjson11_serializeDocumentTagKeyList(v.TagKeys, ok); err != nil {
555			return err
556		}
557	}
558
559	return nil
560}
561