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

Distinguishes the different kinds of TypeDefs.

# `t`

```elixir
@type t() ::
  :STRING_KIND
  | :INTEGER_KIND
  | :FLOAT_KIND
  | :BOOLEAN_KIND
  | :SCALAR_KIND
  | :LIST_KIND
  | :OBJECT_KIND
  | :INTERFACE_KIND
  | :INPUT_KIND
  | :VOID_KIND
  | :ENUM_KIND
  | :STRING
  | :INTEGER
  | :FLOAT
  | :BOOLEAN
  | :SCALAR
  | :LIST
  | :OBJECT
  | :INTERFACE
  | :INPUT
  | :VOID
  | :ENUM
```

# `boolean`

```elixir
@spec boolean() :: :BOOLEAN
```

A boolean value.

# `boolean_kind`

```elixir
@spec boolean_kind() :: :BOOLEAN_KIND
```

A boolean value.

# `enum`

```elixir
@spec enum() :: :ENUM
```

A GraphQL enum type and its values

Always paired with an EnumTypeDef.

# `enum_kind`

```elixir
@spec enum_kind() :: :ENUM_KIND
```

A GraphQL enum type and its values

Always paired with an EnumTypeDef.

# `float`

```elixir
@spec float() :: :FLOAT
```

A float value.

# `float_kind`

```elixir
@spec float_kind() :: :FLOAT_KIND
```

A float value.

# `input`

```elixir
@spec input() :: :INPUT
```

A graphql input type, used only when representing the core API via TypeDefs.

# `input_kind`

```elixir
@spec input_kind() :: :INPUT_KIND
```

A graphql input type, used only when representing the core API via TypeDefs.

# `integer`

```elixir
@spec integer() :: :INTEGER
```

An integer value.

# `integer_kind`

```elixir
@spec integer_kind() :: :INTEGER_KIND
```

An integer value.

# `interface`

```elixir
@spec interface() :: :INTERFACE
```

Always paired with an InterfaceTypeDef.

A named type of functions that can be matched+implemented by other objects+interfaces.

# `interface_kind`

```elixir
@spec interface_kind() :: :INTERFACE_KIND
```

Always paired with an InterfaceTypeDef.

A named type of functions that can be matched+implemented by other objects+interfaces.

# `list`

```elixir
@spec list() :: :LIST
```

Always paired with a ListTypeDef.

A list of values all having the same type.

# `list_kind`

```elixir
@spec list_kind() :: :LIST_KIND
```

Always paired with a ListTypeDef.

A list of values all having the same type.

# `object`

```elixir
@spec object() :: :OBJECT
```

Always paired with an ObjectTypeDef.

A named type defined in the GraphQL schema, with fields and functions.

# `object_kind`

```elixir
@spec object_kind() :: :OBJECT_KIND
```

Always paired with an ObjectTypeDef.

A named type defined in the GraphQL schema, with fields and functions.

# `scalar`

```elixir
@spec scalar() :: :SCALAR
```

A scalar value of any basic kind.

# `scalar_kind`

```elixir
@spec scalar_kind() :: :SCALAR_KIND
```

A scalar value of any basic kind.

# `string`

```elixir
@spec string() :: :STRING
```

A string value.

# `string_kind`

```elixir
@spec string_kind() :: :STRING_KIND
```

A string value.

# `void`

```elixir
@spec void() :: :VOID
```

A special kind used to signify that no value is returned.

This is used for functions that have no return value. The outer TypeDef specifying this Kind is always Optional, as the Void is never actually represented.

# `void_kind`

```elixir
@spec void_kind() :: :VOID_KIND
```

A special kind used to signify that no value is returned.

This is used for functions that have no return value. The outer TypeDef specifying this Kind is always Optional, as the Void is never actually represented.

---

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