# ...
generation:
  comments:
    omitDescriptionIfSummaryPresent: true
```

### Model Comments

For each model in the generated SDK, comments are generated from the description of the schema. For example, if you have the following schema:

```yaml
components:
  schemas:
    Pet:
      type: object
      description: A pet sold in the pet store
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
```

The generated SDK will have a model commented like so:

<CodeWithTabs
  tabs={[
    {
      label: "Go",
      language: "go",
      code: `// Pet
  // A pet sold in the pet store
  type Pet struct {
    // ...`,
    },
    {
      label: "Python",
      language: "python",
      code: `@dataclass_json
@dataclass
class Pet:
      r"""Pet
      A pet sold in the pet store
      """
      # ...`,
    },
    {
      label: "TypeScript",
      language: "typescript",
      code: `// Pet
  /**
    * A pet sold in the pet store
    **/
  export class Pet extends SpeakeasyBase {
      // ...`,
    },
    {
      label: "Java",
      language: "java",
      code: `/**
    * Pet
    *
    * A pet sold in the pet store
    */
  public class Pet {
      // ...
  }`,
    },
    {
      label: "C#",
      language: "csharp",
      code: `/// <summary>
/// A pet sold in the pet store
/// </summary>
public class Pet {
    // ...
}`,
    },
  ]}
/>

### Per-SDK Comments

You can configure comments that only display in the SDK for a single language. For example, if you need the comment for the TypeScript or the Golang SDK to say something different from the others, or you want to control the documentation separately for each language, you can use the Speakeasy `x-speakeasy-docs` extension. Anywhere you can set the `summary` or `description`, you can also add `x-speakeasy-docs` with per-language text for the docs.

Consider the following parameter description:

```yaml
parameters:
  - name: type
    in: query
    description: This query parameter names the type of drink to filter the results by. If not provided, all drinks will be returned.
    required: false
    schema:
      $ref: "#/components/schemas/DrinkType"
    x-speakeasy-docs:
      go:
        description: The type field names the type of drink to filter the results by. If set to nil, all drinks will be returned.
      python:
        description: The ``type`` field names the type of drink to filter the results by. If set to ``None``, all drinks will be returned.
      typescript:
        description: This field is the type of drink to filter the results by. If set to null, all drinks will be returned.
```

The documentation generated for each SDK will contain different comments specific to the respective programming languages.

## Class Names

By default, Speakeasy SDKs will be generated with the class name, `SDK`. However, you can configure a custom class name by modifying your `gen.yaml` file to include:

```yaml
generation:
  sdkClassName: "myClassName"
```

This will yield a package like this:

```go
package petshop

import (
	"net/http"

	"openapi/pkg/utils"
)

var ServerList = []string{
	"http://petstore.speakeasy.io/v1",
}

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

type PetShop struct {
	Pets *Pets

	_defaultClient  HTTPClient
	_securityClient HTTPClient

	_serverURL  string
	_language   string
	_sdkVersion string
	_genVersion string
}
```