# This file generated by `mix dagger.gen`. Please DO NOT EDIT.
defmodule Dagger.TypeDefKind do
  @moduledoc "Distinguishes the different kinds of TypeDefs."
  @type t() ::
          :BOOLEAN_KIND
          | :INPUT_KIND
          | :INTEGER_KIND
          | :INTERFACE_KIND
          | :LIST_KIND
          | :OBJECT_KIND
          | :STRING_KIND
          | :VOID_KIND
  (
    @doc "A boolean value."
    @spec boolean_kind() :: :BOOLEAN_KIND
    def boolean_kind() do
      :BOOLEAN_KIND
    end
  )

  (
    @doc "A graphql input type, used only when representing the core API via TypeDefs."
    @spec input_kind() :: :INPUT_KIND
    def input_kind() do
      :INPUT_KIND
    end
  )

  (
    @doc "An integer value."
    @spec integer_kind() :: :INTEGER_KIND
    def integer_kind() do
      :INTEGER_KIND
    end
  )

  (
    @doc "A named type of functions that can be matched+implemented by other objects+interfaces.\n\nAlways paired with an InterfaceTypeDef."
    @spec interface_kind() :: :INTERFACE_KIND
    def interface_kind() do
      :INTERFACE_KIND
    end
  )

  (
    @doc "A list of values all having the same type.\n\nAlways paired with a ListTypeDef."
    @spec list_kind() :: :LIST_KIND
    def list_kind() do
      :LIST_KIND
    end
  )

  (
    @doc "A named type defined in the GraphQL schema, with fields and functions.\n\nAlways paired with an ObjectTypeDef."
    @spec object_kind() :: :OBJECT_KIND
    def object_kind() do
      :OBJECT_KIND
    end
  )

  (
    @doc "A string value."
    @spec string_kind() :: :STRING_KIND
    def string_kind() do
      :STRING_KIND
    end
  )

  (
    @doc "A special kind used to signify that no value is returned.\n\nThis 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."
    @spec void_kind() :: :VOID_KIND
    def void_kind() do
      :VOID_KIND
    end
  )
end
