1313import software .amazon .polymorph .smithygo .codegen .GoDelegator ;
1414import software .amazon .polymorph .smithygo .codegen .GoWriter ;
1515import software .amazon .polymorph .smithygo .codegen .SmithyGoDependency ;
16+ import software .amazon .polymorph .smithygo .codegen .SymbolUtils ;
1617import software .amazon .polymorph .smithygo .codegen .UnionGenerator ;
1718import software .amazon .polymorph .smithygo .localservice .nameresolver .DafnyNameResolver ;
1819import software .amazon .polymorph .smithygo .localservice .nameresolver .SmithyNameResolver ;
3132import software .amazon .smithy .model .shapes .OperationShape ;
3233import software .amazon .smithy .model .shapes .ResourceShape ;
3334import software .amazon .smithy .model .shapes .ServiceShape ;
35+ import software .amazon .smithy .model .shapes .Shape ;
3436import software .amazon .smithy .model .traits .ErrorTrait ;
3537import software .amazon .smithy .model .traits .UnitTypeTrait ;
3638
@@ -118,7 +120,29 @@ void generateClient(GoWriter writer) {
118120 SmithyNameResolver .smithyTypesNamespace (service )
119121 );
120122 writer .addUseImports (SmithyGoDependency .CONTEXT );
121-
123+ var configShape = configSymbol .expectProperty (
124+ SymbolUtils .SHAPE ,
125+ Shape .class
126+ );
127+ if (
128+ !configShape
129+ .toShapeId ()
130+ .getNamespace ()
131+ .equals (service .toShapeId ().getNamespace ())
132+ ) {
133+ writer .addImportFromModule (
134+ SmithyNameResolver .getGoModuleNameForSmithyNamespace (
135+ configShape .toShapeId ().getNamespace ()
136+ ),
137+ SmithyNameResolver .smithyTypesNamespace (configShape )
138+ );
139+ writer .addImportFromModule (
140+ SmithyNameResolver .getGoModuleNameForSmithyNamespace (
141+ configShape .toShapeId ().getNamespace ()
142+ ),
143+ SmithyNameResolver .shapeNamespace (configShape )
144+ );
145+ }
122146 final var dafnyClient = DafnyNameResolver .getDafnyInterfaceClient (service );
123147 writer .write (
124148 """
@@ -139,7 +163,7 @@ func NewClient(clientConfig $L) (*$T, error) {
139163 """ ,
140164 serviceSymbol ,
141165 dafnyClient ,
142- SmithyNameResolver .getSmithyType (service , configSymbol ),
166+ SmithyNameResolver .getSmithyType (configShape , configSymbol ),
143167 serviceSymbol ,
144168 SmithyNameResolver .getToDafnyMethodName (
145169 service ,
0 commit comments