package {{invokerPackage}}

{{#imports}}import {{import}}
{{/imports}}
import {{apiPackage}}._

import io.swagger.client._

import java.io.Closeable

class {{clientName}}(config: SwaggerConfig) extends Closeable {
  val locator = config.locator
  val name = config.name

  private[this] val client = transportClient

  protected def transportClient: TransportClient = new RestClient(config)
  {{#apiInfo}}{{#apis}}
  val {{classVarName}} = new {{classname}}(client, config)
  {{/apis}}{{/apiInfo}}

  def close() {
    client.close()
  }
}