defmodule Absinthe.Type.Argument do
@moduledoc """
Used to define an argument.
Usually these are defined using `Absinthe.Schema.Notation.arg/2`
"""
alias Absinthe.Type
@typedoc """
Argument configuration
* `:name` - The name of the argument, usually assigned automatically using `Absinthe.Schema.Notation.arg/2`.
* `:type` - The type values the argument accepts/will coerce to.
* `:deprecation` - Deprecation information for an argument, usually
set-up using `Absinthe.Schema.Notation.deprecate/1`.
* `:description` - Description of an argument, useful for introspection.
The `__private__` and `__reference__` fields are for internal use.
"""
@type t :: %__MODULE__{
name: binary,
type: Type.identifier_t(),
default_value: any,
deprecation: Type.Deprecation.t() | nil,
description: binary | nil,
definition: module,
__reference__: Type.Reference.t(),
__private__: Keyword.t()
}
defstruct identifier: nil,
name: nil,
description: nil,
type: nil,
deprecation: nil,
default_value: nil,
definition: nil,
__reference__: nil,
__private__: []
end