# `Dagger.FunctionArg`
[🔗](https://github.com/dagger/dagger/blob/v0.20.5/sdk/elixir/lib/dagger/gen/function_arg.ex#L2)

An argument accepted by a function.

This is a specification for an argument at function definition time, not an argument passed at function call time.

# `t`

```elixir
@type t() :: %Dagger.FunctionArg{client: term(), query_builder: term()}
```

# `default_path`

```elixir
@spec default_path(t()) :: {:ok, String.t()} | {:error, term()}
```

Only applies to arguments of type File or Directory. If the argument is not set, load it from the given path in the context directory

# `default_value`

```elixir
@spec default_value(t()) :: {:ok, Dagger.JSON.t()} | {:error, term()}
```

A default value to use for this argument when not explicitly set by the caller, if any.

# `deprecated`

```elixir
@spec deprecated(t()) :: {:ok, String.t() | nil} | {:error, term()}
```

The reason this function is deprecated, if any.

# `description`

```elixir
@spec description(t()) :: {:ok, String.t()} | {:error, term()}
```

A doc string for the argument, if any.

# `id`

```elixir
@spec id(t()) :: {:ok, Dagger.FunctionArgID.t()} | {:error, term()}
```

A unique identifier for this FunctionArg.

# `ignore`

```elixir
@spec ignore(t()) :: {:ok, [String.t()]} | {:error, term()}
```

Only applies to arguments of type Directory. The ignore patterns are applied to the input directory, and matching entries are filtered out, in a cache-efficient manner.

# `name`

```elixir
@spec name(t()) :: {:ok, String.t()} | {:error, term()}
```

The name of the argument in lowerCamelCase format.

# `source_map`

```elixir
@spec source_map(t()) :: Dagger.SourceMap.t() | nil
```

The location of this arg declaration.

# `type_def`

```elixir
@spec type_def(t()) :: Dagger.TypeDef.t()
```

The type of the argument.

---

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