1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package elasticinference
4
5import (
6	"bytes"
7	"context"
8	"fmt"
9	"github.com/aws/aws-sdk-go-v2/service/elasticinference/types"
10	smithy "github.com/aws/smithy-go"
11	"github.com/aws/smithy-go/encoding/httpbinding"
12	smithyjson "github.com/aws/smithy-go/encoding/json"
13	"github.com/aws/smithy-go/middleware"
14	smithyhttp "github.com/aws/smithy-go/transport/http"
15)
16
17type awsRestjson1_serializeOpDescribeAcceleratorOfferings struct {
18}
19
20func (*awsRestjson1_serializeOpDescribeAcceleratorOfferings) ID() string {
21	return "OperationSerializer"
22}
23
24func (m *awsRestjson1_serializeOpDescribeAcceleratorOfferings) 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.(*DescribeAcceleratorOfferingsInput)
33	_ = input
34	if !ok {
35		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
36	}
37
38	opPath, opQuery := httpbinding.SplitURI("/describe-accelerator-offerings")
39	request.URL.Path = opPath
40	if len(request.URL.RawQuery) > 0 {
41		request.URL.RawQuery = "&" + opQuery
42	} else {
43		request.URL.RawQuery = opQuery
44	}
45
46	request.Method = "POST"
47	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
48	if err != nil {
49		return out, metadata, &smithy.SerializationError{Err: err}
50	}
51
52	restEncoder.SetHeader("Content-Type").String("application/json")
53
54	jsonEncoder := smithyjson.NewEncoder()
55	if err := awsRestjson1_serializeOpDocumentDescribeAcceleratorOfferingsInput(input, jsonEncoder.Value); err != nil {
56		return out, metadata, &smithy.SerializationError{Err: err}
57	}
58
59	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
60		return out, metadata, &smithy.SerializationError{Err: err}
61	}
62
63	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
64		return out, metadata, &smithy.SerializationError{Err: err}
65	}
66	in.Request = request
67
68	return next.HandleSerialize(ctx, in)
69}
70func awsRestjson1_serializeOpHttpBindingsDescribeAcceleratorOfferingsInput(v *DescribeAcceleratorOfferingsInput, encoder *httpbinding.Encoder) error {
71	if v == nil {
72		return fmt.Errorf("unsupported serialization of nil %T", v)
73	}
74
75	return nil
76}
77
78func awsRestjson1_serializeOpDocumentDescribeAcceleratorOfferingsInput(v *DescribeAcceleratorOfferingsInput, value smithyjson.Value) error {
79	object := value.Object()
80	defer object.Close()
81
82	if v.AcceleratorTypes != nil {
83		ok := object.Key("acceleratorTypes")
84		if err := awsRestjson1_serializeDocumentAcceleratorTypeNameList(v.AcceleratorTypes, ok); err != nil {
85			return err
86		}
87	}
88
89	if len(v.LocationType) > 0 {
90		ok := object.Key("locationType")
91		ok.String(string(v.LocationType))
92	}
93
94	return nil
95}
96
97type awsRestjson1_serializeOpDescribeAccelerators struct {
98}
99
100func (*awsRestjson1_serializeOpDescribeAccelerators) ID() string {
101	return "OperationSerializer"
102}
103
104func (m *awsRestjson1_serializeOpDescribeAccelerators) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
105	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
106) {
107	request, ok := in.Request.(*smithyhttp.Request)
108	if !ok {
109		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
110	}
111
112	input, ok := in.Parameters.(*DescribeAcceleratorsInput)
113	_ = input
114	if !ok {
115		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
116	}
117
118	opPath, opQuery := httpbinding.SplitURI("/describe-accelerators")
119	request.URL.Path = opPath
120	if len(request.URL.RawQuery) > 0 {
121		request.URL.RawQuery = "&" + opQuery
122	} else {
123		request.URL.RawQuery = opQuery
124	}
125
126	request.Method = "POST"
127	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
128	if err != nil {
129		return out, metadata, &smithy.SerializationError{Err: err}
130	}
131
132	restEncoder.SetHeader("Content-Type").String("application/json")
133
134	jsonEncoder := smithyjson.NewEncoder()
135	if err := awsRestjson1_serializeOpDocumentDescribeAcceleratorsInput(input, jsonEncoder.Value); err != nil {
136		return out, metadata, &smithy.SerializationError{Err: err}
137	}
138
139	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
140		return out, metadata, &smithy.SerializationError{Err: err}
141	}
142
143	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
144		return out, metadata, &smithy.SerializationError{Err: err}
145	}
146	in.Request = request
147
148	return next.HandleSerialize(ctx, in)
149}
150func awsRestjson1_serializeOpHttpBindingsDescribeAcceleratorsInput(v *DescribeAcceleratorsInput, encoder *httpbinding.Encoder) error {
151	if v == nil {
152		return fmt.Errorf("unsupported serialization of nil %T", v)
153	}
154
155	return nil
156}
157
158func awsRestjson1_serializeOpDocumentDescribeAcceleratorsInput(v *DescribeAcceleratorsInput, value smithyjson.Value) error {
159	object := value.Object()
160	defer object.Close()
161
162	if v.AcceleratorIds != nil {
163		ok := object.Key("acceleratorIds")
164		if err := awsRestjson1_serializeDocumentAcceleratorIdList(v.AcceleratorIds, ok); err != nil {
165			return err
166		}
167	}
168
169	if v.Filters != nil {
170		ok := object.Key("filters")
171		if err := awsRestjson1_serializeDocumentFilterList(v.Filters, ok); err != nil {
172			return err
173		}
174	}
175
176	if v.MaxResults != 0 {
177		ok := object.Key("maxResults")
178		ok.Integer(v.MaxResults)
179	}
180
181	if v.NextToken != nil {
182		ok := object.Key("nextToken")
183		ok.String(*v.NextToken)
184	}
185
186	return nil
187}
188
189type awsRestjson1_serializeOpDescribeAcceleratorTypes struct {
190}
191
192func (*awsRestjson1_serializeOpDescribeAcceleratorTypes) ID() string {
193	return "OperationSerializer"
194}
195
196func (m *awsRestjson1_serializeOpDescribeAcceleratorTypes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
197	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
198) {
199	request, ok := in.Request.(*smithyhttp.Request)
200	if !ok {
201		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
202	}
203
204	input, ok := in.Parameters.(*DescribeAcceleratorTypesInput)
205	_ = input
206	if !ok {
207		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
208	}
209
210	opPath, opQuery := httpbinding.SplitURI("/describe-accelerator-types")
211	request.URL.Path = opPath
212	if len(request.URL.RawQuery) > 0 {
213		request.URL.RawQuery = "&" + opQuery
214	} else {
215		request.URL.RawQuery = opQuery
216	}
217
218	request.Method = "GET"
219	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
220	if err != nil {
221		return out, metadata, &smithy.SerializationError{Err: err}
222	}
223
224	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
225		return out, metadata, &smithy.SerializationError{Err: err}
226	}
227	in.Request = request
228
229	return next.HandleSerialize(ctx, in)
230}
231func awsRestjson1_serializeOpHttpBindingsDescribeAcceleratorTypesInput(v *DescribeAcceleratorTypesInput, encoder *httpbinding.Encoder) error {
232	if v == nil {
233		return fmt.Errorf("unsupported serialization of nil %T", v)
234	}
235
236	return nil
237}
238
239type awsRestjson1_serializeOpListTagsForResource struct {
240}
241
242func (*awsRestjson1_serializeOpListTagsForResource) ID() string {
243	return "OperationSerializer"
244}
245
246func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
247	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
248) {
249	request, ok := in.Request.(*smithyhttp.Request)
250	if !ok {
251		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
252	}
253
254	input, ok := in.Parameters.(*ListTagsForResourceInput)
255	_ = input
256	if !ok {
257		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
258	}
259
260	opPath, opQuery := httpbinding.SplitURI("/tags/{resourceArn}")
261	request.URL.Path = opPath
262	if len(request.URL.RawQuery) > 0 {
263		request.URL.RawQuery = "&" + opQuery
264	} else {
265		request.URL.RawQuery = opQuery
266	}
267
268	request.Method = "GET"
269	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
270	if err != nil {
271		return out, metadata, &smithy.SerializationError{Err: err}
272	}
273
274	if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil {
275		return out, metadata, &smithy.SerializationError{Err: err}
276	}
277
278	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
279		return out, metadata, &smithy.SerializationError{Err: err}
280	}
281	in.Request = request
282
283	return next.HandleSerialize(ctx, in)
284}
285func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error {
286	if v == nil {
287		return fmt.Errorf("unsupported serialization of nil %T", v)
288	}
289
290	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
291		return &smithy.SerializationError{Err: fmt.Errorf("input member resourceArn must not be empty")}
292	}
293	if v.ResourceArn != nil {
294		if err := encoder.SetURI("resourceArn").String(*v.ResourceArn); err != nil {
295			return err
296		}
297	}
298
299	return nil
300}
301
302type awsRestjson1_serializeOpTagResource struct {
303}
304
305func (*awsRestjson1_serializeOpTagResource) ID() string {
306	return "OperationSerializer"
307}
308
309func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
310	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
311) {
312	request, ok := in.Request.(*smithyhttp.Request)
313	if !ok {
314		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
315	}
316
317	input, ok := in.Parameters.(*TagResourceInput)
318	_ = input
319	if !ok {
320		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
321	}
322
323	opPath, opQuery := httpbinding.SplitURI("/tags/{resourceArn}")
324	request.URL.Path = opPath
325	if len(request.URL.RawQuery) > 0 {
326		request.URL.RawQuery = "&" + opQuery
327	} else {
328		request.URL.RawQuery = opQuery
329	}
330
331	request.Method = "POST"
332	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
333	if err != nil {
334		return out, metadata, &smithy.SerializationError{Err: err}
335	}
336
337	if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil {
338		return out, metadata, &smithy.SerializationError{Err: err}
339	}
340
341	restEncoder.SetHeader("Content-Type").String("application/json")
342
343	jsonEncoder := smithyjson.NewEncoder()
344	if err := awsRestjson1_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil {
345		return out, metadata, &smithy.SerializationError{Err: err}
346	}
347
348	if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
349		return out, metadata, &smithy.SerializationError{Err: err}
350	}
351
352	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
353		return out, metadata, &smithy.SerializationError{Err: err}
354	}
355	in.Request = request
356
357	return next.HandleSerialize(ctx, in)
358}
359func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error {
360	if v == nil {
361		return fmt.Errorf("unsupported serialization of nil %T", v)
362	}
363
364	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
365		return &smithy.SerializationError{Err: fmt.Errorf("input member resourceArn must not be empty")}
366	}
367	if v.ResourceArn != nil {
368		if err := encoder.SetURI("resourceArn").String(*v.ResourceArn); err != nil {
369			return err
370		}
371	}
372
373	return nil
374}
375
376func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error {
377	object := value.Object()
378	defer object.Close()
379
380	if v.Tags != nil {
381		ok := object.Key("tags")
382		if err := awsRestjson1_serializeDocumentTagMap(v.Tags, ok); err != nil {
383			return err
384		}
385	}
386
387	return nil
388}
389
390type awsRestjson1_serializeOpUntagResource struct {
391}
392
393func (*awsRestjson1_serializeOpUntagResource) ID() string {
394	return "OperationSerializer"
395}
396
397func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
398	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
399) {
400	request, ok := in.Request.(*smithyhttp.Request)
401	if !ok {
402		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
403	}
404
405	input, ok := in.Parameters.(*UntagResourceInput)
406	_ = input
407	if !ok {
408		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
409	}
410
411	opPath, opQuery := httpbinding.SplitURI("/tags/{resourceArn}")
412	request.URL.Path = opPath
413	if len(request.URL.RawQuery) > 0 {
414		request.URL.RawQuery = "&" + opQuery
415	} else {
416		request.URL.RawQuery = opQuery
417	}
418
419	request.Method = "DELETE"
420	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
421	if err != nil {
422		return out, metadata, &smithy.SerializationError{Err: err}
423	}
424
425	if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(input, restEncoder); err != nil {
426		return out, metadata, &smithy.SerializationError{Err: err}
427	}
428
429	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
430		return out, metadata, &smithy.SerializationError{Err: err}
431	}
432	in.Request = request
433
434	return next.HandleSerialize(ctx, in)
435}
436func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error {
437	if v == nil {
438		return fmt.Errorf("unsupported serialization of nil %T", v)
439	}
440
441	if v.ResourceArn == nil || len(*v.ResourceArn) == 0 {
442		return &smithy.SerializationError{Err: fmt.Errorf("input member resourceArn must not be empty")}
443	}
444	if v.ResourceArn != nil {
445		if err := encoder.SetURI("resourceArn").String(*v.ResourceArn); err != nil {
446			return err
447		}
448	}
449
450	if v.TagKeys != nil {
451		for i := range v.TagKeys {
452			encoder.AddQuery("tagKeys").String(v.TagKeys[i])
453		}
454	}
455
456	return nil
457}
458
459func awsRestjson1_serializeDocumentAcceleratorIdList(v []string, value smithyjson.Value) error {
460	array := value.Array()
461	defer array.Close()
462
463	for i := range v {
464		av := array.Value()
465		av.String(v[i])
466	}
467	return nil
468}
469
470func awsRestjson1_serializeDocumentAcceleratorTypeNameList(v []string, value smithyjson.Value) error {
471	array := value.Array()
472	defer array.Close()
473
474	for i := range v {
475		av := array.Value()
476		av.String(v[i])
477	}
478	return nil
479}
480
481func awsRestjson1_serializeDocumentFilter(v *types.Filter, value smithyjson.Value) error {
482	object := value.Object()
483	defer object.Close()
484
485	if v.Name != nil {
486		ok := object.Key("name")
487		ok.String(*v.Name)
488	}
489
490	if v.Values != nil {
491		ok := object.Key("values")
492		if err := awsRestjson1_serializeDocumentValueStringList(v.Values, ok); err != nil {
493			return err
494		}
495	}
496
497	return nil
498}
499
500func awsRestjson1_serializeDocumentFilterList(v []types.Filter, value smithyjson.Value) error {
501	array := value.Array()
502	defer array.Close()
503
504	for i := range v {
505		av := array.Value()
506		if err := awsRestjson1_serializeDocumentFilter(&v[i], av); err != nil {
507			return err
508		}
509	}
510	return nil
511}
512
513func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson.Value) error {
514	object := value.Object()
515	defer object.Close()
516
517	for key := range v {
518		om := object.Key(key)
519		om.String(v[key])
520	}
521	return nil
522}
523
524func awsRestjson1_serializeDocumentValueStringList(v []string, value smithyjson.Value) error {
525	array := value.Array()
526	defer array.Close()
527
528	for i := range v {
529		av := array.Value()
530		av.String(v[i])
531	}
532	return nil
533}
534