Dagger
Search

codegen

This module is an experiment in testing the viability of simplifying codegen implementations in Dagger SDKs using a module.

This is done by centralizing the GraphQL introspection, and pre-processing the data needed for templates as much as possible.

This lowers the barrier of entry for new SDKs, but also makes it a lot easier to maintain existing SDKs and keep them consistent with each other.

Installation

dagger install github.com/helderco/daggerverse/codegen@v0.1.4

Entrypoint

Return Type
Codegen
Example
func (m *myModule) example() *Codegen  {
	return dag.
			Codegen()
}
@function
def example() -> dag.Codegen:
	return (
		dag.codegen()
	)
@func()
example(): Codegen {
	return dag
		.codegen()
}

Types

Codegen

Functions for API introspection to facilitate codegen

experimental()

Experimental alternative to the introspection query, using the TypeDef API

TypeDefs require more requests than the introspection query, and some types haven’t been implemented yet, but they may provide more context like the module name that implements an object type, for example.

Return Type
Experimental !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 experimental \
 object-names
func (m *myModule) example() *CodegenExperimental  {
	return dag.
			Codegen().
			Experimental()
}
@function
def example() -> dag.CodegenExperimental:
	return (
		dag.codegen()
		.experimental()
	)
@func()
example(): CodegenExperimental {
	return dag
		.codegen()
		.experimental()
}

introspectionQuery()

Get the GraphQL query used to get type information

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspection-query
func (m *myModule) example(ctx context.Context) string  {
	return dag.
			Codegen().
			IntrospectionQuery(ctx)
}
@function
async def example() -> str:
	return await (
		dag.codegen()
		.introspection_query()
	)
@func()
async example(): Promise<string> {
	return dag
		.codegen()
		.introspectionQuery()
}

introspect()

Introspect the API to get the schema

The schema information is used to generate the client code.

Return Type
Schema !
Arguments
NameTypeDefault ValueDescription
fromJsonFile -A file with the result of the introspection query, in JSON format In runtime modules, the codegen function receives the contents of this file, which already filters out the runtime module itself from the results.
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 as-json
func (m *myModule) example() *CodegenSchema  {
	return dag.
			Codegen().
			Introspect()
}
@function
def example() -> dag.CodegenSchema:
	return (
		dag.codegen()
		.introspect()
	)
@func()
example(): CodegenSchema {
	return dag
		.codegen()
		.introspect()
}

Experimental

Experimental alternative to the introspection query, using the TypeDef API

objectNames()

Get the names of all object types in the API

Allows querying the API directly while filtering out the current module. It does take more requests, compared to the introspection query which takes a single request, or the introspection file which takes no requests. However when this module is consumed, there’s an exec to /runtime on every function call.

Return Type
[String ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 experimental \
 object-names
func (m *myModule) example(ctx context.Context) []string  {
	return dag.
			Codegen().
			Experimental().
			ObjectNames(ctx)
}
@function
async def example() -> List[str]:
	return await (
		dag.codegen()
		.experimental()
		.object_names()
	)
@func()
async example(): Promise<string[]> {
	return dag
		.codegen()
		.experimental()
		.objectNames()
}

inputNames()

Get the names of all input object types in the API

Only object types have an associated module name because input types (and others) are only used in the core API. Modules don’t expose either custom scalars, enums, or interfaces, for example.

Return Type
[String ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 experimental \
 input-names
func (m *myModule) example(ctx context.Context) []string  {
	return dag.
			Codegen().
			Experimental().
			InputNames(ctx)
}
@function
async def example() -> List[str]:
	return await (
		dag.codegen()
		.experimental()
		.input_names()
	)
@func()
async example(): Promise<string[]> {
	return dag
		.codegen()
		.experimental()
		.inputNames()
}

Schema

Result of the introspection

types()

A list of all types supported by this server

Probably better to use the functions that return a list of specific types instead, to render them as groups for the client (tip: use following order: Scalars, Enums, Inputs and Objects).

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 types \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Types()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.types()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.types()
}

asJson()

Result of the introspection, in JSON format

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 as-json
func (m *myModule) example(ctx context.Context) string  {
	return dag.
			Codegen().
			Introspect().
			AsJson(ctx)
}
@function
async def example() -> str:
	return await (
		dag.codegen()
		.introspect()
		.as_json()
	)
@func()
async example(): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.asJson()
}

rootType()

Returns the root object type (Client)

In the API, this corresponds to the “Query” object type.

Return Type
Type !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 root-type \
 is-id
func (m *myModule) example() *CodegenType  {
	return dag.
			Codegen().
			Introspect().
			RootType()
}
@function
def example() -> dag.CodegenType:
	return (
		dag.codegen()
		.introspect()
		.root_type()
	)
@func()
example(): CodegenType {
	return dag
		.codegen()
		.introspect()
		.rootType()
}

getType()

Get a type by name

Return Type
Type !
Arguments
NameTypeDefault ValueDescription
nameString !-The name of the type
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-id
func (m *myModule) example(name string) *CodegenType  {
	return dag.
			Codegen().
			Introspect().
			GetType(name)
}
@function
def example(name: str) -> dag.CodegenType:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
	)
@func()
example(name: string): CodegenType {
	return dag
		.codegen()
		.introspect()
		.getType(name)
}

ids()

Get a list of all custom ID scalar types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 ids \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Ids()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.ids()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.ids()
}

nonIdScalars()

Get a list of all non-ID scalar types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 non-id-scalars \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			NonIdScalars()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.non_id_scalars()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.nonIdScalars()
}

scalars()

Get a list of all scalar types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 scalars \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Scalars()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.scalars()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.scalars()
}

enums()

Get a list of all enum types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 enums \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Enums()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.enums()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.enums()
}

inputs()

Get a list of all input object types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 inputs \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Inputs()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.inputs()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.inputs()
}

objects()

Get a list of all object types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 objects \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Objects()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.objects()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.objects()
}

interfaces()

Get a list of all interface types

Return Type
[Type ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 interfaces \
 is-id
func (m *myModule) example() []*CodegenType  {
	return dag.
			Codegen().
			Introspect().
			Interfaces()
}
@function
def example() -> List[dag.CodegenType]:
	return (
		dag.codegen()
		.introspect()
		.interfaces()
	)
@func()
example(): CodegenType[] {
	return dag
		.codegen()
		.introspect()
		.interfaces()
}

Type

A type in the API

kind()

The kind of type, e.g., object, input object, scalar, or enum.

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 kind
func (m *myModule) example(ctx context.Context, name string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			Kind(ctx)
}
@function
async def example(name: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.kind()
	)
@func()
async example(name: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.kind()
}

name()

The name of the type

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 name
func (m *myModule) example(ctx context.Context, name string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			Name(ctx)
}
@function
async def example(name: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.name()
	)
@func()
async example(name: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.name()
}

description()

The description of the type

Return Type
String 
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 description
func (m *myModule) example(ctx context.Context, name string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			Description(ctx)
}
@function
async def example(name: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.description()
	)
@func()
async example(name: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.description()
}

fields()

An object type’s fields

Return Type
[Field ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 fields \
 has-args
func (m *myModule) example(name string) []*CodegenField  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			Fields()
}
@function
def example(name: str) -> List[dag.CodegenField]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.fields()
	)
@func()
example(name: string): CodegenField[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.fields()
}

inputFields()

An input object type’s fields

Return Type
[InputValue ! ] !
Example
Function CodegenType.inputFields is not accessible from the codegen module
func (m *myModule) example(name string) []*CodegenInputValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			InputFields()
}
@function
def example(name: str) -> List[dag.CodegenInputValue]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.input_fields()
	)
@func()
example(name: string): CodegenInputValue[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.inputFields()
}

enumValues()

An enum type’s values

Return Type
[EnumValue ! ] !
Example
Function CodegenType.enumValues is not accessible from the codegen module
func (m *myModule) example(name string) []*CodegenEnumValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			EnumValues()
}
@function
def example(name: str) -> List[dag.CodegenEnumValue]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.enum_values()
	)
@func()
example(name: string): CodegenEnumValue[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.enumValues()
}

isId()

Is it an ID scalar?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-id
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsId(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_id()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isId()
}

isScalar()

Is the type a scalar?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-scalar
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsScalar(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_scalar()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isScalar()
}

isEnum()

Is the type an enum?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-enum
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsEnum(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_enum()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isEnum()
}

isObject()

Is the type an object?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-object
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsObject(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_object()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isObject()
}

isInputObject()

Is the type an input object?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-input-object
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsInputObject(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_input_object()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isInputObject()
}

isInterface()

Is it an interface type?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-interface
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsInterface(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_interface()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isInterface()
}

isRoot()

Is it the root Client type?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 is-root
func (m *myModule) example(ctx context.Context, name string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			IsRoot(ctx)
}
@function
async def example(name: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.is_root()
	)
@func()
async example(name: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.isRoot()
}

getField()

Get an object type’s field by name

Return Type
Field !
Arguments
NameTypeDefault ValueDescription
nameString !-The name of the field
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 has-args
func (m *myModule) example(name string, name1 string) *CodegenField  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1)
}
@function
def example(name: str, name1: str) -> dag.CodegenField:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
	)
@func()
example(name: string, name1: string): CodegenField {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
}

leafs()

Get an object type’s fields that return a leaf type

Return Type
[Field ! ] !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 leafs \
 has-args
func (m *myModule) example(name string) []*CodegenField  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			Leafs()
}
@function
def example(name: str) -> List[dag.CodegenField]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.leafs()
	)
@func()
example(name: string): CodegenField[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.leafs()
}

simpleLeafs()

Get an object type’s leafs that don’t require arguments

Return Type
[Field ! ] !
Arguments
NameTypeDefault ValueDescription
optionalsBoolean falseAllow optional arguments?
idsBoolean falseAllow fields that return an ID?
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 simple-leafs \
 has-args
func (m *myModule) example(name string) []*CodegenField  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			SimpleLeafs()
}
@function
def example(name: str) -> List[dag.CodegenField]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.simple_leafs()
	)
@func()
example(name: string): CodegenField[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.simpleLeafs()
}

Field

An object type's field

name()

The name of the field

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 name
func (m *myModule) example(ctx context.Context, name string, name1 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			Name(ctx)
}
@function
async def example(name: str, name1: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.name()
	)
@func()
async example(name: string, name1: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.name()
}

description()

The description of the field

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 description
func (m *myModule) example(ctx context.Context, name string, name1 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			Description(ctx)
}
@function
async def example(name: str, name1: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.description()
	)
@func()
async example(name: string, name1: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.description()
}

type()

The return type of the field

Return Type
TypeRef !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 type \
 is-optional
func (m *myModule) example(name string, name1 string) *CodegenTypeRef  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			Type()
}
@function
def example(name: str, name1: str) -> dag.CodegenTypeRef:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.type()
	)
@func()
example(name: string, name1: string): CodegenTypeRef {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.type()
}

args()

The field’s arguments

Return Type
[InputValue ! ] !
Example
Function CodegenField.args is not accessible from the codegen module
func (m *myModule) example(name string, name1 string) []*CodegenInputValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			Args()
}
@function
def example(name: str, name1: str) -> List[dag.CodegenInputValue]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.args()
	)
@func()
example(name: string, name1: string): CodegenInputValue[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.args()
}

isDeprecated()

Is the field deprecated?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 is-deprecated
func (m *myModule) example(ctx context.Context, name string, name1 string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			IsDeprecated(ctx)
}
@function
async def example(name: str, name1: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.is_deprecated()
	)
@func()
async example(name: string, name1: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.isDeprecated()
}

deprecationReason()

The reason for deprecation, if exists

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 deprecation-reason
func (m *myModule) example(ctx context.Context, name string, name1 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			DeprecationReason(ctx)
}
@function
async def example(name: str, name1: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.deprecation_reason()
	)
@func()
async example(name: string, name1: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.deprecationReason()
}

nameWords()

The name of the field, split into words

Common initialisms are preserved, e.g., “ID” becomes “ID” and “URL” becomes “URL”. This is useful so SDKs don’t have to split the name themselves, before applying the language’s naming conventions, which can be a source of inconsistency.

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 name-words
func (m *myModule) example(ctx context.Context, name string, name1 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			NameWords(ctx)
}
@function
async def example(name: str, name1: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.name_words()
	)
@func()
async example(name: string, name1: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.nameWords()
}

hasArgs()

Does the field have any arguments?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 has-args
func (m *myModule) example(ctx context.Context, name string, name1 string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			HasArgs(ctx)
}
@function
async def example(name: str, name1: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.has_args()
	)
@func()
async example(name: string, name1: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.hasArgs()
}

hasRequiredArgs()

Does the field have required arguments?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 has-required-args
func (m *myModule) example(ctx context.Context, name string, name1 string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			HasRequiredArgs(ctx)
}
@function
async def example(name: str, name1: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.has_required_args()
	)
@func()
async example(name: string, name1: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.hasRequiredArgs()
}

hasOptionalArgs()

Does the field have optional arguments?

Return Type
Boolean !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 has-optional-args
func (m *myModule) example(ctx context.Context, name string, name1 string) bool  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			HasOptionalArgs(ctx)
}
@function
async def example(name: str, name1: str) -> bool:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.has_optional_args()
	)
@func()
async example(name: string, name1: string): Promise<boolean> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.hasOptionalArgs()
}

requiredArgs()

The field’s required arguments

Return Type
[InputValue ! ] !
Example
Function CodegenField.requiredArgs is not accessible from the codegen module
func (m *myModule) example(name string, name1 string) []*CodegenInputValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			RequiredArgs()
}
@function
def example(name: str, name1: str) -> List[dag.CodegenInputValue]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.required_args()
	)
@func()
example(name: string, name1: string): CodegenInputValue[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.requiredArgs()
}

optionalArgs()

The field’s optional arguments

Return Type
[InputValue ! ] !
Example
Function CodegenField.optionalArgs is not accessible from the codegen module
func (m *myModule) example(name string, name1 string) []*CodegenInputValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			OptionalArgs()
}
@function
def example(name: str, name1: str) -> List[dag.CodegenInputValue]:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.optional_args()
	)
@func()
example(name: string, name1: string): CodegenInputValue[] {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.optionalArgs()
}

getArg()

Get a field argument by name

Return Type
InputValue !
Arguments
NameTypeDefault ValueDescription
nameString !-The name of the argument
Example
Function CodegenField.getArg is not accessible from the codegen module
func (m *myModule) example(name string, name1 string, name2 string) *CodegenInputValue  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2)
}
@function
def example(name: str, name1: str, name2: str) -> dag.CodegenInputValue:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
	)
@func()
example(name: string, name1: string, name2: string): CodegenInputValue {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
}

InputValue

An argument or input object type's field

name()

The name of the input

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 get-arg --name string \
 name
func (m *myModule) example(ctx context.Context, name string, name1 string, name2 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2).
			Name(ctx)
}
@function
async def example(name: str, name1: str, name2: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
		.name()
	)
@func()
async example(name: string, name1: string, name2: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
		.name()
}

description()

The description of the input

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 get-arg --name string \
 description
func (m *myModule) example(ctx context.Context, name string, name1 string, name2 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2).
			Description(ctx)
}
@function
async def example(name: str, name1: str, name2: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
		.description()
	)
@func()
async example(name: string, name1: string, name2: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
		.description()
}

defaultValue()

The default value of the input

Return Type
String 
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 get-arg --name string \
 default-value
func (m *myModule) example(ctx context.Context, name string, name1 string, name2 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2).
			DefaultValue(ctx)
}
@function
async def example(name: str, name1: str, name2: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
		.default_value()
	)
@func()
async example(name: string, name1: string, name2: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
		.defaultValue()
}

type()

The type information of the input

Return Type
TypeRef !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 get-arg --name string \
 type \
 is-optional
func (m *myModule) example(name string, name1 string, name2 string) *CodegenTypeRef  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2).
			Type()
}
@function
def example(name: str, name1: str, name2: str) -> dag.CodegenTypeRef:
	return (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
		.type()
	)
@func()
example(name: string, name1: string, name2: string): CodegenTypeRef {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
		.type()
}

nameWords()

The name of the input, split into words

Common initialisms are preserved, e.g., “ID” becomes “ID” and “URL” becomes “URL”. This is useful so SDKs don’t have to split the name themselves, before applying the language’s naming conventions, which can be a source of inconsistency.

Return Type
String !
Example
dagger -m github.com/helderco/daggerverse/codegen@357dfd7f97eae9a62a2a13454b48cb7c69c44e34 call \
 introspect \
 get-type --name string \
 get-field --name string \
 get-arg --name string \
 name-words
func (m *myModule) example(ctx context.Context, name string, name1 string, name2 string) string  {
	return dag.
			Codegen().
			Introspect().
			GetType(name).
			GetField(name1).
			GetArg(name2).
			NameWords(ctx)
}
@function
async def example(name: str, name1: str, name2: str) -> str:
	return await (
		dag.codegen()
		.introspect()
		.get_type(name)
		.get_field(name1)
		.get_arg(name2)
		.name_words()
	)
@func()
async example(name: string, name1: string, name2: string): Promise<string> {
	return dag
		.codegen()
		.introspect()
		.getType(name)
		.getField(name1)
		.getArg(name2)
		.nameWords()
}

EnumValue

An enum type's value

name()

The name of the enum value

Return Type
String !
Example
Function CodegenEnumValue.name is not accessible from the codegen module
Function CodegenEnumValue.name is not accessible from the codegen module
Function CodegenEnumValue.name is not accessible from the codegen module
Function CodegenEnumValue.name is not accessible from the codegen module

description()

The description of the enum value

Return Type
String !
Example
Function CodegenEnumValue.description is not accessible from the codegen module
Function CodegenEnumValue.description is not accessible from the codegen module
Function CodegenEnumValue.description is not accessible from the codegen module
Function CodegenEnumValue.description is not accessible from the codegen module

isDeprecated()

Is the enum value deprecated?

Return Type
Boolean !
Example
Function CodegenEnumValue.isDeprecated is not accessible from the codegen module
Function CodegenEnumValue.isDeprecated is not accessible from the codegen module
Function CodegenEnumValue.isDeprecated is not accessible from the codegen module
Function CodegenEnumValue.isDeprecated is not accessible from the codegen module

deprecationReason()

The reason for deprecation, if exists

Return Type
String !
Example
Function CodegenEnumValue.deprecationReason is not accessible from the codegen module
Function CodegenEnumValue.deprecationReason is not accessible from the codegen module
Function CodegenEnumValue.deprecationReason is not accessible from the codegen module
Function CodegenEnumValue.deprecationReason is not accessible from the codegen module

TypeRef

Type information Can be the return type of a field, the type of a field argument, or the underlying type in a list or non-null type.

kind()

The kind of type, e.g., object, scalar, etc.

Return Type
String !
Example
Function CodegenTypeRef.kind is not accessible from the codegen module
Function CodegenTypeRef.kind is not accessible from the codegen module
Function CodegenTypeRef.kind is not accessible from the codegen module
Function CodegenTypeRef.kind is not accessible from the codegen module

name()

The name of a named type.

Return Type
String !
Example
Function CodegenTypeRef.name is not accessible from the codegen module
Function CodegenTypeRef.name is not accessible from the codegen module
Function CodegenTypeRef.name is not accessible from the codegen module
Function CodegenTypeRef.name is not accessible from the codegen module

ofType()

The sub-type of a list or non-null type.

Return Type
TypeRef !
Example
Function CodegenTypeRef.ofType is not accessible from the codegen module
Function CodegenTypeRef.ofType is not accessible from the codegen module
Function CodegenTypeRef.ofType is not accessible from the codegen module
Function CodegenTypeRef.ofType is not accessible from the codegen module

isOptional()

Is this type optional?

Return Type
Boolean !
Example
Function CodegenTypeRef.isOptional is not accessible from the codegen module
Function CodegenTypeRef.isOptional is not accessible from the codegen module
Function CodegenTypeRef.isOptional is not accessible from the codegen module
Function CodegenTypeRef.isOptional is not accessible from the codegen module

isLeaf()

Is it a leaf?

Leaf types as essentially scalar or enum types. They are the last step in a pipeline, so must execute the request and return the result.

Return Type
Boolean !
Example
Function CodegenTypeRef.isLeaf is not accessible from the codegen module
Function CodegenTypeRef.isLeaf is not accessible from the codegen module
Function CodegenTypeRef.isLeaf is not accessible from the codegen module
Function CodegenTypeRef.isLeaf is not accessible from the codegen module

isScalar()

Is it a scalar?

Return Type
Boolean !
Example
Function CodegenTypeRef.isScalar is not accessible from the codegen module
Function CodegenTypeRef.isScalar is not accessible from the codegen module
Function CodegenTypeRef.isScalar is not accessible from the codegen module
Function CodegenTypeRef.isScalar is not accessible from the codegen module

isObject()

Is it an object type?

Return Type
Boolean !
Example
Function CodegenTypeRef.isObject is not accessible from the codegen module
Function CodegenTypeRef.isObject is not accessible from the codegen module
Function CodegenTypeRef.isObject is not accessible from the codegen module
Function CodegenTypeRef.isObject is not accessible from the codegen module

isList()

Is it a list?

Return Type
Boolean !
Example
Function CodegenTypeRef.isList is not accessible from the codegen module
Function CodegenTypeRef.isList is not accessible from the codegen module
Function CodegenTypeRef.isList is not accessible from the codegen module
Function CodegenTypeRef.isList is not accessible from the codegen module

isId()

Is it an ID scalar?

Return Type
Boolean !
Example
Function CodegenTypeRef.isId is not accessible from the codegen module
Function CodegenTypeRef.isId is not accessible from the codegen module
Function CodegenTypeRef.isId is not accessible from the codegen module
Function CodegenTypeRef.isId is not accessible from the codegen module