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