@@ -270,28 +270,38 @@ private void generateEndpointParameterInstructionProvider() {
270270 if (!service .hasTrait (EndpointRuleSetTrait .class )) {
271271 return ;
272272 }
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+
273291 writer .write (".ep({" )
274292 .indent ();
275293 {
276- writer .addImport (
277- "commonParams" , null ,
278- Paths .get ("." , CodegenUtils .SOURCE_FOLDER , "endpoint/EndpointParameters" ).toString ()
279- );
280-
281294 writer .write ("...commonParams," );
282-
283- RuleSetParameterFinder parameterFinder = new RuleSetParameterFinder (service );
284295 Set <String > paramNames = new HashSet <>();
285296
286- parameterFinder . getStaticContextParamValues ( operation ) .forEach ((name , value ) -> {
297+ staticContextParamValues .forEach ((name , value ) -> {
287298 paramNames .add (name );
288299 writer .write (
289300 "$L: { type: \" staticContextParams\" , value: $L }," ,
290301 name , value );
291302 });
292303
293- Shape operationInput = model .getShape (operation .getInputShape ()).get ();
294- parameterFinder .getContextParams (operationInput ).forEach ((name , memberName ) -> {
304+ contextParams .forEach ((name , memberName ) -> {
295305 if (!paramNames .contains (name )) {
296306 writer .write (
297307 "$L: { type: \" contextParams\" , name: \" $L\" }," ,
@@ -300,7 +310,7 @@ private void generateEndpointParameterInstructionProvider() {
300310 paramNames .add (name );
301311 });
302312
303- parameterFinder . getOperationContextParamValues ( operation ) .forEach ((name , jmesPathForInputInJs ) -> {
313+ operationContextParamValues .forEach ((name , jmesPathForInputInJs ) -> {
304314 writer .write (
305315 """
306316 $L: { type: \" operationContextParams\" , name: $L },
0 commit comments