@@ -43,13 +43,13 @@ class AuthSchemeResolverGenerator {
43
43
private fun renderServiceSpecificAuthResolverParamsStruct (
44
44
serviceIndex : ServiceIndex ,
45
45
ctx : ProtocolGenerator .GenerationContext ,
46
- writer : SwiftWriter
46
+ writer : SwiftWriter ,
47
47
) {
48
48
writer.apply {
49
49
openBlock(
50
50
" public struct ${getSdkId(ctx)}${SmithyHTTPAuthAPITypes .AuthSchemeResolverParams .name} : \$ N {" ,
51
51
" }" ,
52
- SmithyHTTPAuthAPITypes .AuthSchemeResolverParams
52
+ SmithyHTTPAuthAPITypes .AuthSchemeResolverParams ,
53
53
) {
54
54
write(" public let operation: \$ N" , SwiftTypes .String )
55
55
@@ -71,7 +71,10 @@ class AuthSchemeResolverGenerator {
71
71
}
72
72
}
73
73
74
- private fun renderEndpointParamFields (ctx : ProtocolGenerator .GenerationContext , writer : SwiftWriter ) {
74
+ private fun renderEndpointParamFields (
75
+ ctx : ProtocolGenerator .GenerationContext ,
76
+ writer : SwiftWriter ,
77
+ ) {
75
78
writer.apply {
76
79
val ruleSetNode = ctx.service.getTrait<EndpointRuleSetTrait >()?.ruleSet
77
80
val ruleSet = if (ruleSetNode != null ) EndpointRuleSet .fromNode(ruleSetNode) else null
@@ -87,12 +90,15 @@ class AuthSchemeResolverGenerator {
87
90
}
88
91
}
89
92
90
- private fun renderServiceSpecificAuthResolverProtocol (ctx : ProtocolGenerator .GenerationContext , writer : SwiftWriter ) {
93
+ private fun renderServiceSpecificAuthResolverProtocol (
94
+ ctx : ProtocolGenerator .GenerationContext ,
95
+ writer : SwiftWriter ,
96
+ ) {
91
97
writer.apply {
92
98
openBlock(
93
99
" public protocol ${getServiceSpecificAuthSchemeResolverName(ctx)} : \$ N {" ,
94
100
" }" ,
95
- SmithyHTTPAuthAPITypes .AuthSchemeResolver
101
+ SmithyHTTPAuthAPITypes .AuthSchemeResolver ,
96
102
) {
97
103
// This is just a parent protocol that all auth scheme resolvers of a given service must conform to.
98
104
write(" // Intentionally empty." )
@@ -105,16 +111,19 @@ class AuthSchemeResolverGenerator {
105
111
private fun renderServiceSpecificDefaultResolver (
106
112
serviceIndex : ServiceIndex ,
107
113
ctx : ProtocolGenerator .GenerationContext ,
108
- writer : SwiftWriter
114
+ writer : SwiftWriter ,
109
115
) {
110
116
val sdkId = getSdkId(ctx)
111
117
112
118
// Model-based auth scheme resolver is internal implementation detail for services that use rules based resolvers,
113
119
// and is used as fallback only if endpoint resolver returns no valid auth scheme(s).
114
120
val usesRulesBasedResolver = usesRulesBasedAuthResolver(ctx)
115
121
val defaultResolverName =
116
- if (usesRulesBasedResolver) " InternalModeled$sdkId$AUTH_SCHEME_RESOLVER "
117
- else " Default$sdkId$AUTH_SCHEME_RESOLVER "
122
+ if (usesRulesBasedResolver) {
123
+ " InternalModeled$sdkId$AUTH_SCHEME_RESOLVER "
124
+ } else {
125
+ " Default$sdkId$AUTH_SCHEME_RESOLVER "
126
+ }
118
127
119
128
// Model-based auth scheme resolver should be private internal impl detail if service uses rules-based resolver.
120
129
val accessModifier = if (usesRulesBasedResolver) " private" else " public"
@@ -126,15 +135,15 @@ class AuthSchemeResolverGenerator {
126
135
" }" ,
127
136
accessModifier,
128
137
defaultResolverName,
129
- serviceSpecificAuthResolverProtocol
138
+ serviceSpecificAuthResolverProtocol,
130
139
) {
131
140
write(" " )
132
141
renderResolveAuthSchemeMethod(serviceIndex, ctx, writer)
133
142
write(" " )
134
143
renderConstructParametersMethod(
135
144
serviceIndex.getEffectiveAuthSchemes(ctx.service).contains(SigV4Trait .ID ),
136
145
ctx,
137
- writer
146
+ writer,
138
147
)
139
148
}
140
149
}
@@ -143,7 +152,7 @@ class AuthSchemeResolverGenerator {
143
152
private fun renderResolveAuthSchemeMethod (
144
153
serviceIndex : ServiceIndex ,
145
154
ctx : ProtocolGenerator .GenerationContext ,
146
- writer : SwiftWriter
155
+ writer : SwiftWriter ,
147
156
) {
148
157
val sdkId = getSdkId(ctx)
149
158
val serviceParamsName = sdkId + SmithyHTTPAuthAPITypes .AuthSchemeResolverParams .name
@@ -159,7 +168,10 @@ class AuthSchemeResolverGenerator {
159
168
write(" var validAuthOptions = [\$ N]()" , SmithyHTTPAuthAPITypes .AuthOption )
160
169
// Cast params to service specific params object
161
170
openBlock(" guard let serviceParams = params as? \$ L else {" , " }" , serviceParamsName) {
162
- write(" throw \$ N.authError(\" Service specific auth scheme parameters type must be passed to auth scheme resolver.\" )" , SmithyTypes .ClientError )
171
+ write(
172
+ " throw \$ N.authError(\" Service specific auth scheme parameters type must be passed to auth scheme resolver.\" )" ,
173
+ SmithyTypes .ClientError ,
174
+ )
163
175
}
164
176
// Render switch block
165
177
renderSwitchBlock(serviceIndex, ctx, writer)
@@ -172,7 +184,7 @@ class AuthSchemeResolverGenerator {
172
184
private fun renderSwitchBlock (
173
185
serviceIndex : ServiceIndex ,
174
186
ctx : ProtocolGenerator .GenerationContext ,
175
- writer : SwiftWriter
187
+ writer : SwiftWriter ,
176
188
) {
177
189
writer.apply {
178
190
// Switch block for iterating over operation name cases
@@ -187,11 +199,12 @@ class AuthSchemeResolverGenerator {
187
199
opShape.hasTrait(UnsignedPayloadTrait ::class .java)
188
200
) {
189
201
val opName = it.name.toLowerCamelCase()
190
- val validSchemesForOp = serviceIndex.getEffectiveAuthSchemes(
191
- ctx.service,
192
- it,
193
- ServiceIndex .AuthSchemeMode .NO_AUTH_AWARE
194
- )
202
+ val validSchemesForOp =
203
+ serviceIndex.getEffectiveAuthSchemes(
204
+ ctx.service,
205
+ it,
206
+ ServiceIndex .AuthSchemeMode .NO_AUTH_AWARE ,
207
+ )
195
208
write(" case \" $opName \" :" )
196
209
renderSwitchCase(validSchemesForOp, writer)
197
210
}
@@ -205,7 +218,10 @@ class AuthSchemeResolverGenerator {
205
218
}
206
219
}
207
220
208
- private fun renderSwitchCase (schemes : Map <ShapeId , Trait >, writer : SwiftWriter ) {
221
+ private fun renderSwitchCase (
222
+ schemes : Map <ShapeId , Trait >,
223
+ writer : SwiftWriter ,
224
+ ) {
209
225
writer.apply {
210
226
indent()
211
227
schemes.forEach {
@@ -223,10 +239,16 @@ class AuthSchemeResolverGenerator {
223
239
}
224
240
}
225
241
226
- private fun renderSigV4AuthOption (scheme : Map .Entry <ShapeId , Trait >, writer : SwiftWriter ) {
242
+ private fun renderSigV4AuthOption (
243
+ scheme : Map .Entry <ShapeId , Trait >,
244
+ writer : SwiftWriter ,
245
+ ) {
227
246
writer.apply {
228
247
write(" var sigV4Option = \$ N(schemeID: \$ S)" , SmithyHTTPAuthAPITypes .AuthOption , scheme.key)
229
- write(" sigV4Option.signingProperties.set(key: \$ N.signingName, value: \" ${(scheme.value as SigV4Trait ).name} \" )" , SmithyHTTPAuthAPITypes .SigningPropertyKeys )
248
+ write(
249
+ " sigV4Option.signingProperties.set(key: \$ N.signingName, value: \" ${(scheme.value as SigV4Trait ).name} \" )" ,
250
+ SmithyHTTPAuthAPITypes .SigningPropertyKeys ,
251
+ )
230
252
openBlock(" guard let region = serviceParams.region else {" , " }" ) {
231
253
write(" throw \$ N.authError(\" Missing region in auth scheme parameters for SigV4 auth scheme.\" )" , SmithyTypes .ClientError )
232
254
}
@@ -238,20 +260,23 @@ class AuthSchemeResolverGenerator {
238
260
private fun renderConstructParametersMethod (
239
261
hasSigV4 : Boolean ,
240
262
ctx : ProtocolGenerator .GenerationContext ,
241
- writer : SwiftWriter
263
+ writer : SwiftWriter ,
242
264
) {
243
265
writer.apply {
244
266
openBlock(
245
267
" public func constructParameters(context: \$ N) throws -> \$ N {" ,
246
268
" }" ,
247
269
SmithyTypes .Context ,
248
- SmithyHTTPAuthAPITypes .AuthSchemeResolverParams
270
+ SmithyHTTPAuthAPITypes .AuthSchemeResolverParams ,
249
271
) {
250
272
if (usesRulesBasedAuthResolver(ctx)) {
251
273
write(" return try Default${getSdkId(ctx) + AUTH_SCHEME_RESOLVER } ().constructParameters(context: context)" )
252
274
} else {
253
275
openBlock(" guard let opName = context.getOperation() else {" , " }" ) {
254
- write(" throw \$ N.dataNotFound(\" Operation name not configured in middleware context for auth scheme resolver params construction.\" )" , SmithyTypes .ClientError )
276
+ write(
277
+ " throw \$ N.dataNotFound(\" Operation name not configured in middleware context for auth scheme resolver params construction.\" )" ,
278
+ SmithyTypes .ClientError ,
279
+ )
255
280
}
256
281
val paramType = getSdkId(ctx) + SmithyHTTPAuthAPITypes .AuthSchemeResolverParams .name
257
282
if (hasSigV4) {
@@ -269,31 +294,35 @@ class AuthSchemeResolverGenerator {
269
294
private val AUTH_SCHEME_RESOLVER = " AuthSchemeResolver"
270
295
271
296
// Utility function for checking if a service relies on endpoint resolver for auth scheme resolution
272
- fun usesRulesBasedAuthResolver (ctx : ProtocolGenerator .GenerationContext ): Boolean {
273
- return listOf (" s3" , " eventbridge" , " cloudfront keyvaluestore" , " sesv2" ).contains(ctx.settings.sdkId.lowercase(Locale .US ))
274
- }
297
+ fun usesRulesBasedAuthResolver (ctx : ProtocolGenerator .GenerationContext ): Boolean =
298
+ listOf (" s3" , " eventbridge" , " cloudfront keyvaluestore" , " sesv2" ).contains(ctx.settings.sdkId.lowercase(Locale .US ))
275
299
276
300
// Utility function for returning sdkId from generation context
277
- fun getSdkId (ctx : ProtocolGenerator .GenerationContext ): String {
278
- return if (ctx.service.hasTrait(ServiceTrait ::class .java))
279
- ctx.service.getTrait(ServiceTrait ::class .java).get().sdkId.clientName()
280
- else ctx.settings.sdkId.clientName()
281
- }
301
+ fun getSdkId (ctx : ProtocolGenerator .GenerationContext ): String =
302
+ if (ctx.service.hasTrait(ServiceTrait ::class .java)) {
303
+ ctx.service
304
+ .getTrait(ServiceTrait ::class .java)
305
+ .get()
306
+ .sdkId
307
+ .clientName()
308
+ } else {
309
+ ctx.settings.sdkId.clientName()
310
+ }
282
311
283
- fun getServiceSpecificAuthSchemeResolverName (ctx : ProtocolGenerator .GenerationContext ): Symbol {
284
- return buildSymbol {
312
+ fun getServiceSpecificAuthSchemeResolverName (ctx : ProtocolGenerator .GenerationContext ): Symbol =
313
+ buildSymbol {
285
314
name = " ${getSdkId(ctx)}$AUTH_SCHEME_RESOLVER "
286
315
}
287
- }
288
316
}
289
317
}
290
318
291
319
fun Parameter.toSymbol (): Symbol {
292
- val swiftType = when (type) {
293
- ParameterType .STRING -> SwiftTypes .String
294
- ParameterType .BOOLEAN -> SwiftTypes .Bool
295
- ParameterType .STRING_ARRAY -> SwiftTypes .StringArray
296
- }
320
+ val swiftType =
321
+ when (type) {
322
+ ParameterType .STRING -> SwiftTypes .String
323
+ ParameterType .BOOLEAN -> SwiftTypes .Bool
324
+ ParameterType .STRING_ARRAY -> SwiftTypes .StringArray
325
+ }
297
326
var builder = Symbol .builder().name(swiftType.fullName)
298
327
if (! isRequired) {
299
328
builder = builder.boxed()
0 commit comments