@@ -270,28 +270,38 @@ private void generateEndpointParameterInstructionProvider() {
270
270
if (!service .hasTrait (EndpointRuleSetTrait .class )) {
271
271
return ;
272
272
}
273
+
274
+ writer .addImport (
275
+ "commonParams" , null ,
276
+ Paths .get ("." , CodegenUtils .SOURCE_FOLDER , "endpoint/EndpointParameters" ).toString ()
277
+ );
278
+
279
+ RuleSetParameterFinder parameterFinder = new RuleSetParameterFinder (service );
280
+ Map <String , String > staticContextParamValues = parameterFinder .getStaticContextParamValues (operation );
281
+ Map <String , String > contextParams = parameterFinder .getContextParams (
282
+ model .getShape (operation .getInputShape ()).get ()
283
+ );
284
+ Map <String , String > operationContextParamValues = parameterFinder .getOperationContextParamValues (operation );
285
+
286
+ if (staticContextParamValues .isEmpty () && contextParams .isEmpty () && operationContextParamValues .isEmpty ()) {
287
+ writer .write (".ep(commonParams)" );
288
+ return ;
289
+ }
290
+
273
291
writer .write (".ep({" )
274
292
.indent ();
275
293
{
276
- writer .addImport (
277
- "commonParams" , null ,
278
- Paths .get ("." , CodegenUtils .SOURCE_FOLDER , "endpoint/EndpointParameters" ).toString ()
279
- );
280
-
281
294
writer .write ("...commonParams," );
282
-
283
- RuleSetParameterFinder parameterFinder = new RuleSetParameterFinder (service );
284
295
Set <String > paramNames = new HashSet <>();
285
296
286
- parameterFinder . getStaticContextParamValues ( operation ) .forEach ((name , value ) -> {
297
+ staticContextParamValues .forEach ((name , value ) -> {
287
298
paramNames .add (name );
288
299
writer .write (
289
300
"$L: { type: \" staticContextParams\" , value: $L }," ,
290
301
name , value );
291
302
});
292
303
293
- Shape operationInput = model .getShape (operation .getInputShape ()).get ();
294
- parameterFinder .getContextParams (operationInput ).forEach ((name , memberName ) -> {
304
+ contextParams .forEach ((name , memberName ) -> {
295
305
if (!paramNames .contains (name )) {
296
306
writer .write (
297
307
"$L: { type: \" contextParams\" , name: \" $L\" }," ,
@@ -300,7 +310,7 @@ private void generateEndpointParameterInstructionProvider() {
300
310
paramNames .add (name );
301
311
});
302
312
303
- parameterFinder . getOperationContextParamValues ( operation ) .forEach ((name , jmesPathForInputInJs ) -> {
313
+ operationContextParamValues .forEach ((name , jmesPathForInputInJs ) -> {
304
314
writer .write (
305
315
"""
306
316
$L: { type: \" operationContextParams\" , name: $L },
0 commit comments