1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package qldbsession
4
5import (
6	"bytes"
7	"context"
8	"fmt"
9	"github.com/aws/aws-sdk-go-v2/service/qldbsession/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 awsAwsjson10_serializeOpSendCommand struct {
18}
19
20func (*awsAwsjson10_serializeOpSendCommand) ID() string {
21	return "OperationSerializer"
22}
23
24func (m *awsAwsjson10_serializeOpSendCommand) 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.(*SendCommandInput)
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.0")
45	httpBindingEncoder.SetHeader("X-Amz-Target").String("QLDBSession.SendCommand")
46
47	jsonEncoder := smithyjson.NewEncoder()
48	if err := awsAwsjson10_serializeOpDocumentSendCommandInput(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}
63func awsAwsjson10_serializeDocumentAbortTransactionRequest(v *types.AbortTransactionRequest, value smithyjson.Value) error {
64	object := value.Object()
65	defer object.Close()
66
67	return nil
68}
69
70func awsAwsjson10_serializeDocumentCommitTransactionRequest(v *types.CommitTransactionRequest, value smithyjson.Value) error {
71	object := value.Object()
72	defer object.Close()
73
74	if v.CommitDigest != nil {
75		ok := object.Key("CommitDigest")
76		ok.Base64EncodeBytes(v.CommitDigest)
77	}
78
79	if v.TransactionId != nil {
80		ok := object.Key("TransactionId")
81		ok.String(*v.TransactionId)
82	}
83
84	return nil
85}
86
87func awsAwsjson10_serializeDocumentEndSessionRequest(v *types.EndSessionRequest, value smithyjson.Value) error {
88	object := value.Object()
89	defer object.Close()
90
91	return nil
92}
93
94func awsAwsjson10_serializeDocumentExecuteStatementRequest(v *types.ExecuteStatementRequest, value smithyjson.Value) error {
95	object := value.Object()
96	defer object.Close()
97
98	if v.Parameters != nil {
99		ok := object.Key("Parameters")
100		if err := awsAwsjson10_serializeDocumentStatementParameters(v.Parameters, ok); err != nil {
101			return err
102		}
103	}
104
105	if v.Statement != nil {
106		ok := object.Key("Statement")
107		ok.String(*v.Statement)
108	}
109
110	if v.TransactionId != nil {
111		ok := object.Key("TransactionId")
112		ok.String(*v.TransactionId)
113	}
114
115	return nil
116}
117
118func awsAwsjson10_serializeDocumentFetchPageRequest(v *types.FetchPageRequest, value smithyjson.Value) error {
119	object := value.Object()
120	defer object.Close()
121
122	if v.NextPageToken != nil {
123		ok := object.Key("NextPageToken")
124		ok.String(*v.NextPageToken)
125	}
126
127	if v.TransactionId != nil {
128		ok := object.Key("TransactionId")
129		ok.String(*v.TransactionId)
130	}
131
132	return nil
133}
134
135func awsAwsjson10_serializeDocumentStartSessionRequest(v *types.StartSessionRequest, value smithyjson.Value) error {
136	object := value.Object()
137	defer object.Close()
138
139	if v.LedgerName != nil {
140		ok := object.Key("LedgerName")
141		ok.String(*v.LedgerName)
142	}
143
144	return nil
145}
146
147func awsAwsjson10_serializeDocumentStartTransactionRequest(v *types.StartTransactionRequest, value smithyjson.Value) error {
148	object := value.Object()
149	defer object.Close()
150
151	return nil
152}
153
154func awsAwsjson10_serializeDocumentStatementParameters(v []types.ValueHolder, value smithyjson.Value) error {
155	array := value.Array()
156	defer array.Close()
157
158	for i := range v {
159		av := array.Value()
160		if err := awsAwsjson10_serializeDocumentValueHolder(&v[i], av); err != nil {
161			return err
162		}
163	}
164	return nil
165}
166
167func awsAwsjson10_serializeDocumentValueHolder(v *types.ValueHolder, value smithyjson.Value) error {
168	object := value.Object()
169	defer object.Close()
170
171	if v.IonBinary != nil {
172		ok := object.Key("IonBinary")
173		ok.Base64EncodeBytes(v.IonBinary)
174	}
175
176	if v.IonText != nil {
177		ok := object.Key("IonText")
178		ok.String(*v.IonText)
179	}
180
181	return nil
182}
183
184func awsAwsjson10_serializeOpDocumentSendCommandInput(v *SendCommandInput, value smithyjson.Value) error {
185	object := value.Object()
186	defer object.Close()
187
188	if v.AbortTransaction != nil {
189		ok := object.Key("AbortTransaction")
190		if err := awsAwsjson10_serializeDocumentAbortTransactionRequest(v.AbortTransaction, ok); err != nil {
191			return err
192		}
193	}
194
195	if v.CommitTransaction != nil {
196		ok := object.Key("CommitTransaction")
197		if err := awsAwsjson10_serializeDocumentCommitTransactionRequest(v.CommitTransaction, ok); err != nil {
198			return err
199		}
200	}
201
202	if v.EndSession != nil {
203		ok := object.Key("EndSession")
204		if err := awsAwsjson10_serializeDocumentEndSessionRequest(v.EndSession, ok); err != nil {
205			return err
206		}
207	}
208
209	if v.ExecuteStatement != nil {
210		ok := object.Key("ExecuteStatement")
211		if err := awsAwsjson10_serializeDocumentExecuteStatementRequest(v.ExecuteStatement, ok); err != nil {
212			return err
213		}
214	}
215
216	if v.FetchPage != nil {
217		ok := object.Key("FetchPage")
218		if err := awsAwsjson10_serializeDocumentFetchPageRequest(v.FetchPage, ok); err != nil {
219			return err
220		}
221	}
222
223	if v.SessionToken != nil {
224		ok := object.Key("SessionToken")
225		ok.String(*v.SessionToken)
226	}
227
228	if v.StartSession != nil {
229		ok := object.Key("StartSession")
230		if err := awsAwsjson10_serializeDocumentStartSessionRequest(v.StartSession, ok); err != nil {
231			return err
232		}
233	}
234
235	if v.StartTransaction != nil {
236		ok := object.Key("StartTransaction")
237		if err := awsAwsjson10_serializeDocumentStartTransactionRequest(v.StartTransaction, ok); err != nil {
238			return err
239		}
240	}
241
242	return nil
243}
244