1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package sso
4
5import (
6	"context"
7	"fmt"
8	smithy "github.com/aws/smithy-go"
9	"github.com/aws/smithy-go/encoding/httpbinding"
10	"github.com/aws/smithy-go/middleware"
11	smithyhttp "github.com/aws/smithy-go/transport/http"
12)
13
14type awsRestjson1_serializeOpGetRoleCredentials struct {
15}
16
17func (*awsRestjson1_serializeOpGetRoleCredentials) ID() string {
18	return "OperationSerializer"
19}
20
21func (m *awsRestjson1_serializeOpGetRoleCredentials) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
22	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
23) {
24	request, ok := in.Request.(*smithyhttp.Request)
25	if !ok {
26		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
27	}
28
29	input, ok := in.Parameters.(*GetRoleCredentialsInput)
30	_ = input
31	if !ok {
32		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
33	}
34
35	opPath, opQuery := httpbinding.SplitURI("/federation/credentials")
36	request.URL.Path = opPath
37	if len(request.URL.RawQuery) > 0 {
38		request.URL.RawQuery = "&" + opQuery
39	} else {
40		request.URL.RawQuery = opQuery
41	}
42
43	request.Method = "GET"
44	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
45	if err != nil {
46		return out, metadata, &smithy.SerializationError{Err: err}
47	}
48
49	if err := awsRestjson1_serializeOpHttpBindingsGetRoleCredentialsInput(input, restEncoder); err != nil {
50		return out, metadata, &smithy.SerializationError{Err: err}
51	}
52
53	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
54		return out, metadata, &smithy.SerializationError{Err: err}
55	}
56	in.Request = request
57
58	return next.HandleSerialize(ctx, in)
59}
60func awsRestjson1_serializeOpHttpBindingsGetRoleCredentialsInput(v *GetRoleCredentialsInput, encoder *httpbinding.Encoder) error {
61	if v == nil {
62		return fmt.Errorf("unsupported serialization of nil %T", v)
63	}
64
65	if v.AccessToken != nil && len(*v.AccessToken) > 0 {
66		locationName := "X-Amz-Sso_bearer_token"
67		encoder.SetHeader(locationName).String(*v.AccessToken)
68	}
69
70	if v.AccountId != nil {
71		encoder.SetQuery("account_id").String(*v.AccountId)
72	}
73
74	if v.RoleName != nil {
75		encoder.SetQuery("role_name").String(*v.RoleName)
76	}
77
78	return nil
79}
80
81type awsRestjson1_serializeOpListAccountRoles struct {
82}
83
84func (*awsRestjson1_serializeOpListAccountRoles) ID() string {
85	return "OperationSerializer"
86}
87
88func (m *awsRestjson1_serializeOpListAccountRoles) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
89	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
90) {
91	request, ok := in.Request.(*smithyhttp.Request)
92	if !ok {
93		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
94	}
95
96	input, ok := in.Parameters.(*ListAccountRolesInput)
97	_ = input
98	if !ok {
99		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
100	}
101
102	opPath, opQuery := httpbinding.SplitURI("/assignment/roles")
103	request.URL.Path = opPath
104	if len(request.URL.RawQuery) > 0 {
105		request.URL.RawQuery = "&" + opQuery
106	} else {
107		request.URL.RawQuery = opQuery
108	}
109
110	request.Method = "GET"
111	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
112	if err != nil {
113		return out, metadata, &smithy.SerializationError{Err: err}
114	}
115
116	if err := awsRestjson1_serializeOpHttpBindingsListAccountRolesInput(input, restEncoder); err != nil {
117		return out, metadata, &smithy.SerializationError{Err: err}
118	}
119
120	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
121		return out, metadata, &smithy.SerializationError{Err: err}
122	}
123	in.Request = request
124
125	return next.HandleSerialize(ctx, in)
126}
127func awsRestjson1_serializeOpHttpBindingsListAccountRolesInput(v *ListAccountRolesInput, encoder *httpbinding.Encoder) error {
128	if v == nil {
129		return fmt.Errorf("unsupported serialization of nil %T", v)
130	}
131
132	if v.AccessToken != nil && len(*v.AccessToken) > 0 {
133		locationName := "X-Amz-Sso_bearer_token"
134		encoder.SetHeader(locationName).String(*v.AccessToken)
135	}
136
137	if v.AccountId != nil {
138		encoder.SetQuery("account_id").String(*v.AccountId)
139	}
140
141	if v.MaxResults != nil {
142		encoder.SetQuery("max_result").Integer(*v.MaxResults)
143	}
144
145	if v.NextToken != nil {
146		encoder.SetQuery("next_token").String(*v.NextToken)
147	}
148
149	return nil
150}
151
152type awsRestjson1_serializeOpListAccounts struct {
153}
154
155func (*awsRestjson1_serializeOpListAccounts) ID() string {
156	return "OperationSerializer"
157}
158
159func (m *awsRestjson1_serializeOpListAccounts) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
160	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
161) {
162	request, ok := in.Request.(*smithyhttp.Request)
163	if !ok {
164		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
165	}
166
167	input, ok := in.Parameters.(*ListAccountsInput)
168	_ = input
169	if !ok {
170		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
171	}
172
173	opPath, opQuery := httpbinding.SplitURI("/assignment/accounts")
174	request.URL.Path = opPath
175	if len(request.URL.RawQuery) > 0 {
176		request.URL.RawQuery = "&" + opQuery
177	} else {
178		request.URL.RawQuery = opQuery
179	}
180
181	request.Method = "GET"
182	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
183	if err != nil {
184		return out, metadata, &smithy.SerializationError{Err: err}
185	}
186
187	if err := awsRestjson1_serializeOpHttpBindingsListAccountsInput(input, restEncoder); err != nil {
188		return out, metadata, &smithy.SerializationError{Err: err}
189	}
190
191	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
192		return out, metadata, &smithy.SerializationError{Err: err}
193	}
194	in.Request = request
195
196	return next.HandleSerialize(ctx, in)
197}
198func awsRestjson1_serializeOpHttpBindingsListAccountsInput(v *ListAccountsInput, encoder *httpbinding.Encoder) error {
199	if v == nil {
200		return fmt.Errorf("unsupported serialization of nil %T", v)
201	}
202
203	if v.AccessToken != nil && len(*v.AccessToken) > 0 {
204		locationName := "X-Amz-Sso_bearer_token"
205		encoder.SetHeader(locationName).String(*v.AccessToken)
206	}
207
208	if v.MaxResults != nil {
209		encoder.SetQuery("max_result").Integer(*v.MaxResults)
210	}
211
212	if v.NextToken != nil {
213		encoder.SetQuery("next_token").String(*v.NextToken)
214	}
215
216	return nil
217}
218
219type awsRestjson1_serializeOpLogout struct {
220}
221
222func (*awsRestjson1_serializeOpLogout) ID() string {
223	return "OperationSerializer"
224}
225
226func (m *awsRestjson1_serializeOpLogout) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
227	out middleware.SerializeOutput, metadata middleware.Metadata, err error,
228) {
229	request, ok := in.Request.(*smithyhttp.Request)
230	if !ok {
231		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
232	}
233
234	input, ok := in.Parameters.(*LogoutInput)
235	_ = input
236	if !ok {
237		return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
238	}
239
240	opPath, opQuery := httpbinding.SplitURI("/logout")
241	request.URL.Path = opPath
242	if len(request.URL.RawQuery) > 0 {
243		request.URL.RawQuery = "&" + opQuery
244	} else {
245		request.URL.RawQuery = opQuery
246	}
247
248	request.Method = "POST"
249	restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
250	if err != nil {
251		return out, metadata, &smithy.SerializationError{Err: err}
252	}
253
254	if err := awsRestjson1_serializeOpHttpBindingsLogoutInput(input, restEncoder); err != nil {
255		return out, metadata, &smithy.SerializationError{Err: err}
256	}
257
258	if request.Request, err = restEncoder.Encode(request.Request); err != nil {
259		return out, metadata, &smithy.SerializationError{Err: err}
260	}
261	in.Request = request
262
263	return next.HandleSerialize(ctx, in)
264}
265func awsRestjson1_serializeOpHttpBindingsLogoutInput(v *LogoutInput, encoder *httpbinding.Encoder) error {
266	if v == nil {
267		return fmt.Errorf("unsupported serialization of nil %T", v)
268	}
269
270	if v.AccessToken != nil && len(*v.AccessToken) > 0 {
271		locationName := "X-Amz-Sso_bearer_token"
272		encoder.SetHeader(locationName).String(*v.AccessToken)
273	}
274
275	return nil
276}
277