@@ -387,17 +387,19 @@ static void writeHostPrefix(GenerationContext context, OperationShape operation)
387
387
writer .addImport ("isValidHostname" , "__isValidHostname" ,
388
388
TypeScriptDependency .AWS_SDK_PROTOCOL_HTTP .packageName );
389
389
writer .write ("resolvedHostname = $S + resolvedHostname;" , trait .getHostPrefix ().toString ());
390
- List <SmithyPattern .Segment > prefixLabels = trait .getHostPrefix ().getLabels ();
391
- StructureShape inputShape = context .getModel ().expectShape (operation .getInput ()
392
- .get (), StructureShape .class );
393
- for (SmithyPattern .Segment label : prefixLabels ) {
394
- MemberShape member = inputShape .getMember (label .getContent ()).get ();
395
- String memberName = symbolProvider .toMemberName (member );
396
- writer .openBlock ("if (input.$L === undefined) {" , "}" , memberName , () -> {
397
- writer .write ("throw new Error('Empty value provided for input host prefix: $L.');" , memberName );
398
- });
399
- writer .write ("resolvedHostname = resolvedHostname.replace(\" {$L}\" , input.$L!)" ,
400
- label .getContent (), memberName );
390
+ if (operation .getInput ().isPresent ()) {
391
+ List <SmithyPattern .Segment > prefixLabels = trait .getHostPrefix ().getLabels ();
392
+ StructureShape inputShape = context .getModel ().expectShape (operation .getInput ()
393
+ .get (), StructureShape .class );
394
+ for (SmithyPattern .Segment label : prefixLabels ) {
395
+ MemberShape member = inputShape .getMember (label .getContent ()).get ();
396
+ String memberName = symbolProvider .toMemberName (member );
397
+ writer .openBlock ("if (input.$L === undefined) {" , "}" , memberName , () -> {
398
+ writer .write ("throw new Error('Empty value provided for input host prefix: $L.');" , memberName );
399
+ });
400
+ writer .write ("resolvedHostname = resolvedHostname.replace(\" {$L}\" , input.$L!)" ,
401
+ label .getContent (), memberName );
402
+ }
401
403
}
402
404
writer .openBlock ("if (!__isValidHostname(resolvedHostname)) {" , "}" , () -> {
403
405
writer .write ("throw new Error(\" ValidationError: prefixed hostname must be hostname compatible.\" );" );
0 commit comments