dagger

package module
v0.9.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2024 License: Apache-2.0 Imports: 12 Imported by: 308

README

Dagger Go SDK

The Dagger Go SDK contains everything you need to develop CI/CD pipelines in Go, and run them with the Dagger Engine.

This SDK contains:

Contributing

The Dagger Go SDK is open-source, and we welcome contributions. Its source code lives in the Dagger Engine repository.

NOTE: please do NOT contribute to github.com/dagger/dagger-go-sdk: that is a read-only mirror which only exists to satisfy the requirements of the Go package management system. Instead, please visit the repository linked above.

Documentation

Index

Examples

Constants

This section is empty.

Variables

View Source
var GoMod []byte
View Source
var GoSum []byte
View Source
var QueryBuilder embed.FS

Functions

This section is empty.

Types

type BuildArg added in v0.4.3

type BuildArg struct {
	// The build argument name.
	Name string `json:"name"`

	// The build argument value.
	Value string `json:"value"`
}

Key value object that represents a build argument.

type CacheSharingMode added in v0.4.5

type CacheSharingMode string
const (
	// Shares the cache volume amongst many build pipelines, but will serialize the writes
	Locked CacheSharingMode = "LOCKED"

	// Keeps a cache volume for a single build pipeline
	Private CacheSharingMode = "PRIVATE"

	// Shares the cache volume amongst many build pipelines
	Shared CacheSharingMode = "SHARED"
)

func (CacheSharingMode) IsEnum added in v0.9.0

func (CacheSharingMode) IsEnum()

type CacheVolume

type CacheVolume struct {
	// contains filtered or unexported fields
}

A directory whose contents persist across runs.

func (*CacheVolume) ID

A unique identifier for this CacheVolume.

func (*CacheVolume) MarshalJSON added in v0.8.8

func (r *CacheVolume) MarshalJSON() ([]byte, error)

func (*CacheVolume) XXX_GraphQLID added in v0.4.0

func (r *CacheVolume) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*CacheVolume) XXX_GraphQLIDType added in v0.7.2

func (r *CacheVolume) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*CacheVolume) XXX_GraphQLType added in v0.4.0

func (r *CacheVolume) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type CacheVolumeID added in v0.9.0

type CacheVolumeID string

The `CacheVolumeID` scalar type represents an identifier for an object of type CacheVolume.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is the Dagger Engine Client

func Connect

func Connect(ctx context.Context, opts ...ClientOpt) (*Client, error)

Connect to a Dagger Engine

func (*Client) Blob added in v0.9.7

func (r *Client) Blob(digest string, size int, mediaType string, uncompressed string) *Directory

Retrieves a content-addressed blob.

func (*Client) CacheVolume added in v0.4.4

func (r *Client) CacheVolume(key string) *CacheVolume

Constructs a cache volume for a given cache key.

func (*Client) CheckVersionCompatibility added in v0.8.0

func (r *Client) CheckVersionCompatibility(ctx context.Context, version string) (bool, error)

Checks if the current Dagger Engine is compatible with an SDK's required version.

func (*Client) Close

func (c *Client) Close() error

Close the engine connection

func (*Client) Container added in v0.4.4

func (r *Client) Container(opts ...ContainerOpts) *Container

Creates a scratch container.

Optional platform argument initializes new containers to execute and publish as that platform. Platform defaults to that of the builder's host.

func (*Client) CurrentFunctionCall added in v0.8.8

func (r *Client) CurrentFunctionCall() *FunctionCall

The FunctionCall context that the SDK caller is currently executing in.

If the caller is not currently executing in a function, this will return an error.

func (*Client) CurrentModule added in v0.8.8

func (r *Client) CurrentModule() *Module

The module currently being served in the session, if any.

func (*Client) CurrentTypeDefs added in v0.9.6

func (r *Client) CurrentTypeDefs(ctx context.Context) ([]TypeDef, error)

The TypeDef representations of the objects currently being served in the session.

func (*Client) DefaultPlatform added in v0.4.4

func (r *Client) DefaultPlatform(ctx context.Context) (Platform, error)

The default platform of the engine.

func (*Client) Directory added in v0.4.4

func (r *Client) Directory(opts ...DirectoryOpts) *Directory

Creates an empty directory.

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *Request, resp *Response) error

Do sends a GraphQL request to the engine

func (*Client) File deprecated added in v0.4.4

func (r *Client) File(id FileID) *File

Deprecated: Use LoadFileFromID instead.

func (*Client) Function added in v0.8.8

func (r *Client) Function(name string, returnType *TypeDef) *Function

Creates a function.

func (*Client) GeneratedCode added in v0.8.8

func (r *Client) GeneratedCode(code *Directory) *GeneratedCode

Create a code generation result, given a directory containing the generated code.

func (*Client) Git added in v0.4.4

func (r *Client) Git(url string, opts ...GitOpts) *GitRepository

Queries a Git repository.

func (*Client) GraphQLClient added in v0.9.0

func (c *Client) GraphQLClient() graphql.Client

GraphQLClient returns the underlying graphql.Client

func (*Client) HTTP added in v0.4.4

func (r *Client) HTTP(url string, opts ...HTTPOpts) *File

Returns a file containing an http remote url content.

func (*Client) Host added in v0.4.4

func (r *Client) Host() *Host

Queries the host environment.

func (*Client) LoadCacheVolumeFromID added in v0.9.0

func (r *Client) LoadCacheVolumeFromID(id CacheVolumeID) *CacheVolume

Load a CacheVolume from its ID.

func (*Client) LoadContainerFromID added in v0.9.0

func (r *Client) LoadContainerFromID(id ContainerID) *Container

Load a Container from its ID.

func (*Client) LoadDirectoryFromID added in v0.9.0

func (r *Client) LoadDirectoryFromID(id DirectoryID) *Directory

Load a Directory from its ID.

func (*Client) LoadEnvVariableFromID added in v0.9.7

func (r *Client) LoadEnvVariableFromID(id EnvVariableID) *EnvVariable

Load a EnvVariable from its ID.

func (*Client) LoadFieldTypeDefFromID added in v0.9.7

func (r *Client) LoadFieldTypeDefFromID(id FieldTypeDefID) *FieldTypeDef

Load a FieldTypeDef from its ID.

func (*Client) LoadFileFromID added in v0.9.0

func (r *Client) LoadFileFromID(id FileID) *File

Load a File from its ID.

func (*Client) LoadFunctionArgFromID added in v0.9.0

func (r *Client) LoadFunctionArgFromID(id FunctionArgID) *FunctionArg

Load a FunctionArg from its ID.

func (*Client) LoadFunctionCallArgValueFromID added in v0.9.7

func (r *Client) LoadFunctionCallArgValueFromID(id FunctionCallArgValueID) *FunctionCallArgValue

Load a FunctionCallArgValue from its ID.

func (*Client) LoadFunctionCallFromID added in v0.9.7

func (r *Client) LoadFunctionCallFromID(id FunctionCallID) *FunctionCall

Load a FunctionCall from its ID.

func (*Client) LoadFunctionFromID added in v0.9.0

func (r *Client) LoadFunctionFromID(id FunctionID) *Function

Load a Function from its ID.

func (*Client) LoadGeneratedCodeFromID added in v0.9.0

func (r *Client) LoadGeneratedCodeFromID(id GeneratedCodeID) *GeneratedCode

Load a GeneratedCode from its ID.

func (*Client) LoadGitRefFromID added in v0.9.4

func (r *Client) LoadGitRefFromID(id GitRefID) *GitRef

Load a GitRef from its ID.

func (*Client) LoadGitRepositoryFromID added in v0.9.4

func (r *Client) LoadGitRepositoryFromID(id GitRepositoryID) *GitRepository

Load a GitRepository from its ID.

func (*Client) LoadHostFromID added in v0.9.7

func (r *Client) LoadHostFromID(id HostID) *Host

Load a Host from its ID.

func (*Client) LoadInterfaceTypeDefFromID added in v0.9.7

func (r *Client) LoadInterfaceTypeDefFromID(id InterfaceTypeDefID) *InterfaceTypeDef

Load a InterfaceTypeDef from its ID.

func (*Client) LoadLabelFromID added in v0.9.7

func (r *Client) LoadLabelFromID(id LabelID) *Label

Load a Label from its ID.

func (*Client) LoadListTypeDefFromID added in v0.9.7

func (r *Client) LoadListTypeDefFromID(id ListTypeDefID) *ListTypeDef

Load a ListTypeDef from its ID.

func (*Client) LoadModuleConfigFromID added in v0.9.7

func (r *Client) LoadModuleConfigFromID(id ModuleConfigID) *ModuleConfig

Load a ModuleConfig from its ID.

func (*Client) LoadModuleFromID added in v0.9.0

func (r *Client) LoadModuleFromID(id ModuleID) *Module

Load a Module from its ID.

func (*Client) LoadObjectTypeDefFromID added in v0.9.7

func (r *Client) LoadObjectTypeDefFromID(id ObjectTypeDefID) *ObjectTypeDef

Load a ObjectTypeDef from its ID.

func (*Client) LoadPortFromID added in v0.9.7

func (r *Client) LoadPortFromID(id PortID) *Port

Load a Port from its ID.

func (*Client) LoadSecretFromID added in v0.9.0

func (r *Client) LoadSecretFromID(id SecretID) *Secret

Load a Secret from its ID.

func (*Client) LoadServiceFromID added in v0.9.0

func (r *Client) LoadServiceFromID(id ServiceID) *Service

Load a Service from its ID.

func (*Client) LoadSocketFromID added in v0.9.0

func (r *Client) LoadSocketFromID(id SocketID) *Socket

Load a Socket from its ID.

func (*Client) LoadTypeDefFromID added in v0.9.0

func (r *Client) LoadTypeDefFromID(id TypeDefID) *TypeDef

Load a TypeDef from its ID.

func (*Client) Module added in v0.8.8

func (r *Client) Module() *Module

Create a new module.

func (*Client) ModuleConfig added in v0.9.0

func (r *Client) ModuleConfig(sourceDirectory *Directory, opts ...ModuleConfigOpts) *ModuleConfig

Load the static configuration for a module from the given source directory and optional subpath.

func (*Client) Pipeline added in v0.4.4

func (r *Client) Pipeline(name string, opts ...PipelineOpts) *Client

Creates a named sub-pipeline.

func (*Client) Secret added in v0.4.4

func (r *Client) Secret(name string) *Secret

Reference a secret by name.

func (*Client) SetSecret added in v0.5.1

func (r *Client) SetSecret(name string, plaintext string) *Secret

Sets a secret given a user defined name to its plaintext and returns the secret.

The plaintext value is limited to a size of 128000 bytes.

func (*Client) Socket deprecated added in v0.4.4

func (r *Client) Socket(id SocketID) *Socket

Loads a socket by its ID.

Deprecated: Use LoadSocketFromID instead.

func (*Client) TypeDef added in v0.8.8

func (r *Client) TypeDef() *TypeDef

Create a new TypeDef.

func (*Client) With added in v0.7.4

func (r *Client) With(f WithClientFunc) *Client

With calls the provided function with current Client.

This is useful for reusability and readability by not breaking the calling chain.

type ClientOpt

type ClientOpt interface {
	// contains filtered or unexported methods
}

ClientOpt holds a client option

func WithConn added in v0.6.3

func WithConn(conn engineconn.EngineConn) ClientOpt

WithConn sets the engine connection explicitly

func WithLogOutput

func WithLogOutput(writer io.Writer) ClientOpt

WithLogOutput sets the progress writer

func WithSkipCompatibilityCheck added in v0.8.8

func WithSkipCompatibilityCheck() ClientOpt

WithSkipCompatibilityCheck disables the version compatibility check

func WithWorkdir

func WithWorkdir(path string) ClientOpt

WithWorkdir sets the engine workdir

type Container

type Container struct {
	// contains filtered or unexported fields
}

An OCI-compatible container, also known as a Docker container.

Example
package main

import (
	"context"
	"fmt"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	alpine := client.Container().From("alpine:3.16.2")

	out, err := alpine.WithExec([]string{"cat", "/etc/alpine-release"}).Stdout(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(out)

}
Output:

3.16.2

func (*Container) AsService added in v0.9.0

func (r *Container) AsService() *Service

Turn the container into a Service.

Be sure to set any exposed ports before this conversion.

func (*Container) AsTarball added in v0.9.0

func (r *Container) AsTarball(opts ...ContainerAsTarballOpts) *File

Returns a File representing the container serialized to a tarball.

func (*Container) Build

func (r *Container) Build(context *Directory, opts ...ContainerBuildOpts) *Container

Initializes this container from a Dockerfile build.

Example
package main

import (
	"context"
	"fmt"
	"strings"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	repo := client.Git("https://github.com/dagger/dagger").
		Tag("v0.3.0").
		Tree()

	daggerImg := client.Container().Build(repo)

	out, err := daggerImg.WithExec([]string{"version"}).Stdout(ctx)
	if err != nil {
		panic(err)
	}

	words := strings.Split(strings.TrimSpace(out), " ")
	fmt.Println(words[0])

}
Output:

dagger

func (*Container) DefaultArgs

func (r *Container) DefaultArgs(ctx context.Context) ([]string, error)

Retrieves default arguments for future commands.

func (*Container) Directory

func (r *Container) Directory(path string) *Directory

Retrieves a directory at the given path.

Mounts are included.

func (*Container) Entrypoint

func (r *Container) Entrypoint(ctx context.Context) ([]string, error)

Retrieves entrypoint to be prepended to the arguments of all commands.

func (*Container) EnvVariable

func (r *Container) EnvVariable(ctx context.Context, name string) (string, error)

Retrieves the value of the specified environment variable.

func (*Container) EnvVariables

func (r *Container) EnvVariables(ctx context.Context) ([]EnvVariable, error)

Retrieves the list of environment variables passed to commands.

func (*Container) ExperimentalWithAllGPUs added in v0.9.2

func (r *Container) ExperimentalWithAllGPUs() *Container

EXPERIMENTAL API! Subject to change/removal at any time.

Configures all available GPUs on the host to be accessible to this container.

This currently works for Nvidia devices only.

func (*Container) ExperimentalWithGPU added in v0.9.2

func (r *Container) ExperimentalWithGPU(devices []string) *Container

EXPERIMENTAL API! Subject to change/removal at any time.

Configures the provided list of devices to be accesible to this container.

This currently works for Nvidia devices only.

func (*Container) Export added in v0.4.0

func (r *Container) Export(ctx context.Context, path string, opts ...ContainerExportOpts) (bool, error)

Writes the container as an OCI tarball to the destination file path on the host.

Return true on success.

It can also export platform variants.

func (*Container) ExposedPorts added in v0.4.6

func (r *Container) ExposedPorts(ctx context.Context) ([]Port, error)

Retrieves the list of exposed ports.

This includes ports already exposed by the image, even if not explicitly added with dagger.

func (*Container) File

func (r *Container) File(path string) *File

Retrieves a file at the given path.

Mounts are included.

func (*Container) From

func (r *Container) From(address string) *Container

Initializes this container from a pulled base image.

func (*Container) ID

func (r *Container) ID(ctx context.Context) (ContainerID, error)

A unique identifier for this Container.

func (*Container) ImageRef added in v0.4.6

func (r *Container) ImageRef(ctx context.Context) (string, error)

The unique image reference which can only be retrieved immediately after the 'Container.From' call.

func (*Container) Import added in v0.6.0

func (r *Container) Import(source *File, opts ...ContainerImportOpts) *Container

Reads the container from an OCI tarball.

func (*Container) Label added in v0.4.4

func (r *Container) Label(ctx context.Context, name string) (string, error)

Retrieves the value of the specified label.

func (*Container) Labels added in v0.4.4

func (r *Container) Labels(ctx context.Context) ([]Label, error)

Retrieves the list of labels passed to container.

func (*Container) MarshalJSON added in v0.8.8

func (r *Container) MarshalJSON() ([]byte, error)

func (*Container) Mounts

func (r *Container) Mounts(ctx context.Context) ([]string, error)

Retrieves the list of paths where a directory is mounted.

func (*Container) Pipeline added in v0.4.4

func (r *Container) Pipeline(name string, opts ...ContainerPipelineOpts) *Container

Creates a named sub-pipeline.

func (*Container) Platform added in v0.4.0

func (r *Container) Platform(ctx context.Context) (Platform, error)

The platform this container executes and publishes as.

func (*Container) Publish

func (r *Container) Publish(ctx context.Context, address string, opts ...ContainerPublishOpts) (string, error)

Publishes this container as a new image to the specified address.

Publish returns a fully qualified ref.

It can also publish platform variants.

func (*Container) Rootfs added in v0.4.1

func (r *Container) Rootfs() *Directory

Retrieves this container's root filesystem. Mounts are not included.

func (*Container) ShellEndpoint added in v0.8.8

func (r *Container) ShellEndpoint(ctx context.Context) (string, error)

Return a websocket endpoint that, if connected to, will start the container with a TTY streamed over the websocket.

Primarily intended for internal use with the dagger CLI.

func (*Container) Stderr

func (r *Container) Stderr(ctx context.Context) (string, error)

The error stream of the last executed command.

Will execute default command if none is set, or error if there's no default.

func (*Container) Stdout

func (r *Container) Stdout(ctx context.Context) (string, error)

The output stream of the last executed command.

Will execute default command if none is set, or error if there's no default.

func (*Container) Sync added in v0.6.3

func (r *Container) Sync(ctx context.Context) (*Container, error)

Forces evaluation of the pipeline in the engine.

It doesn't run the default command if no exec has been set.

func (*Container) User

func (r *Container) User(ctx context.Context) (string, error)

Retrieves the user to be set for all commands.

func (*Container) With added in v0.6.1

With calls the provided function with current Container.

This is useful for reusability and readability by not breaking the calling chain.

Example
package main

import (
	"context"
	"fmt"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	alpine := client.Container().From("alpine:3.16.2").
		With(func(c *dagger.Container) *dagger.Container {
			return c.WithEnvVariable("FOO", "bar")
		})

	out, err := alpine.WithExec([]string{"printenv", "FOO"}).Stdout(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(out)
}
Output:

bar

func (*Container) WithDefaultArgs

func (r *Container) WithDefaultArgs(args []string) *Container

Configures default arguments for future commands.

func (*Container) WithDirectory added in v0.4.2

func (r *Container) WithDirectory(path string, directory *Directory, opts ...ContainerWithDirectoryOpts) *Container

Retrieves this container plus a directory written at the given path.

func (*Container) WithEntrypoint

func (r *Container) WithEntrypoint(args []string, opts ...ContainerWithEntrypointOpts) *Container

Retrieves this container but with a different command entrypoint.

func (*Container) WithEnvVariable

func (r *Container) WithEnvVariable(name string, value string, opts ...ContainerWithEnvVariableOpts) *Container

Retrieves this container plus the given environment variable.

Example
package main

import (
	"context"
	"fmt"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	out, err := client.
		Container().
		From("alpine:3.16.2").
		WithEnvVariable("FOO", "bar").
		WithExec([]string{"sh", "-c", "echo $FOO"}).
		Stdout(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(out)

}
Output:

bar

func (*Container) WithExec added in v0.4.1

func (r *Container) WithExec(args []string, opts ...ContainerWithExecOpts) *Container

Retrieves this container after executing the specified command inside it.

func (*Container) WithExposedPort added in v0.4.6

func (r *Container) WithExposedPort(port int, opts ...ContainerWithExposedPortOpts) *Container

Expose a network port.

Exposed ports serve two purposes:

- For health checks and introspection, when running services

- For setting the EXPOSE OCI field when publishing the container

func (*Container) WithFile added in v0.4.2

func (r *Container) WithFile(path string, source *File, opts ...ContainerWithFileOpts) *Container

Retrieves this container plus the contents of the given file copied to the given path.

func (*Container) WithFocus added in v0.7.4

func (r *Container) WithFocus() *Container

Indicate that subsequent operations should be featured more prominently in the UI.

func (*Container) WithLabel added in v0.4.4

func (r *Container) WithLabel(name string, value string) *Container

Retrieves this container plus the given label.

func (*Container) WithMountedCache

func (r *Container) WithMountedCache(path string, cache *CacheVolume, opts ...ContainerWithMountedCacheOpts) *Container

Retrieves this container plus a cache volume mounted at the given path.

Example
package main

import (
	"context"
	"fmt"
	"strconv"
	"time"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	cacheKey := "example-cache"

	cache := client.CacheVolume(cacheKey)

	container := client.Container().From("alpine:3.16.2")

	container = container.WithMountedCache("/cache", cache)

	filename := time.Now().Format("2006-01-02-15-04-05")
	echoCmd := fmt.Sprintf("echo $0 >> /cache/%[1]v.txt; cat /cache/%[1]v.txt", filename)

	var out string
	for i := 0; i < 5; i++ {
		out, err = container.
			WithExec([]string{"sh", "-c", echoCmd, strconv.Itoa(i)}).
			Stdout(ctx)
		if err != nil {
			panic(err)
		}
	}

	fmt.Printf("%q", out)

}
Output:

"0\n1\n2\n3\n4\n"

func (*Container) WithMountedDirectory

func (r *Container) WithMountedDirectory(path string, source *Directory, opts ...ContainerWithMountedDirectoryOpts) *Container

Retrieves this container plus a directory mounted at the given path.

Example
package main

import (
	"context"
	"fmt"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	dir := client.Directory().
		WithNewFile("hello.txt", "Hello, world!").
		WithNewFile("goodbye.txt", "Goodbye, world!")

	out, err := client.
		Container().
		From("alpine:3.16.2").
		WithMountedDirectory("/mnt", dir).
		WithExec([]string{"ls", "/mnt"}).
		Stdout(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Printf("%q", out)

}
Output:

"goodbye.txt\nhello.txt\n"

func (*Container) WithMountedFile

func (r *Container) WithMountedFile(path string, source *File, opts ...ContainerWithMountedFileOpts) *Container

Retrieves this container plus a file mounted at the given path.

func (*Container) WithMountedSecret

func (r *Container) WithMountedSecret(path string, source *Secret, opts ...ContainerWithMountedSecretOpts) *Container

Retrieves this container plus a secret mounted into a file at the given path.

func (*Container) WithMountedTemp

func (r *Container) WithMountedTemp(path string) *Container

Retrieves this container plus a temporary directory mounted at the given path.

func (*Container) WithNewFile added in v0.4.2

func (r *Container) WithNewFile(path string, opts ...ContainerWithNewFileOpts) *Container

Retrieves this container plus a new file written at the given path.

func (*Container) WithRegistryAuth added in v0.4.5

func (r *Container) WithRegistryAuth(address string, username string, secret *Secret) *Container

Retrieves this container with a registry authentication for a given address.

func (*Container) WithRootfs added in v0.4.1

func (r *Container) WithRootfs(directory *Directory) *Container

Retrieves the container with the given directory mounted to /.

func (*Container) WithSecretVariable

func (r *Container) WithSecretVariable(name string, secret *Secret) *Container

Retrieves this container plus an env variable containing the given secret.

func (*Container) WithServiceBinding added in v0.4.6

func (r *Container) WithServiceBinding(alias string, service *Service) *Container

Establish a runtime dependency on a service.

The service will be started automatically when needed and detached when it is no longer needed, executing the default command if none is set.

The service will be reachable from the container via the provided hostname alias.

The service dependency will also convey to any files or directories produced by the container.

func (*Container) WithUnixSocket added in v0.4.2

func (r *Container) WithUnixSocket(path string, source *Socket, opts ...ContainerWithUnixSocketOpts) *Container

Retrieves this container plus a socket forwarded to the given Unix socket path.

func (*Container) WithUser

func (r *Container) WithUser(name string) *Container

Retrieves this container with a different command user.

func (*Container) WithWorkdir

func (r *Container) WithWorkdir(path string) *Container

Retrieves this container with a different working directory.

func (*Container) WithoutDefaultArgs added in v0.9.5

func (r *Container) WithoutDefaultArgs() *Container

Retrieves this container with unset default arguments for future commands.

func (*Container) WithoutEntrypoint added in v0.9.5

func (r *Container) WithoutEntrypoint(opts ...ContainerWithoutEntrypointOpts) *Container

Retrieves this container with an unset command entrypoint.

func (*Container) WithoutEnvVariable

func (r *Container) WithoutEnvVariable(name string) *Container

Retrieves this container minus the given environment variable.

func (*Container) WithoutExposedPort added in v0.4.6

func (r *Container) WithoutExposedPort(port int, opts ...ContainerWithoutExposedPortOpts) *Container

Unexpose a previously exposed port.

func (*Container) WithoutFocus added in v0.7.4

func (r *Container) WithoutFocus() *Container

Indicate that subsequent operations should not be featured more prominently in the UI.

This is the initial state of all containers.

func (*Container) WithoutLabel added in v0.4.4

func (r *Container) WithoutLabel(name string) *Container

Retrieves this container minus the given environment label.

func (*Container) WithoutMount

func (r *Container) WithoutMount(path string) *Container

Retrieves this container after unmounting everything at the given path.

func (*Container) WithoutRegistryAuth added in v0.4.5

func (r *Container) WithoutRegistryAuth(address string) *Container

Retrieves this container without the registry authentication of a given address.

func (*Container) WithoutUnixSocket added in v0.4.2

func (r *Container) WithoutUnixSocket(path string) *Container

Retrieves this container with a previously added Unix socket removed.

func (*Container) WithoutUser added in v0.9.5

func (r *Container) WithoutUser() *Container

Retrieves this container with an unset command user.

Should default to root.

func (*Container) WithoutWorkdir added in v0.9.5

func (r *Container) WithoutWorkdir() *Container

Retrieves this container with an unset working directory.

Should default to "/".

func (*Container) Workdir

func (r *Container) Workdir(ctx context.Context) (string, error)

Retrieves the working directory for all commands.

func (*Container) XXX_GraphQLID added in v0.4.0

func (r *Container) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Container) XXX_GraphQLIDType added in v0.7.2

func (r *Container) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Container) XXX_GraphQLType added in v0.4.0

func (r *Container) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ContainerAsTarballOpts added in v0.9.0

type ContainerAsTarballOpts struct {
	// Identifiers for other platform specific containers.
	//
	// Used for multi-platform images.
	PlatformVariants []*Container
	// Force each layer of the image to use the specified compression algorithm.
	//
	// If this is unset, then if a layer already has a compressed blob in the engine's cache, that will be used (this can result in a mix of compression algorithms for different layers). If this is unset and a layer has no compressed blob in the engine's cache, then it will be compressed using Gzip.
	ForcedCompression ImageLayerCompression
	// Use the specified media types for the image's layers.
	//
	// Defaults to OCI, which is largely compatible with most recent container runtimes, but Docker may be needed for older runtimes without OCI support.
	MediaTypes ImageMediaTypes
}

ContainerAsTarballOpts contains options for Container.AsTarball

type ContainerBuildOpts

type ContainerBuildOpts struct {
	// Path to the Dockerfile to use.
	Dockerfile string
	// Target build stage to build.
	Target string
	// Additional build arguments.
	BuildArgs []BuildArg
	// Secrets to pass to the build.
	//
	// They will be mounted at /run/secrets/[secret-name] in the build container
	//
	// They can be accessed in the Dockerfile using the "secret" mount type and mount path /run/secrets/[secret-name], e.g. RUN --mount=type=secret,id=my-secret curl https://example.com?token=$(cat /run/secrets/my-secret)
	Secrets []*Secret
}

ContainerBuildOpts contains options for Container.Build

type ContainerExportOpts added in v0.4.0

type ContainerExportOpts struct {
	// Identifiers for other platform specific containers.
	//
	// Used for multi-platform image.
	PlatformVariants []*Container
	// Force each layer of the exported image to use the specified compression algorithm.
	//
	// If this is unset, then if a layer already has a compressed blob in the engine's cache, that will be used (this can result in a mix of compression algorithms for different layers). If this is unset and a layer has no compressed blob in the engine's cache, then it will be compressed using Gzip.
	ForcedCompression ImageLayerCompression
	// Use the specified media types for the exported image's layers.
	//
	// Defaults to OCI, which is largely compatible with most recent container runtimes, but Docker may be needed for older runtimes without OCI support.
	MediaTypes ImageMediaTypes
}

ContainerExportOpts contains options for Container.Export

type ContainerID

type ContainerID string

The `ContainerID` scalar type represents an identifier for an object of type Container.

type ContainerImportOpts added in v0.6.0

type ContainerImportOpts struct {
	// Identifies the tag to import from the archive, if the archive bundles multiple tags.
	Tag string
}

ContainerImportOpts contains options for Container.Import

type ContainerOpts

type ContainerOpts struct {
	// DEPRECATED: Use `loadContainerFromID` instead.
	ID ContainerID
	// Platform to initialize the container with.
	Platform Platform
}

ContainerOpts contains options for Client.Container

type ContainerPipelineOpts added in v0.4.4

type ContainerPipelineOpts struct {
	// Description of the sub-pipeline.
	Description string
	// Labels to apply to the sub-pipeline.
	Labels []PipelineLabel
}

ContainerPipelineOpts contains options for Container.Pipeline

type ContainerPublishOpts added in v0.4.0

type ContainerPublishOpts struct {
	// Identifiers for other platform specific containers.
	//
	// Used for multi-platform image.
	PlatformVariants []*Container
	// Force each layer of the published image to use the specified compression algorithm.
	//
	// If this is unset, then if a layer already has a compressed blob in the engine's cache, that will be used (this can result in a mix of compression algorithms for different layers). If this is unset and a layer has no compressed blob in the engine's cache, then it will be compressed using Gzip.
	ForcedCompression ImageLayerCompression
	// Use the specified media types for the published image's layers.
	//
	// Defaults to OCI, which is largely compatible with most recent registries, but Docker may be needed for older registries without OCI support.
	MediaTypes ImageMediaTypes
}

ContainerPublishOpts contains options for Container.Publish

type ContainerWithDirectoryOpts added in v0.4.2

type ContainerWithDirectoryOpts struct {
	// Patterns to exclude in the written directory (e.g. ["node_modules/**", ".gitignore", ".git/"]).
	Exclude []string
	// Patterns to include in the written directory (e.g. ["*.go", "go.mod", "go.sum"]).
	Include []string
	// A user:group to set for the directory and its contents.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithDirectoryOpts contains options for Container.WithDirectory

type ContainerWithEntrypointOpts added in v0.9.5

type ContainerWithEntrypointOpts struct {
	// Don't remove the default arguments when setting the entrypoint.
	KeepDefaultArgs bool
}

ContainerWithEntrypointOpts contains options for Container.WithEntrypoint

type ContainerWithEnvVariableOpts added in v0.7.0

type ContainerWithEnvVariableOpts struct {
	// Replace `${VAR}` or `$VAR` in the value according to the current environment variables defined in the container (e.g., "/opt/bin:$PATH").
	Expand bool
}

ContainerWithEnvVariableOpts contains options for Container.WithEnvVariable

type ContainerWithExecOpts added in v0.4.1

type ContainerWithExecOpts struct {
	// If the container has an entrypoint, ignore it for args rather than using it to wrap them.
	SkipEntrypoint bool
	// Content to write to the command's standard input before closing (e.g., "Hello world").
	Stdin string
	// Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout").
	RedirectStdout string
	// Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr").
	RedirectStderr string
	// Provides dagger access to the executed command.
	//
	// Do not use this option unless you trust the command being executed; the command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
	ExperimentalPrivilegedNesting bool
	// Execute the command with all root capabilities. This is similar to running a command with "sudo" or executing "docker run" with the "--privileged" flag. Containerization does not provide any security guarantees when using this option. It should only be used when absolutely necessary and only with trusted commands.
	InsecureRootCapabilities bool
}

ContainerWithExecOpts contains options for Container.WithExec

type ContainerWithExposedPortOpts added in v0.4.6

type ContainerWithExposedPortOpts struct {
	// Transport layer network protocol
	Protocol NetworkProtocol
	// Optional port description
	Description string
}

ContainerWithExposedPortOpts contains options for Container.WithExposedPort

type ContainerWithFileOpts added in v0.4.3

type ContainerWithFileOpts struct {
	// Permission given to the copied file (e.g., 0600).
	Permissions int
	// A user:group to set for the file.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithFileOpts contains options for Container.WithFile

type ContainerWithMountedCacheOpts

type ContainerWithMountedCacheOpts struct {
	// Identifier of the directory to use as the cache volume's root.
	Source *Directory
	// Sharing mode of the cache volume.
	Sharing CacheSharingMode
	// A user:group to set for the mounted cache directory.
	//
	// Note that this changes the ownership of the specified mount along with the initial filesystem provided by source (if any). It does not have any effect if/when the cache has already been created.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithMountedCacheOpts contains options for Container.WithMountedCache

type ContainerWithMountedDirectoryOpts added in v0.6.1

type ContainerWithMountedDirectoryOpts struct {
	// A user:group to set for the mounted directory and its contents.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithMountedDirectoryOpts contains options for Container.WithMountedDirectory

type ContainerWithMountedFileOpts added in v0.6.1

type ContainerWithMountedFileOpts struct {
	// A user or user:group to set for the mounted file.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithMountedFileOpts contains options for Container.WithMountedFile

type ContainerWithMountedSecretOpts added in v0.6.1

type ContainerWithMountedSecretOpts struct {
	// A user:group to set for the mounted secret.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
	// Permission given to the mounted secret (e.g., 0600).
	//
	// This option requires an owner to be set to be active.
	Mode int
}

ContainerWithMountedSecretOpts contains options for Container.WithMountedSecret

type ContainerWithNewFileOpts added in v0.4.2

type ContainerWithNewFileOpts struct {
	// Content of the file to write (e.g., "Hello world!").
	Contents string
	// Permission given to the written file (e.g., 0600).
	Permissions int
	// A user:group to set for the file.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithNewFileOpts contains options for Container.WithNewFile

type ContainerWithUnixSocketOpts added in v0.6.1

type ContainerWithUnixSocketOpts struct {
	// A user:group to set for the mounted socket.
	//
	// The user and group can either be an ID (1000:1000) or a name (foo:bar).
	//
	// If the group is omitted, it defaults to the same as the user.
	Owner string
}

ContainerWithUnixSocketOpts contains options for Container.WithUnixSocket

type ContainerWithoutEntrypointOpts added in v0.9.5

type ContainerWithoutEntrypointOpts struct {
	// Don't remove the default arguments when unsetting the entrypoint.
	KeepDefaultArgs bool
}

ContainerWithoutEntrypointOpts contains options for Container.WithoutEntrypoint

type ContainerWithoutExposedPortOpts added in v0.4.6

type ContainerWithoutExposedPortOpts struct {
	// Port protocol to unexpose
	Protocol NetworkProtocol
}

ContainerWithoutExposedPortOpts contains options for Container.WithoutExposedPort

type DaggerObject added in v0.9.6

type DaggerObject querybuilder.GraphQLMarshaller

type Directory

type Directory struct {
	// contains filtered or unexported fields
}

A directory.

Example
package main

import (
	"context"
	"fmt"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	dir := client.Directory().
		WithNewFile("hello.txt", "Hello, world!").
		WithNewFile("goodbye.txt", "Goodbye, world!")

	entries, err := dir.Entries(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(entries)

}
Output:

[goodbye.txt hello.txt]

func (*Directory) AsModule added in v0.8.8

func (r *Directory) AsModule(opts ...DirectoryAsModuleOpts) *Module

Load the directory as a Dagger module

func (*Directory) Diff

func (r *Directory) Diff(other *Directory) *Directory

Gets the difference between this directory and an another directory.

func (*Directory) Directory

func (r *Directory) Directory(path string) *Directory

Retrieves a directory at the given path.

func (*Directory) DockerBuild added in v0.4.2

func (r *Directory) DockerBuild(opts ...DirectoryDockerBuildOpts) *Container

Builds a new Docker container from this directory.

func (*Directory) Entries

func (r *Directory) Entries(ctx context.Context, opts ...DirectoryEntriesOpts) ([]string, error)

Returns a list of files and directories at the given path.

func (*Directory) Export added in v0.4.0

func (r *Directory) Export(ctx context.Context, path string) (bool, error)

Writes the contents of the directory to a path on the host.

func (*Directory) File

func (r *Directory) File(path string) *File

Retrieves a file at the given path.

func (*Directory) Glob added in v0.9.1

func (r *Directory) Glob(ctx context.Context, pattern string) ([]string, error)

Returns a list of files and directories that matche the given pattern.

func (*Directory) ID

func (r *Directory) ID(ctx context.Context) (DirectoryID, error)

A unique identifier for this Directory.

func (*Directory) MarshalJSON added in v0.8.8

func (r *Directory) MarshalJSON() ([]byte, error)

func (*Directory) Pipeline added in v0.4.4

func (r *Directory) Pipeline(name string, opts ...DirectoryPipelineOpts) *Directory

Creates a named sub-pipeline.

func (*Directory) Sync added in v0.7.4

func (r *Directory) Sync(ctx context.Context) (*Directory, error)

Force evaluation in the engine.

func (*Directory) With added in v0.6.1

With calls the provided function with current Directory.

This is useful for reusability and readability by not breaking the calling chain.

func (*Directory) WithDirectory

func (r *Directory) WithDirectory(path string, directory *Directory, opts ...DirectoryWithDirectoryOpts) *Directory

Retrieves this directory plus a directory written at the given path.

func (*Directory) WithFile added in v0.4.0

func (r *Directory) WithFile(path string, source *File, opts ...DirectoryWithFileOpts) *Directory

Retrieves this directory plus the contents of the given file copied to the given path.

func (*Directory) WithNewDirectory added in v0.4.0

func (r *Directory) WithNewDirectory(path string, opts ...DirectoryWithNewDirectoryOpts) *Directory

Retrieves this directory plus a new directory created at the given path.

func (*Directory) WithNewFile

func (r *Directory) WithNewFile(path string, contents string, opts ...DirectoryWithNewFileOpts) *Directory

Retrieves this directory plus a new file written at the given path.

func (*Directory) WithTimestamps added in v0.4.3

func (r *Directory) WithTimestamps(timestamp int) *Directory

Retrieves this directory with all file/dir timestamps set to the given time.

func (*Directory) WithoutDirectory

func (r *Directory) WithoutDirectory(path string) *Directory

Retrieves this directory with the directory at the given path removed.

func (*Directory) WithoutFile

func (r *Directory) WithoutFile(path string) *Directory

Retrieves this directory with the file at the given path removed.

func (*Directory) XXX_GraphQLID added in v0.4.0

func (r *Directory) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Directory) XXX_GraphQLIDType added in v0.7.2

func (r *Directory) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Directory) XXX_GraphQLType added in v0.4.0

func (r *Directory) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type DirectoryAsModuleOpts added in v0.8.8

type DirectoryAsModuleOpts struct {
	// An optional subpath of the directory which contains the module's source code.
	//
	// This is needed when the module code is in a subdirectory but requires parent directories to be loaded in order to execute. For example, the module source code may need a go.mod, project.toml, package.json, etc. file from a parent directory.
	//
	// If not set, the module source code is loaded from the root of the directory.
	SourceSubpath string
}

DirectoryAsModuleOpts contains options for Directory.AsModule

type DirectoryDockerBuildOpts added in v0.4.2

type DirectoryDockerBuildOpts struct {
	// The platform to build.
	Platform Platform
	// Path to the Dockerfile to use (e.g., "frontend.Dockerfile").
	Dockerfile string
	// Target build stage to build.
	Target string
	// Build arguments to use in the build.
	BuildArgs []BuildArg
	// Secrets to pass to the build.
	//
	// They will be mounted at /run/secrets/[secret-name].
	Secrets []*Secret
}

DirectoryDockerBuildOpts contains options for Directory.DockerBuild

type DirectoryEntriesOpts

type DirectoryEntriesOpts struct {
	// Location of the directory to look at (e.g., "/src").
	Path string
}

DirectoryEntriesOpts contains options for Directory.Entries

type DirectoryID

type DirectoryID string

The `DirectoryID` scalar type represents an identifier for an object of type Directory.

type DirectoryOpts

type DirectoryOpts struct {
	// DEPRECATED: Use `loadDirectoryFromID` isntead.
	ID DirectoryID
}

DirectoryOpts contains options for Client.Directory

type DirectoryPipelineOpts added in v0.4.4

type DirectoryPipelineOpts struct {
	// Description of the sub-pipeline.
	Description string
	// Labels to apply to the sub-pipeline.
	Labels []PipelineLabel
}

DirectoryPipelineOpts contains options for Directory.Pipeline

type DirectoryWithDirectoryOpts added in v0.4.0

type DirectoryWithDirectoryOpts struct {
	// Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]).
	Exclude []string
	// Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]).
	Include []string
}

DirectoryWithDirectoryOpts contains options for Directory.WithDirectory

type DirectoryWithFileOpts added in v0.4.3

type DirectoryWithFileOpts struct {
	// Permission given to the copied file (e.g., 0600).
	Permissions int
}

DirectoryWithFileOpts contains options for Directory.WithFile

type DirectoryWithNewDirectoryOpts added in v0.4.3

type DirectoryWithNewDirectoryOpts struct {
	// Permission granted to the created directory (e.g., 0777).
	Permissions int
}

DirectoryWithNewDirectoryOpts contains options for Directory.WithNewDirectory

type DirectoryWithNewFileOpts

type DirectoryWithNewFileOpts struct {
	// Permission given to the copied file (e.g., 0600).
	Permissions int
}

DirectoryWithNewFileOpts contains options for Directory.WithNewFile

type EnvVariable

type EnvVariable struct {
	// contains filtered or unexported fields
}

An environment variable name and value.

func (*EnvVariable) ID added in v0.9.7

A unique identifier for this EnvVariable.

func (*EnvVariable) MarshalJSON added in v0.9.7

func (r *EnvVariable) MarshalJSON() ([]byte, error)

func (*EnvVariable) Name

func (r *EnvVariable) Name(ctx context.Context) (string, error)

func (*EnvVariable) Value

func (r *EnvVariable) Value(ctx context.Context) (string, error)

func (*EnvVariable) XXX_GraphQLID added in v0.9.7

func (r *EnvVariable) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*EnvVariable) XXX_GraphQLIDType added in v0.9.7

func (r *EnvVariable) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*EnvVariable) XXX_GraphQLType added in v0.9.7

func (r *EnvVariable) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type EnvVariableID added in v0.9.7

type EnvVariableID string

The `EnvVariableID` scalar type represents an identifier for an object of type EnvVariable.

type ExecError added in v0.7.0

type ExecError struct {
	Cmd      []string
	ExitCode int
	Stdout   string
	Stderr   string
	// contains filtered or unexported fields
}

ExecError is an API error from an exec operation.

func (*ExecError) Error added in v0.7.0

func (e *ExecError) Error() string

func (*ExecError) Message added in v0.7.0

func (e *ExecError) Message() string

func (*ExecError) Unwrap added in v0.7.0

func (e *ExecError) Unwrap() error

type FieldTypeDef added in v0.8.8

type FieldTypeDef struct {
	// contains filtered or unexported fields
}

A definition of a field on a custom object defined in a Module.

A field on an object has a static value, as opposed to a function on an object whose value is computed by invoking code (and can accept arguments).

func (*FieldTypeDef) Description added in v0.8.8

func (r *FieldTypeDef) Description(ctx context.Context) (string, error)

func (*FieldTypeDef) ID added in v0.9.7

A unique identifier for this FieldTypeDef.

func (*FieldTypeDef) MarshalJSON added in v0.9.7

func (r *FieldTypeDef) MarshalJSON() ([]byte, error)

func (*FieldTypeDef) Name added in v0.8.8

func (r *FieldTypeDef) Name(ctx context.Context) (string, error)

func (*FieldTypeDef) TypeDef added in v0.8.8

func (r *FieldTypeDef) TypeDef() *TypeDef

func (*FieldTypeDef) XXX_GraphQLID added in v0.9.7

func (r *FieldTypeDef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*FieldTypeDef) XXX_GraphQLIDType added in v0.9.7

func (r *FieldTypeDef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*FieldTypeDef) XXX_GraphQLType added in v0.9.7

func (r *FieldTypeDef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FieldTypeDefID added in v0.9.7

type FieldTypeDefID string

The `FieldTypeDefID` scalar type represents an identifier for an object of type FieldTypeDef.

type File

type File struct {
	// contains filtered or unexported fields
}

A file.

func (*File) Contents

func (r *File) Contents(ctx context.Context) (string, error)

Retrieves the contents of the file.

func (*File) Export added in v0.4.0

func (r *File) Export(ctx context.Context, path string, opts ...FileExportOpts) (bool, error)

Writes the file to a file path on the host.

func (*File) ID

func (r *File) ID(ctx context.Context) (FileID, error)

A unique identifier for this File.

func (*File) MarshalJSON added in v0.8.8

func (r *File) MarshalJSON() ([]byte, error)

func (*File) Name added in v0.9.7

func (r *File) Name(ctx context.Context) (string, error)

Retrieves the name of the file.

func (*File) Size

func (r *File) Size(ctx context.Context) (int, error)

Retrieves the size of the file, in bytes.

func (*File) Sync added in v0.7.4

func (r *File) Sync(ctx context.Context) (*File, error)

Force evaluation in the engine.

func (*File) With added in v0.7.4

func (r *File) With(f WithFileFunc) *File

With calls the provided function with current File.

This is useful for reusability and readability by not breaking the calling chain.

func (*File) WithTimestamps added in v0.4.3

func (r *File) WithTimestamps(timestamp int) *File

Retrieves this file with its created/modified timestamps set to the given time.

func (*File) XXX_GraphQLID added in v0.4.0

func (r *File) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*File) XXX_GraphQLIDType added in v0.7.2

func (r *File) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*File) XXX_GraphQLType added in v0.4.0

func (r *File) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FileExportOpts added in v0.7.2

type FileExportOpts struct {
	// If allowParentDirPath is true, the path argument can be a directory path, in which case the file will be created in that directory.
	AllowParentDirPath bool
}

FileExportOpts contains options for File.Export

type FileID

type FileID string

The `FileID` scalar type represents an identifier for an object of type File.

type Function added in v0.8.8

type Function struct {
	// contains filtered or unexported fields
}

Function represents a resolver provided by a Module.

A function always evaluates against a parent object and is given a set of named arguments.

func (*Function) Args added in v0.8.8

func (r *Function) Args(ctx context.Context) ([]FunctionArg, error)

func (*Function) Description added in v0.8.8

func (r *Function) Description(ctx context.Context) (string, error)

func (*Function) ID added in v0.8.8

func (r *Function) ID(ctx context.Context) (FunctionID, error)

A unique identifier for this Function.

func (*Function) MarshalJSON added in v0.8.8

func (r *Function) MarshalJSON() ([]byte, error)

func (*Function) Name added in v0.8.8

func (r *Function) Name(ctx context.Context) (string, error)

func (*Function) ReturnType added in v0.8.8

func (r *Function) ReturnType() *TypeDef

func (*Function) With added in v0.8.8

func (r *Function) With(f WithFunctionFunc) *Function

With calls the provided function with current Function.

This is useful for reusability and readability by not breaking the calling chain.

func (*Function) WithArg added in v0.8.8

func (r *Function) WithArg(name string, typeDef *TypeDef, opts ...FunctionWithArgOpts) *Function

Returns the function with the provided argument

func (*Function) WithDescription added in v0.8.8

func (r *Function) WithDescription(description string) *Function

Returns the function with the given doc string.

func (*Function) XXX_GraphQLID added in v0.8.8

func (r *Function) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Function) XXX_GraphQLIDType added in v0.8.8

func (r *Function) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Function) XXX_GraphQLType added in v0.8.8

func (r *Function) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FunctionArg added in v0.8.8

type FunctionArg struct {
	// contains filtered or unexported fields
}

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.

func (*FunctionArg) DefaultValue added in v0.8.8

func (r *FunctionArg) DefaultValue(ctx context.Context) (JSON, error)

func (*FunctionArg) Description added in v0.8.8

func (r *FunctionArg) Description(ctx context.Context) (string, error)

func (*FunctionArg) ID added in v0.9.0

A unique identifier for this FunctionArg.

func (*FunctionArg) MarshalJSON added in v0.9.0

func (r *FunctionArg) MarshalJSON() ([]byte, error)

func (*FunctionArg) Name added in v0.8.8

func (r *FunctionArg) Name(ctx context.Context) (string, error)

func (*FunctionArg) TypeDef added in v0.8.8

func (r *FunctionArg) TypeDef() *TypeDef

func (*FunctionArg) XXX_GraphQLID added in v0.9.0

func (r *FunctionArg) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*FunctionArg) XXX_GraphQLIDType added in v0.9.0

func (r *FunctionArg) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*FunctionArg) XXX_GraphQLType added in v0.9.0

func (r *FunctionArg) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FunctionArgID added in v0.9.0

type FunctionArgID string

The `FunctionArgID` scalar type represents an identifier for an object of type FunctionArg.

type FunctionCall added in v0.8.8

type FunctionCall struct {
	// contains filtered or unexported fields
}

An active function call.

func (*FunctionCall) ID added in v0.9.7

A unique identifier for this FunctionCall.

func (*FunctionCall) InputArgs added in v0.8.8

func (r *FunctionCall) InputArgs(ctx context.Context) ([]FunctionCallArgValue, error)

func (*FunctionCall) MarshalJSON added in v0.9.7

func (r *FunctionCall) MarshalJSON() ([]byte, error)

func (*FunctionCall) Name added in v0.8.8

func (r *FunctionCall) Name(ctx context.Context) (string, error)

func (*FunctionCall) Parent added in v0.8.8

func (r *FunctionCall) Parent(ctx context.Context) (JSON, error)

func (*FunctionCall) ParentName added in v0.8.8

func (r *FunctionCall) ParentName(ctx context.Context) (string, error)

func (*FunctionCall) ReturnValue added in v0.8.8

func (r *FunctionCall) ReturnValue(ctx context.Context, value JSON) (Void, error)

Set the return value of the function call to the provided value.

func (*FunctionCall) XXX_GraphQLID added in v0.9.7

func (r *FunctionCall) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*FunctionCall) XXX_GraphQLIDType added in v0.9.7

func (r *FunctionCall) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*FunctionCall) XXX_GraphQLType added in v0.9.7

func (r *FunctionCall) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FunctionCallArgValue added in v0.8.8

type FunctionCallArgValue struct {
	// contains filtered or unexported fields
}

A value passed as a named argument to a function call.

func (*FunctionCallArgValue) ID added in v0.9.7

A unique identifier for this FunctionCallArgValue.

func (*FunctionCallArgValue) MarshalJSON added in v0.9.7

func (r *FunctionCallArgValue) MarshalJSON() ([]byte, error)

func (*FunctionCallArgValue) Name added in v0.8.8

func (*FunctionCallArgValue) Value added in v0.8.8

func (r *FunctionCallArgValue) Value(ctx context.Context) (JSON, error)

func (*FunctionCallArgValue) XXX_GraphQLID added in v0.9.7

func (r *FunctionCallArgValue) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*FunctionCallArgValue) XXX_GraphQLIDType added in v0.9.7

func (r *FunctionCallArgValue) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*FunctionCallArgValue) XXX_GraphQLType added in v0.9.7

func (r *FunctionCallArgValue) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type FunctionCallArgValueID added in v0.9.7

type FunctionCallArgValueID string

The `FunctionCallArgValueID` scalar type represents an identifier for an object of type FunctionCallArgValue.

type FunctionCallID added in v0.9.7

type FunctionCallID string

The `FunctionCallID` scalar type represents an identifier for an object of type FunctionCall.

type FunctionID added in v0.8.8

type FunctionID string

The `FunctionID` scalar type represents an identifier for an object of type Function.

type FunctionWithArgOpts added in v0.8.8

type FunctionWithArgOpts struct {
	// A doc string for the argument, if any
	Description string
	// A default value to use for this argument if not explicitly set by the caller, if any
	DefaultValue JSON
}

FunctionWithArgOpts contains options for Function.WithArg

type GeneratedCode added in v0.8.8

type GeneratedCode struct {
	// contains filtered or unexported fields
}

The result of running an SDK's codegen.

func (*GeneratedCode) Code added in v0.8.8

func (r *GeneratedCode) Code() *Directory

func (*GeneratedCode) ID added in v0.8.8

A unique identifier for this GeneratedCode.

func (*GeneratedCode) MarshalJSON added in v0.8.8

func (r *GeneratedCode) MarshalJSON() ([]byte, error)

func (*GeneratedCode) VcsGeneratedPaths added in v0.8.8

func (r *GeneratedCode) VcsGeneratedPaths(ctx context.Context) ([]string, error)

func (*GeneratedCode) VcsIgnoredPaths added in v0.8.8

func (r *GeneratedCode) VcsIgnoredPaths(ctx context.Context) ([]string, error)

func (*GeneratedCode) With added in v0.8.8

With calls the provided function with current GeneratedCode.

This is useful for reusability and readability by not breaking the calling chain.

func (*GeneratedCode) WithVCSGeneratedPaths added in v0.8.8

func (r *GeneratedCode) WithVCSGeneratedPaths(paths []string) *GeneratedCode

Set the list of paths to mark generated in version control.

func (*GeneratedCode) WithVCSIgnoredPaths added in v0.8.8

func (r *GeneratedCode) WithVCSIgnoredPaths(paths []string) *GeneratedCode

Set the list of paths to ignore in version control.

func (*GeneratedCode) XXX_GraphQLID added in v0.8.8

func (r *GeneratedCode) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*GeneratedCode) XXX_GraphQLIDType added in v0.8.8

func (r *GeneratedCode) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*GeneratedCode) XXX_GraphQLType added in v0.8.8

func (r *GeneratedCode) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type GeneratedCodeID added in v0.8.8

type GeneratedCodeID string

The `GeneratedCodeID` scalar type represents an identifier for an object of type GeneratedCode.

type GitOpts added in v0.4.1

type GitOpts struct {
	// Set to true to keep .git directory.
	KeepGitDir bool
	// A service which must be started before the repo is fetched.
	ExperimentalServiceHost *Service
	// Set SSH known hosts
	SSHKnownHosts string
	// Set SSH auth socket
	SSHAuthSocket *Socket
}

GitOpts contains options for Client.Git

type GitRef

type GitRef struct {
	// contains filtered or unexported fields
}

A git ref (tag, branch, or commit).

func (*GitRef) Commit added in v0.9.1

func (r *GitRef) Commit(ctx context.Context) (string, error)

The resolved commit id at this ref.

func (*GitRef) ID added in v0.9.4

func (r *GitRef) ID(ctx context.Context) (GitRefID, error)

A unique identifier for this GitRef.

func (*GitRef) MarshalJSON added in v0.9.4

func (r *GitRef) MarshalJSON() ([]byte, error)

func (*GitRef) Tree

func (r *GitRef) Tree(opts ...GitRefTreeOpts) *Directory

The filesystem tree at this ref.

func (*GitRef) XXX_GraphQLID added in v0.9.4

func (r *GitRef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*GitRef) XXX_GraphQLIDType added in v0.9.4

func (r *GitRef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*GitRef) XXX_GraphQLType added in v0.9.4

func (r *GitRef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type GitRefID added in v0.9.4

type GitRefID string

The `GitRefID` scalar type represents an identifier for an object of type GitRef.

type GitRefTreeOpts added in v0.4.2

type GitRefTreeOpts struct {
	// DEPRECATED: This option should be passed to `git` instead.
	SSHKnownHosts string
	// DEPRECATED: This option should be passed to `git` instead.
	SSHAuthSocket *Socket
}

GitRefTreeOpts contains options for GitRef.Tree

type GitRepository

type GitRepository struct {
	// contains filtered or unexported fields
}

A git repository.

Example
package main

import (
	"context"
	"fmt"
	"strings"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx)
	if err != nil {
		panic(err)
	}
	defer client.Close()

	readme, err := client.Git("https://github.com/dagger/dagger").
		Tag("v0.3.0").
		Tree().File("README.md").Contents(ctx)
	if err != nil {
		panic(err)
	}

	lines := strings.Split(strings.TrimSpace(readme), "\n")
	fmt.Println(lines[0])

}
Output:

## What is Dagger?

func (*GitRepository) Branch

func (r *GitRepository) Branch(name string) *GitRef

Returns details of a branch.

func (*GitRepository) Commit added in v0.4.1

func (r *GitRepository) Commit(id string) *GitRef

Returns details of a commit.

func (*GitRepository) ID added in v0.9.4

A unique identifier for this GitRepository.

func (*GitRepository) MarshalJSON added in v0.9.4

func (r *GitRepository) MarshalJSON() ([]byte, error)

func (*GitRepository) Tag

func (r *GitRepository) Tag(name string) *GitRef

Returns details of a tag.

func (*GitRepository) XXX_GraphQLID added in v0.9.4

func (r *GitRepository) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*GitRepository) XXX_GraphQLIDType added in v0.9.4

func (r *GitRepository) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*GitRepository) XXX_GraphQLType added in v0.9.4

func (r *GitRepository) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type GitRepositoryID added in v0.9.4

type GitRepositoryID string

The `GitRepositoryID` scalar type represents an identifier for an object of type GitRepository.

type HTTPOpts added in v0.4.6

type HTTPOpts struct {
	// A service which must be started before the URL is fetched.
	ExperimentalServiceHost *Service
}

HTTPOpts contains options for Client.HTTP

type Host

type Host struct {
	// contains filtered or unexported fields
}

Information about the host environment.

func (*Host) Directory

func (r *Host) Directory(path string, opts ...HostDirectoryOpts) *Directory

Accesses a directory on the host.

Example
package main

import (
	"context"
	"fmt"
	"strings"

	"dagger.io/dagger"
)

func main() {
	ctx := context.Background()
	client, err := dagger.Connect(ctx, dagger.WithWorkdir("."))
	if err != nil {
		panic(err)
	}
	defer client.Close()

	readme, err := client.Host().Directory(".").File("README.md").Contents(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Printf("%v\n", strings.Contains(readme, "Dagger"))

}
Output:

true

func (*Host) File added in v0.7.2

func (r *Host) File(path string) *File

Accesses a file on the host.

func (*Host) ID added in v0.9.7

func (r *Host) ID(ctx context.Context) (HostID, error)

A unique identifier for this Host.

func (*Host) MarshalJSON added in v0.9.7

func (r *Host) MarshalJSON() ([]byte, error)

func (*Host) Service added in v0.9.0

func (r *Host) Service(ports []PortForward, opts ...HostServiceOpts) *Service

Creates a service that forwards traffic to a specified address via the host.

func (*Host) SetSecretFile added in v0.8.0

func (r *Host) SetSecretFile(name string, path string) *Secret

Sets a secret given a user-defined name and the file path on the host, and returns the secret.

The file is limited to a size of 512000 bytes.

func (*Host) Tunnel added in v0.9.0

func (r *Host) Tunnel(service *Service, opts ...HostTunnelOpts) *Service

Creates a tunnel that forwards traffic from the host to a service.

func (*Host) UnixSocket added in v0.4.2

func (r *Host) UnixSocket(path string) *Socket

Accesses a Unix socket on the host.

func (*Host) XXX_GraphQLID added in v0.9.7

func (r *Host) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Host) XXX_GraphQLIDType added in v0.9.7

func (r *Host) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Host) XXX_GraphQLType added in v0.9.7

func (r *Host) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type HostDirectoryOpts added in v0.4.0

type HostDirectoryOpts struct {
	// Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]).
	Exclude []string
	// Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]).
	Include []string
}

HostDirectoryOpts contains options for Host.Directory

type HostID added in v0.9.7

type HostID string

The `HostID` scalar type represents an identifier for an object of type Host.

type HostServiceOpts added in v0.9.0

type HostServiceOpts struct {
	// Upstream host to forward traffic to.
	Host string
}

HostServiceOpts contains options for Host.Service

type HostTunnelOpts added in v0.9.0

type HostTunnelOpts struct {
	// Configure explicit port forwarding rules for the tunnel.
	//
	// If a port's frontend is unspecified or 0, a random port will be chosen by the host.
	//
	// If no ports are given, all of the service's ports are forwarded. If native is true, each port maps to the same port on the host. If native is false, each port maps to a random port chosen by the host.
	//
	// If ports are given and native is true, the ports are additive.
	Ports []PortForward
	// Map each service port to the same port on the host, as if the service were running natively.
	//
	// Note: enabling may result in port conflicts.
	Native bool
}

HostTunnelOpts contains options for Host.Tunnel

type ImageLayerCompression added in v0.6.3

type ImageLayerCompression string
const (
	Estargz ImageLayerCompression = "EStarGZ"

	Gzip ImageLayerCompression = "Gzip"

	Uncompressed ImageLayerCompression = "Uncompressed"

	Zstd ImageLayerCompression = "Zstd"
)

func (ImageLayerCompression) IsEnum added in v0.9.0

func (ImageLayerCompression) IsEnum()

type ImageMediaTypes added in v0.7.4

type ImageMediaTypes string
const (
	Dockermediatypes ImageMediaTypes = "DockerMediaTypes"

	Ocimediatypes ImageMediaTypes = "OCIMediaTypes"
)

func (ImageMediaTypes) IsEnum added in v0.9.0

func (ImageMediaTypes) IsEnum()

type InterfaceTypeDef added in v0.9.6

type InterfaceTypeDef struct {
	// contains filtered or unexported fields
}

A definition of a custom interface defined in a Module.

func (*InterfaceTypeDef) Description added in v0.9.6

func (r *InterfaceTypeDef) Description(ctx context.Context) (string, error)

func (*InterfaceTypeDef) Functions added in v0.9.6

func (r *InterfaceTypeDef) Functions(ctx context.Context) ([]Function, error)

func (*InterfaceTypeDef) ID added in v0.9.7

A unique identifier for this InterfaceTypeDef.

func (*InterfaceTypeDef) MarshalJSON added in v0.9.7

func (r *InterfaceTypeDef) MarshalJSON() ([]byte, error)

func (*InterfaceTypeDef) Name added in v0.9.6

func (r *InterfaceTypeDef) Name(ctx context.Context) (string, error)

func (*InterfaceTypeDef) SourceModuleName added in v0.9.6

func (r *InterfaceTypeDef) SourceModuleName(ctx context.Context) (string, error)

func (*InterfaceTypeDef) XXX_GraphQLID added in v0.9.7

func (r *InterfaceTypeDef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*InterfaceTypeDef) XXX_GraphQLIDType added in v0.9.7

func (r *InterfaceTypeDef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*InterfaceTypeDef) XXX_GraphQLType added in v0.9.7

func (r *InterfaceTypeDef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type InterfaceTypeDefID added in v0.9.7

type InterfaceTypeDefID string

The `InterfaceTypeDefID` scalar type represents an identifier for an object of type InterfaceTypeDef.

type JSON added in v0.8.8

type JSON string

An arbitrary JSON-encoded value.

type Label added in v0.4.4

type Label struct {
	// contains filtered or unexported fields
}

A simple key value object that represents a label.

func (*Label) ID added in v0.9.7

func (r *Label) ID(ctx context.Context) (LabelID, error)

A unique identifier for this Label.

func (*Label) MarshalJSON added in v0.9.7

func (r *Label) MarshalJSON() ([]byte, error)

func (*Label) Name added in v0.4.4

func (r *Label) Name(ctx context.Context) (string, error)

func (*Label) Value added in v0.4.4

func (r *Label) Value(ctx context.Context) (string, error)

func (*Label) XXX_GraphQLID added in v0.9.7

func (r *Label) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Label) XXX_GraphQLIDType added in v0.9.7

func (r *Label) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Label) XXX_GraphQLType added in v0.9.7

func (r *Label) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type LabelID added in v0.9.7

type LabelID string

The `LabelID` scalar type represents an identifier for an object of type Label.

type ListTypeDef added in v0.8.8

type ListTypeDef struct {
	// contains filtered or unexported fields
}

A definition of a list type in a Module.

func (*ListTypeDef) ElementTypeDef added in v0.8.8

func (r *ListTypeDef) ElementTypeDef() *TypeDef

func (*ListTypeDef) ID added in v0.9.7

A unique identifier for this ListTypeDef.

func (*ListTypeDef) MarshalJSON added in v0.9.7

func (r *ListTypeDef) MarshalJSON() ([]byte, error)

func (*ListTypeDef) XXX_GraphQLID added in v0.9.7

func (r *ListTypeDef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*ListTypeDef) XXX_GraphQLIDType added in v0.9.7

func (r *ListTypeDef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*ListTypeDef) XXX_GraphQLType added in v0.9.7

func (r *ListTypeDef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ListTypeDefID added in v0.9.7

type ListTypeDefID string

The `ListTypeDefID` scalar type represents an identifier for an object of type ListTypeDef.

type Module added in v0.8.8

type Module struct {
	// contains filtered or unexported fields
}

A Dagger module.

func (*Module) Dependencies added in v0.8.8

func (r *Module) Dependencies(ctx context.Context) ([]Module, error)

func (*Module) DependencyConfig added in v0.8.8

func (r *Module) DependencyConfig(ctx context.Context) ([]string, error)

func (*Module) Description added in v0.8.8

func (r *Module) Description(ctx context.Context) (string, error)

func (*Module) GeneratedCode added in v0.8.8

func (r *Module) GeneratedCode() *GeneratedCode

func (*Module) ID added in v0.8.8

func (r *Module) ID(ctx context.Context) (ModuleID, error)

A unique identifier for this Module.

func (*Module) Initialize added in v0.9.7

func (r *Module) Initialize() *Module

Retrieves the module with the objects loaded via its SDK.

func (*Module) Interfaces added in v0.9.6

func (r *Module) Interfaces(ctx context.Context) ([]TypeDef, error)

func (*Module) MarshalJSON added in v0.8.8

func (r *Module) MarshalJSON() ([]byte, error)

func (*Module) Name added in v0.8.8

func (r *Module) Name(ctx context.Context) (string, error)

func (*Module) Objects added in v0.8.8

func (r *Module) Objects(ctx context.Context) ([]TypeDef, error)

func (*Module) SDK added in v0.8.8

func (r *Module) SDK(ctx context.Context) (string, error)

func (*Module) Serve added in v0.8.8

func (r *Module) Serve(ctx context.Context) (Void, error)

Serve a module's API in the current session.

Note: this can only be called once per session. In the future, it could return a stream or service to remove the side effect.

func (*Module) SourceDirectory added in v0.8.8

func (r *Module) SourceDirectory() *Directory

func (*Module) SourceDirectorySubpath added in v0.9.7

func (r *Module) SourceDirectorySubpath(ctx context.Context) (string, error)

func (*Module) With added in v0.8.8

func (r *Module) With(f WithModuleFunc) *Module

With calls the provided function with current Module.

This is useful for reusability and readability by not breaking the calling chain.

func (*Module) WithInterface added in v0.9.6

func (r *Module) WithInterface(iface *TypeDef) *Module

This module plus the given Interface type and associated functions

func (*Module) WithObject added in v0.8.8

func (r *Module) WithObject(object *TypeDef) *Module

This module plus the given Object type and associated functions.

func (*Module) WithSource added in v0.9.7

func (r *Module) WithSource(directory *Directory, opts ...ModuleWithSourceOpts) *Module

Retrieves the module with basic configuration loaded, ready for initialization.

func (*Module) XXX_GraphQLID added in v0.8.8

func (r *Module) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Module) XXX_GraphQLIDType added in v0.8.8

func (r *Module) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Module) XXX_GraphQLType added in v0.8.8

func (r *Module) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ModuleConfig added in v0.9.0

type ModuleConfig struct {
	// contains filtered or unexported fields
}

Static configuration for a module (e.g. parsed contents of dagger.json)

func (*ModuleConfig) Dependencies added in v0.9.0

func (r *ModuleConfig) Dependencies(ctx context.Context) ([]string, error)

func (*ModuleConfig) Exclude added in v0.9.0

func (r *ModuleConfig) Exclude(ctx context.Context) ([]string, error)

func (*ModuleConfig) ID added in v0.9.7

A unique identifier for this ModuleConfig.

func (*ModuleConfig) Include added in v0.9.0

func (r *ModuleConfig) Include(ctx context.Context) ([]string, error)

func (*ModuleConfig) MarshalJSON added in v0.9.7

func (r *ModuleConfig) MarshalJSON() ([]byte, error)

func (*ModuleConfig) Name added in v0.9.0

func (r *ModuleConfig) Name(ctx context.Context) (string, error)

func (*ModuleConfig) Root added in v0.9.0

func (r *ModuleConfig) Root(ctx context.Context) (string, error)

func (*ModuleConfig) SDK added in v0.9.0

func (r *ModuleConfig) SDK(ctx context.Context) (string, error)

func (*ModuleConfig) XXX_GraphQLID added in v0.9.7

func (r *ModuleConfig) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*ModuleConfig) XXX_GraphQLIDType added in v0.9.7

func (r *ModuleConfig) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*ModuleConfig) XXX_GraphQLType added in v0.9.7

func (r *ModuleConfig) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ModuleConfigID added in v0.9.7

type ModuleConfigID string

The `ModuleConfigID` scalar type represents an identifier for an object of type ModuleConfig.

type ModuleConfigOpts added in v0.9.0

type ModuleConfigOpts struct {
	Subpath string
}

ModuleConfigOpts contains options for Client.ModuleConfig

type ModuleID added in v0.8.8

type ModuleID string

The `ModuleID` scalar type represents an identifier for an object of type Module.

type ModuleWithSourceOpts added in v0.9.7

type ModuleWithSourceOpts struct {
	// An optional subpath of the directory which contains the module's source code.
	//
	// This is needed when the module code is in a subdirectory but requires parent directories to be loaded in order to execute. For example, the module source code may need a go.mod, project.toml, package.json, etc. file from a parent directory.
	//
	// If not set, the module source code is loaded from the root of the directory.
	Subpath string
}

ModuleWithSourceOpts contains options for Module.WithSource

type NetworkProtocol added in v0.4.6

type NetworkProtocol string
const (
	Tcp NetworkProtocol = "TCP"

	Udp NetworkProtocol = "UDP"
)

func (NetworkProtocol) IsEnum added in v0.9.0

func (NetworkProtocol) IsEnum()

type ObjectTypeDef added in v0.8.8

type ObjectTypeDef struct {
	// contains filtered or unexported fields
}

A definition of a custom object defined in a Module.

func (*ObjectTypeDef) Constructor added in v0.9.4

func (r *ObjectTypeDef) Constructor() *Function

func (*ObjectTypeDef) Description added in v0.8.8

func (r *ObjectTypeDef) Description(ctx context.Context) (string, error)

func (*ObjectTypeDef) Fields added in v0.8.8

func (r *ObjectTypeDef) Fields(ctx context.Context) ([]FieldTypeDef, error)

func (*ObjectTypeDef) Functions added in v0.8.8

func (r *ObjectTypeDef) Functions(ctx context.Context) ([]Function, error)

func (*ObjectTypeDef) ID added in v0.9.7

A unique identifier for this ObjectTypeDef.

func (*ObjectTypeDef) MarshalJSON added in v0.9.7

func (r *ObjectTypeDef) MarshalJSON() ([]byte, error)

func (*ObjectTypeDef) Name added in v0.8.8

func (r *ObjectTypeDef) Name(ctx context.Context) (string, error)

func (*ObjectTypeDef) SourceModuleName added in v0.9.6

func (r *ObjectTypeDef) SourceModuleName(ctx context.Context) (string, error)

func (*ObjectTypeDef) XXX_GraphQLID added in v0.9.7

func (r *ObjectTypeDef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*ObjectTypeDef) XXX_GraphQLIDType added in v0.9.7

func (r *ObjectTypeDef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*ObjectTypeDef) XXX_GraphQLType added in v0.9.7

func (r *ObjectTypeDef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ObjectTypeDefID added in v0.9.7

type ObjectTypeDefID string

The `ObjectTypeDefID` scalar type represents an identifier for an object of type ObjectTypeDef.

type Optional added in v0.9.1

type Optional[T any] struct {
	// contains filtered or unexported fields
}

Optional is a helper type to represent optional values. Any method arguments that use this wrapper type will be set as optional in the generated API.

To construct an Optional from within a module, use the Opt helper function.

func Opt added in v0.9.1

func Opt[T any](v T) Optional[T]

Opt is a helper function to construct an Optional with the given value set.

func OptEmpty added in v0.9.3

func OptEmpty[T any]() Optional[T]

OptEmpty is a helper function to construct an empty Optional.

func (*Optional[T]) Get added in v0.9.1

func (o *Optional[T]) Get() (T, bool)

Get returns the internal value of the optional and a boolean indicating if the value was set explicitly by the caller.

func (*Optional[T]) GetOr added in v0.9.1

func (o *Optional[T]) GetOr(defaultValue T) T

GetOr returns the internal value of the optional or the given default value if the value was not explicitly set by the caller.

func (*Optional[T]) MarshalJSON added in v0.9.1

func (o *Optional[T]) MarshalJSON() ([]byte, error)

func (*Optional[T]) UnmarshalJSON added in v0.9.1

func (o *Optional[T]) UnmarshalJSON(dt []byte) error

type PipelineLabel added in v0.5.0

type PipelineLabel struct {
	// Label name.
	Name string `json:"name"`

	// Label value.
	Value string `json:"value"`
}

Key value object that represents a pipeline label.

type PipelineOpts added in v0.4.4

type PipelineOpts struct {
	// Description of the sub-pipeline.
	Description string
	// Labels to apply to the sub-pipeline.
	Labels []PipelineLabel
}

PipelineOpts contains options for Client.Pipeline

type Platform added in v0.4.0

type Platform string

The platform config OS and architecture in a Container.

The format is os/[platform]/[version] (e.g., "darwin/arm64/v7", "windows/amd64", "linux/arm64").

type Port added in v0.4.6

type Port struct {
	// contains filtered or unexported fields
}

A port exposed by a container.

func (*Port) Description added in v0.4.6

func (r *Port) Description(ctx context.Context) (string, error)

func (*Port) ID added in v0.9.7

func (r *Port) ID(ctx context.Context) (PortID, error)

A unique identifier for this Port.

func (*Port) MarshalJSON added in v0.9.7

func (r *Port) MarshalJSON() ([]byte, error)

func (*Port) Port added in v0.4.6

func (r *Port) Port(ctx context.Context) (int, error)

func (*Port) Protocol added in v0.4.6

func (r *Port) Protocol(ctx context.Context) (NetworkProtocol, error)

func (*Port) XXX_GraphQLID added in v0.9.7

func (r *Port) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Port) XXX_GraphQLIDType added in v0.9.7

func (r *Port) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Port) XXX_GraphQLType added in v0.9.7

func (r *Port) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type PortForward added in v0.9.0

type PortForward struct {
	// Destination port for traffic.
	Backend int `json:"backend"`

	// Port to expose to clients. If unspecified, a default will be chosen.
	Frontend int `json:"frontend"`

	// Transport layer protocol to use for traffic.
	Protocol NetworkProtocol `json:"protocol,omitempty"`
}

Port forwarding rules for tunneling network traffic.

type PortID added in v0.9.7

type PortID string

The `PortID` scalar type represents an identifier for an object of type Port.

type Request

type Request struct {
	// The literal string representing the GraphQL query, e.g.
	// `query myQuery { myField }`.
	Query string `json:"query"`
	// A JSON-marshalable value containing the variables to be sent
	// along with the query, or nil if there are none.
	Variables interface{} `json:"variables,omitempty"`
	// The GraphQL operation name. The server typically doesn't
	// require this unless there are multiple queries in the
	// document, but genqlient sets it unconditionally anyway.
	OpName string `json:"operationName"`
}

Request contains all the values required to build queries executed by the graphql.Client.

Typically, GraphQL APIs will accept a JSON payload of the form

{"query": "query myQuery { ... }", "variables": {...}}`

and Request marshals to this format. However, MakeRequest may marshal the data in some other way desired by the backend.

type Response

type Response struct {
	Data       interface{}            `json:"data"`
	Extensions map[string]interface{} `json:"extensions,omitempty"`
	Errors     gqlerror.List          `json:"errors,omitempty"`
}

Response that contains data returned by the GraphQL API.

Typically, GraphQL APIs will return a JSON payload of the form

{"data": {...}, "errors": {...}}

It may additionally contain a key named "extensions", that might hold GraphQL protocol extensions. Extensions and Errors are optional, depending on the values returned by the server.

type Secret

type Secret struct {
	// contains filtered or unexported fields
}

A reference to a secret value, which can be handled more safely than the value itself.

func (*Secret) ID

func (r *Secret) ID(ctx context.Context) (SecretID, error)

A unique identifier for this Secret.

func (*Secret) MarshalJSON added in v0.8.8

func (r *Secret) MarshalJSON() ([]byte, error)

func (*Secret) Plaintext

func (r *Secret) Plaintext(ctx context.Context) (string, error)

The value of this secret.

func (*Secret) XXX_GraphQLID added in v0.4.0

func (r *Secret) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Secret) XXX_GraphQLIDType added in v0.7.2

func (r *Secret) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Secret) XXX_GraphQLType added in v0.4.0

func (r *Secret) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type SecretID

type SecretID string

The `SecretID` scalar type represents an identifier for an object of type Secret.

type Service added in v0.9.0

type Service struct {
	// contains filtered or unexported fields
}

A content-addressed service providing TCP connectivity.

func (*Service) Endpoint added in v0.9.0

func (r *Service) Endpoint(ctx context.Context, opts ...ServiceEndpointOpts) (string, error)

Retrieves an endpoint that clients can use to reach this container.

If no port is specified, the first exposed port is used. If none exist an error is returned.

If a scheme is specified, a URL is returned. Otherwise, a host:port pair is returned.

func (*Service) Hostname added in v0.9.0

func (r *Service) Hostname(ctx context.Context) (string, error)

Retrieves a hostname which can be used by clients to reach this container.

func (*Service) ID added in v0.9.0

func (r *Service) ID(ctx context.Context) (ServiceID, error)

A unique identifier for this Service.

func (*Service) MarshalJSON added in v0.9.0

func (r *Service) MarshalJSON() ([]byte, error)

func (*Service) Ports added in v0.9.0

func (r *Service) Ports(ctx context.Context) ([]Port, error)

Retrieves the list of ports provided by the service.

func (*Service) Start added in v0.9.0

func (r *Service) Start(ctx context.Context) (*Service, error)

Start the service and wait for its health checks to succeed.

Services bound to a Container do not need to be manually started.

func (*Service) Stop added in v0.9.0

func (r *Service) Stop(ctx context.Context) (*Service, error)

Stop the service.

func (*Service) XXX_GraphQLID added in v0.9.0

func (r *Service) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Service) XXX_GraphQLIDType added in v0.9.0

func (r *Service) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Service) XXX_GraphQLType added in v0.9.0

func (r *Service) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type ServiceEndpointOpts added in v0.9.0

type ServiceEndpointOpts struct {
	// The exposed port number for the endpoint
	Port int
	// Return a URL with the given scheme, eg. http for https://
	Scheme string
}

ServiceEndpointOpts contains options for Service.Endpoint

type ServiceID added in v0.9.0

type ServiceID string

The `ServiceID` scalar type represents an identifier for an object of type Service.

type Socket added in v0.4.2

type Socket struct {
	// contains filtered or unexported fields
}

A Unix or TCP/IP socket that can be mounted into a container.

func (*Socket) ID added in v0.4.2

func (r *Socket) ID(ctx context.Context) (SocketID, error)

A unique identifier for this Socket.

func (*Socket) MarshalJSON added in v0.8.8

func (r *Socket) MarshalJSON() ([]byte, error)

func (*Socket) XXX_GraphQLID added in v0.4.2

func (r *Socket) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*Socket) XXX_GraphQLIDType added in v0.7.2

func (r *Socket) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*Socket) XXX_GraphQLType added in v0.4.2

func (r *Socket) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type SocketID added in v0.4.2

type SocketID string

The `SocketID` scalar type represents an identifier for an object of type Socket.

type TypeDef added in v0.8.8

type TypeDef struct {
	// contains filtered or unexported fields
}

A definition of a parameter or return type in a Module.

func (*TypeDef) AsInterface added in v0.9.6

func (r *TypeDef) AsInterface() *InterfaceTypeDef

func (*TypeDef) AsList added in v0.8.8

func (r *TypeDef) AsList() *ListTypeDef

func (*TypeDef) AsObject added in v0.8.8

func (r *TypeDef) AsObject() *ObjectTypeDef

func (*TypeDef) ID added in v0.8.8

func (r *TypeDef) ID(ctx context.Context) (TypeDefID, error)

A unique identifier for this TypeDef.

func (*TypeDef) Kind added in v0.8.8

func (r *TypeDef) Kind(ctx context.Context) (TypeDefKind, error)

func (*TypeDef) MarshalJSON added in v0.8.8

func (r *TypeDef) MarshalJSON() ([]byte, error)

func (*TypeDef) Optional added in v0.8.8

func (r *TypeDef) Optional(ctx context.Context) (bool, error)

func (*TypeDef) With added in v0.8.8

func (r *TypeDef) With(f WithTypeDefFunc) *TypeDef

With calls the provided function with current TypeDef.

This is useful for reusability and readability by not breaking the calling chain.

func (*TypeDef) WithConstructor added in v0.9.4

func (r *TypeDef) WithConstructor(function *Function) *TypeDef

Adds a function for constructing a new instance of an Object TypeDef, failing if the type is not an object.

func (*TypeDef) WithField added in v0.8.8

func (r *TypeDef) WithField(name string, typeDef *TypeDef, opts ...TypeDefWithFieldOpts) *TypeDef

Adds a static field for an Object TypeDef, failing if the type is not an object.

func (*TypeDef) WithFunction added in v0.8.8

func (r *TypeDef) WithFunction(function *Function) *TypeDef

Adds a function for an Object or Interface TypeDef, failing if the type is not one of those kinds.

func (*TypeDef) WithInterface added in v0.9.6

func (r *TypeDef) WithInterface(name string, opts ...TypeDefWithInterfaceOpts) *TypeDef

Returns a TypeDef of kind Interface with the provided name.

func (*TypeDef) WithKind added in v0.8.8

func (r *TypeDef) WithKind(kind TypeDefKind) *TypeDef

Sets the kind of the type.

func (*TypeDef) WithListOf added in v0.8.8

func (r *TypeDef) WithListOf(elementType *TypeDef) *TypeDef

Returns a TypeDef of kind List with the provided type for its elements.

func (*TypeDef) WithObject added in v0.8.8

func (r *TypeDef) WithObject(name string, opts ...TypeDefWithObjectOpts) *TypeDef

Returns a TypeDef of kind Object with the provided name.

Note that an object's fields and functions may be omitted if the intent is only to refer to an object. This is how functions are able to return their own object, or any other circular reference.

func (*TypeDef) WithOptional added in v0.8.8

func (r *TypeDef) WithOptional(optional bool) *TypeDef

Sets whether this type can be set to null.

func (*TypeDef) XXX_GraphQLID added in v0.8.8

func (r *TypeDef) XXX_GraphQLID(ctx context.Context) (string, error)

XXX_GraphQLID is an internal function. It returns the underlying type ID

func (*TypeDef) XXX_GraphQLIDType added in v0.8.8

func (r *TypeDef) XXX_GraphQLIDType() string

XXX_GraphQLIDType is an internal function. It returns the native GraphQL type name for the ID of this object

func (*TypeDef) XXX_GraphQLType added in v0.8.8

func (r *TypeDef) XXX_GraphQLType() string

XXX_GraphQLType is an internal function. It returns the native GraphQL type name

type TypeDefID added in v0.8.8

type TypeDefID string

The `TypeDefID` scalar type represents an identifier for an object of type TypeDef.

type TypeDefKind added in v0.8.8

type TypeDefKind string
const (
	// A boolean value.
	BooleanKind TypeDefKind = "BOOLEAN_KIND"

	// An integer value.
	IntegerKind TypeDefKind = "INTEGER_KIND"

	// A named type of functions that can be matched+implemented by other objects+interfaces.
	//
	// Always paired with an InterfaceTypeDef.
	InterfaceKind TypeDefKind = "INTERFACE_KIND"

	// A list of values all having the same type.
	//
	// Always paired with a ListTypeDef.
	ListKind TypeDefKind = "LIST_KIND"

	// A named type defined in the GraphQL schema, with fields and functions.
	//
	// Always paired with an ObjectTypeDef.
	ObjectKind TypeDefKind = "OBJECT_KIND"

	// A string value.
	StringKind TypeDefKind = "STRING_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.
	VoidKind TypeDefKind = "VOID_KIND"
)

func (TypeDefKind) IsEnum added in v0.9.0

func (TypeDefKind) IsEnum()

type TypeDefWithFieldOpts added in v0.8.8

type TypeDefWithFieldOpts struct {
	// A doc string for the field, if any
	Description string
}

TypeDefWithFieldOpts contains options for TypeDef.WithField

type TypeDefWithInterfaceOpts added in v0.9.6

type TypeDefWithInterfaceOpts struct {
	Description string
}

TypeDefWithInterfaceOpts contains options for TypeDef.WithInterface

type TypeDefWithObjectOpts added in v0.8.8

type TypeDefWithObjectOpts struct {
	Description string
}

TypeDefWithObjectOpts contains options for TypeDef.WithObject

type Void added in v0.8.8

type Void string

The absence of a value.

A Null Void is used as a placeholder for resolvers that do not return anything.

type WithClientFunc added in v0.7.4

type WithClientFunc func(r *Client) *Client

type WithContainerFunc added in v0.6.1

type WithContainerFunc func(r *Container) *Container

type WithDirectoryFunc added in v0.6.1

type WithDirectoryFunc func(r *Directory) *Directory

type WithFileFunc added in v0.7.4

type WithFileFunc func(r *File) *File

type WithFunctionFunc added in v0.8.8

type WithFunctionFunc func(r *Function) *Function

type WithGeneratedCodeFunc added in v0.8.8

type WithGeneratedCodeFunc func(r *GeneratedCode) *GeneratedCode

type WithModuleFunc added in v0.8.8

type WithModuleFunc func(r *Module) *Module

type WithTypeDefFunc added in v0.8.8

type WithTypeDefFunc func(r *TypeDef) *TypeDef

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL