# `DocuSign.SDKVersion`
[🔗](https://github.com/neilberkman/docusign_elixir/blob/v3.5.1/lib/docusign/sdk_version.ex#L1)

SDK version information and User-Agent header management.

This module provides version information about the DocuSign Elixir SDK
and formats the User-Agent header for API requests.

# `api_version`

```elixir
@spec api_version() :: String.t()
```

Returns the API version this SDK targets.

## Examples

    iex> DocuSign.SDKVersion.api_version()
    "v2.1"

# `metadata`

```elixir
@spec metadata() :: map()
```

Returns a map of SDK metadata for telemetry and logging.

## Examples

    iex> DocuSign.SDKVersion.metadata()
    %{
      sdk_name: "docusign-elixir",
      sdk_version: "3.5.1",
      api_version: "v2.1",
      elixir_version: "1.20.1",
      otp_version: "29"
    }

# `user_agent`

```elixir
@spec user_agent(keyword()) :: String.t()
```

Generates the User-Agent string for HTTP requests.

Includes SDK version, API version, and runtime information (Elixir and OTP versions).

## Options

  * `:custom_suffix` - Optional custom string to append to the User-Agent

## Examples

    iex> DocuSign.SDKVersion.user_agent()
    "docusign-elixir/3.5.1 (Elixir/1.20.1; OTP/29; API/v2.1)"

    iex> DocuSign.SDKVersion.user_agent(custom_suffix: "MyApp/1.0")
    "docusign-elixir/3.5.1 (Elixir/1.20.1; OTP/29; API/v2.1) MyApp/1.0"

# `version`

```elixir
@spec version() :: String.t()
```

Returns the SDK version.

## Examples

    iex> DocuSign.SDKVersion.version()
    "3.5.1"

---

*Consult [api-reference.md](api-reference.md) for complete listing*
