...

Package genomics

import "google.golang.org/api/genomics/v1"
Overview
Index

Overview ▾

Package genomics provides access to the Genomics API.

For product documentation, see: https://cloud.google.com/genomics

Creating a client

Usage example:

import "google.golang.org/api/genomics/v1"
...
ctx := context.Background()
genomicsService, err := genomics.NewService(ctx)

In this example, Google Application Default Credentials are used for authentication.

For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.

Other authentication options

To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:

genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza..."))

To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:

config := &oauth2.Config{...}
// ...
token, err := config.Exchange(ctx, ...)
genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))

See https://godoc.org/google.golang.org/api/option/ for details on options.

Index ▾

type Accelerator
    func (s *Accelerator) MarshalJSON() ([]byte, error)
type Action
    func (s *Action) MarshalJSON() ([]byte, error)
type ContainerKilledEvent
    func (s *ContainerKilledEvent) MarshalJSON() ([]byte, error)
type ContainerStartedEvent
    func (s *ContainerStartedEvent) MarshalJSON() ([]byte, error)
type ContainerStoppedEvent
    func (s *ContainerStoppedEvent) MarshalJSON() ([]byte, error)
type DelayedEvent
    func (s *DelayedEvent) MarshalJSON() ([]byte, error)
type Disk
    func (s *Disk) MarshalJSON() ([]byte, error)
type Event
    func (s *Event) MarshalJSON() ([]byte, error)
type ExistingDisk
    func (s *ExistingDisk) MarshalJSON() ([]byte, error)
type FailedEvent
    func (s *FailedEvent) MarshalJSON() ([]byte, error)
type Metadata
    func (s *Metadata) MarshalJSON() ([]byte, error)
type Mount
    func (s *Mount) MarshalJSON() ([]byte, error)
type NFSMount
    func (s *NFSMount) MarshalJSON() ([]byte, error)
type Network
    func (s *Network) MarshalJSON() ([]byte, error)
type PersistentDisk
    func (s *PersistentDisk) MarshalJSON() ([]byte, error)
type Pipeline
    func (s *Pipeline) MarshalJSON() ([]byte, error)
type PullStartedEvent
    func (s *PullStartedEvent) MarshalJSON() ([]byte, error)
type PullStoppedEvent
    func (s *PullStoppedEvent) MarshalJSON() ([]byte, error)
type Resources
    func (s *Resources) MarshalJSON() ([]byte, error)
type RunPipelineResponse
type Secret
    func (s *Secret) MarshalJSON() ([]byte, error)
type Service
    func New(client *http.Client) (*Service, error)
    func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)
type ServiceAccount
    func (s *ServiceAccount) MarshalJSON() ([]byte, error)
type UnexpectedExitStatusEvent
    func (s *UnexpectedExitStatusEvent) MarshalJSON() ([]byte, error)
type VirtualMachine
    func (s *VirtualMachine) MarshalJSON() ([]byte, error)
type Volume
    func (s *Volume) MarshalJSON() ([]byte, error)
type WorkerAssignedEvent
    func (s *WorkerAssignedEvent) MarshalJSON() ([]byte, error)
type WorkerReleasedEvent
    func (s *WorkerReleasedEvent) MarshalJSON() ([]byte, error)

Package files

genomics-gen.go

type Accelerator

Accelerator: Carries information about an accelerator that can be attached to a VM.

type Accelerator struct {
    // Count: How many accelerators of this type to attach.
    Count int64 `json:"count,omitempty,string"`

    // Type: The accelerator type string (for example, "nvidia-tesla-k80").
    // Only NVIDIA GPU accelerators are currently supported. If an NVIDIA
    // GPU is attached, the required runtime libraries will be made
    // available to all containers under `/usr/local/nvidia`. The driver
    // version to install must be specified using the NVIDIA driver version
    // parameter on the virtual machine specification. Note that attaching a
    // GPU increases the worker VM startup time by a few minutes.
    Type string `json:"type,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Count") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Count") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Accelerator) MarshalJSON

func (s *Accelerator) MarshalJSON() ([]byte, error)

type Action

Action: Specifies a single action that runs a Docker container.

type Action struct {
    // Commands: If specified, overrides the `CMD` specified in the
    // container. If the container also has an `ENTRYPOINT` the values are
    // used as entrypoint arguments. Otherwise, they are used as a command
    // and arguments to run inside the container.
    Commands []string `json:"commands,omitempty"`

    // Credentials: If the specified image is hosted on a private registry
    // other than Google Container Registry, the credentials required to
    // pull the image must be specified here as an encrypted secret. The
    // secret must decrypt to a JSON-encoded dictionary containing both
    // `username` and `password` keys.
    Credentials *Secret `json:"credentials,omitempty"`

    // EncryptedEnvironment: The encrypted environment to pass into the
    // container. This environment is merged with values specified in the
    // google.genomics.v2alpha1.Pipeline message, overwriting any duplicate
    // values. The secret must decrypt to a JSON-encoded dictionary where
    // key-value pairs serve as environment variable names and their values.
    // The decoded environment variables can overwrite the values specified
    // by the `environment` field.
    EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"`

    // Entrypoint: If specified, overrides the `ENTRYPOINT` specified in the
    // container.
    Entrypoint string `json:"entrypoint,omitempty"`

    // Environment: The environment to pass into the container. This
    // environment is merged with values specified in the
    // google.genomics.v2alpha1.Pipeline message, overwriting any duplicate
    // values. In addition to the values passed here, a few other values are
    // automatically injected into the environment. These cannot be hidden
    // or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to "1" if the
    // pipeline failed because an action has exited with a non-zero status
    // (and did not have the `IGNORE_EXIT_STATUS` flag set). This can be
    // used to determine if additional debug or logging actions should
    // execute. `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of
    // the last non-background action that executed. This can be used by
    // workflow engine authors to determine whether an individual action has
    // succeeded or failed.
    Environment map[string]string `json:"environment,omitempty"`

    // Flags: The set of flags to apply to this action.
    //
    // Possible values:
    //   "FLAG_UNSPECIFIED" - Unspecified flag.
    //   "IGNORE_EXIT_STATUS" - Normally, a non-zero exit status causes the
    // pipeline to fail. This flag allows execution of other actions to
    // continue instead.
    //   "RUN_IN_BACKGROUND" - This flag allows an action to continue
    // running in the background while executing subsequent actions. This is
    // useful to provide services to other actions (or to provide debugging
    // support tools like SSH servers).
    //   "ALWAYS_RUN" - By default, after an action fails, no further
    // actions are run. This flag indicates that this action must be run
    // even if the pipeline has already failed. This is useful for actions
    // that copy output files off of the VM or for debugging. Note that no
    // actions will be run if image prefetching fails.
    //   "ENABLE_FUSE" - Enable access to the FUSE device for this action.
    // Filesystems can then be mounted into disks shared with other actions.
    // The other actions do not need the `ENABLE_FUSE` flag to access the
    // mounted filesystem. This has the effect of causing the container to
    // be executed with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the
    // container, so use it only for containers you trust.
    //   "PUBLISH_EXPOSED_PORTS" - Exposes all ports specified by `EXPOSE`
    // statements in the container. To discover the host side port numbers,
    // consult the `ACTION_STARTED` event in the operation metadata.
    //   "DISABLE_IMAGE_PREFETCH" - All container images are typically
    // downloaded before any actions are executed. This helps prevent typos
    // in URIs or issues like lack of disk space from wasting large amounts
    // of compute resources. If set, this flag prevents the worker from
    // downloading the image until just before the action is executed.
    //   "DISABLE_STANDARD_ERROR_CAPTURE" - A small portion of the
    // container's standard error stream is typically captured and returned
    // inside the `ContainerStoppedEvent`. Setting this flag disables this
    // functionality.
    //   "BLOCK_EXTERNAL_NETWORK" - Prevents the container from accessing
    // the external network.
    Flags []string `json:"flags,omitempty"`

    // ImageUri: Required. The URI to pull the container image from. Note
    // that all images referenced by actions in the pipeline are pulled
    // before the first action runs. If multiple actions reference the same
    // image, it is only pulled once, ensuring that the same image is used
    // for all actions in a single pipeline. The image URI can be either a
    // complete host and image specification (e.g.,
    // quay.io/biocontainers/samtools), a library and image name (e.g.,
    // google/cloud-sdk) or a bare image name ('bash') to pull from the
    // default library. No schema is required in any of these cases. If the
    // specified image is not public, the service account specified for the
    // Virtual Machine must have access to pull the images from GCR, or
    // appropriate credentials must be specified in the
    // google.genomics.v2alpha1.Action.credentials field.
    ImageUri string `json:"imageUri,omitempty"`

    // Labels: Labels to associate with the action. This field is provided
    // to assist workflow engine authors in identifying actions (for
    // example, to indicate what sort of action they perform, such as
    // localization or debugging). They are returned in the operation
    // metadata, but are otherwise ignored.
    Labels map[string]string `json:"labels,omitempty"`

    // Mounts: A list of mounts to make available to the action. In addition
    // to the values specified here, every action has a special virtual disk
    // mounted under `/google` that contains log files and other operational
    // components. - /google/logs All logs written during the pipeline
    // execution. - /google/logs/output The combined standard output and
    // standard error of all actions run as part of the pipeline execution.
    // - /google/logs/action/*/stdout The complete contents of each
    // individual action's standard output. - /google/logs/action/*/stderr
    // The complete contents of each individual action's standard error
    // output.
    Mounts []*Mount `json:"mounts,omitempty"`

    // Name: An optional name for the container. The container hostname will
    // be set to this name, making it useful for inter-container
    // communication. The name must contain only upper and lowercase
    // alphanumeric characters and hyphens and cannot start with a hyphen.
    Name string `json:"name,omitempty"`

    // PidNamespace: An optional identifier for a PID namespace to run the
    // action inside. Multiple actions should use the same string to share a
    // namespace. If unspecified, a separate isolated namespace is used.
    PidNamespace string `json:"pidNamespace,omitempty"`

    // PortMappings: A map of containers to host port mappings for this
    // container. If the container already specifies exposed ports, use the
    // `PUBLISH_EXPOSED_PORTS` flag instead. The host port number must be
    // less than 65536. If it is zero, an unused random port is assigned. To
    // determine the resulting port number, consult the
    // `ContainerStartedEvent` in the operation metadata.
    PortMappings map[string]int64 `json:"portMappings,omitempty"`

    // Timeout: The maximum amount of time to give the action to complete.
    // If the action fails to complete before the timeout, it will be
    // terminated and the exit status will be non-zero. The pipeline will
    // continue or terminate based on the rules defined by the `ALWAYS_RUN`
    // and `IGNORE_EXIT_STATUS` flags.
    Timeout string `json:"timeout,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Commands") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Commands") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Action) MarshalJSON

func (s *Action) MarshalJSON() ([]byte, error)

type ContainerKilledEvent

ContainerKilledEvent: An event generated when a container is forcibly terminated by the worker. Currently, this only occurs when the container outlives the timeout specified by the user.

type ContainerKilledEvent struct {
    // ActionId: The numeric ID of the action that started the container.
    ActionId int64 `json:"actionId,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ActionId") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ActionId") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*ContainerKilledEvent) MarshalJSON

func (s *ContainerKilledEvent) MarshalJSON() ([]byte, error)

type ContainerStartedEvent

ContainerStartedEvent: An event generated when a container starts.

type ContainerStartedEvent struct {
    // ActionId: The numeric ID of the action that started this container.
    ActionId int64 `json:"actionId,omitempty"`

    // IpAddress: The public IP address that can be used to connect to the
    // container. This field is only populated when at least one port
    // mapping is present. If the instance was created with a private
    // address, this field will be empty even if port mappings exist.
    IpAddress string `json:"ipAddress,omitempty"`

    // PortMappings: The container-to-host port mappings installed for this
    // container. This set will contain any ports exposed using the
    // `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action`
    // definition.
    PortMappings map[string]int64 `json:"portMappings,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ActionId") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ActionId") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*ContainerStartedEvent) MarshalJSON

func (s *ContainerStartedEvent) MarshalJSON() ([]byte, error)

type ContainerStoppedEvent

ContainerStoppedEvent: An event generated when a container exits.

type ContainerStoppedEvent struct {
    // ActionId: The numeric ID of the action that started this container.
    ActionId int64 `json:"actionId,omitempty"`

    // ExitStatus: The exit status of the container.
    ExitStatus int64 `json:"exitStatus,omitempty"`

    // Stderr: The tail end of any content written to standard error by the
    // container. If the content emits large amounts of debugging noise or
    // contains sensitive information, you can prevent the content from
    // being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag.
    // Note that only a small amount of the end of the stream is captured
    // here. The entire stream is stored in the `/google/logs` directory
    // mounted into each action, and can be copied off the machine as
    // described elsewhere.
    Stderr string `json:"stderr,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ActionId") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ActionId") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*ContainerStoppedEvent) MarshalJSON

func (s *ContainerStoppedEvent) MarshalJSON() ([]byte, error)

type DelayedEvent

DelayedEvent: An event generated whenever a resource limitation or transient error delays execution of a pipeline that was otherwise ready to run.

type DelayedEvent struct {
    // Cause: A textual description of the cause of the delay. The string
    // can change without notice because it is often generated by another
    // service (such as Compute Engine).
    Cause string `json:"cause,omitempty"`

    // Metrics: If the delay was caused by a resource shortage, this field
    // lists the Compute Engine metrics that are preventing this operation
    // from running (for example, `CPUS` or `INSTANCES`). If the particular
    // metric is not known, a single `UNKNOWN` metric will be present.
    Metrics []string `json:"metrics,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Cause") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Cause") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*DelayedEvent) MarshalJSON

func (s *DelayedEvent) MarshalJSON() ([]byte, error)

type Disk

Disk: Carries information about a disk that can be attached to a VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations. Specify either `Volume` or `Disk`, but not both.

type Disk struct {
    // Name: A user-supplied name for the disk. Used when mounting the disk
    // into actions. The name must contain only upper and lowercase
    // alphanumeric characters and hyphens and cannot start with a hyphen.
    Name string `json:"name,omitempty"`

    // SizeGb: The size, in GB, of the disk to attach. If the size is not
    // specified, a default is chosen to ensure reasonable I/O performance.
    // If the disk type is specified as `local-ssd`, multiple local drives
    // are automatically combined to provide the requested size. Note,
    // however, that each physical SSD is 375GB in size, and no more than 8
    // drives can be attached to a single instance.
    SizeGb int64 `json:"sizeGb,omitempty"`

    // SourceImage: An optional image to put on the disk before attaching it
    // to the VM.
    SourceImage string `json:"sourceImage,omitempty"`

    // Type: The Compute Engine disk type. If unspecified, `pd-standard` is
    // used.
    Type string `json:"type,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Name") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Name") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Disk) MarshalJSON

func (s *Disk) MarshalJSON() ([]byte, error)

type Event

Event: Carries information about events that occur during pipeline execution.

type Event struct {
    // Description: A human-readable description of the event. Note that
    // these strings can change at any time without notice. Any application
    // logic must use the information in the `details` field.
    Description string `json:"description,omitempty"`

    // Details: Machine-readable details about the event.
    Details googleapi.RawMessage `json:"details,omitempty"`

    // Timestamp: The time at which the event occurred.
    Timestamp string `json:"timestamp,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Description") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Description") to include
    // in API requests with the JSON null value. By default, fields with
    // empty values are omitted from API requests. However, any field with
    // an empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Event) MarshalJSON

func (s *Event) MarshalJSON() ([]byte, error)

type ExistingDisk

ExistingDisk: Configuration for an existing disk to be attached to the VM.

type ExistingDisk struct {
    // Disk: If `disk` contains slashes, the Cloud Life Sciences API assumes
    // that it is a complete URL for the disk. If `disk` does not contain
    // slashes, the Cloud Life Sciences API assumes that the disk is a zonal
    // disk and a URL will be generated of the form `zones//disks/`, where
    // `` is the zone in which the instance is allocated. The disk must be
    // ext4 formatted. If all `Mount` references to this disk have the
    // `read_only` flag set to true, the disk will be attached in
    // `read-only` mode and can be shared with other instances. Otherwise,
    // the disk will be available for writing but cannot be shared.
    Disk string `json:"disk,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Disk") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Disk") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*ExistingDisk) MarshalJSON

func (s *ExistingDisk) MarshalJSON() ([]byte, error)

type FailedEvent

FailedEvent: An event generated when the execution of a pipeline has failed. Note that other events can continue to occur after this event.

type FailedEvent struct {
    // Cause: The human-readable description of the cause of the failure.
    Cause string `json:"cause,omitempty"`

    // Code: The Google standard error code that best describes this
    // failure.
    //
    // Possible values:
    //   "OK" - Not an error; returned on success HTTP Mapping: 200 OK
    //   "CANCELLED" - The operation was cancelled, typically by the caller.
    // HTTP Mapping: 499 Client Closed Request
    //   "UNKNOWN" - Unknown error. For example, this error may be returned
    // when a `Status` value received from another address space belongs to
    // an error space that is not known in this address space. Also errors
    // raised by APIs that do not return enough error information may be
    // converted to this error. HTTP Mapping: 500 Internal Server Error
    //   "INVALID_ARGUMENT" - The client specified an invalid argument. Note
    // that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT`
    // indicates arguments that are problematic regardless of the state of
    // the system (e.g., a malformed file name). HTTP Mapping: 400 Bad
    // Request
    //   "DEADLINE_EXCEEDED" - The deadline expired before the operation
    // could complete. For operations that change the state of the system,
    // this error may be returned even if the operation has completed
    // successfully. For example, a successful response from a server could
    // have been delayed long enough for the deadline to expire. HTTP
    // Mapping: 504 Gateway Timeout
    //   "NOT_FOUND" - Some requested entity (e.g., file or directory) was
    // not found. Note to server developers: if a request is denied for an
    // entire class of users, such as gradual feature rollout or
    // undocumented allowlist, `NOT_FOUND` may be used. If a request is
    // denied for some users within a class of users, such as user-based
    // access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404
    // Not Found
    //   "ALREADY_EXISTS" - The entity that a client attempted to create
    // (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict
    //   "PERMISSION_DENIED" - The caller does not have permission to
    // execute the specified operation. `PERMISSION_DENIED` must not be used
    // for rejections caused by exhausting some resource (use
    // `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED`
    // must not be used if the caller can not be identified (use
    // `UNAUTHENTICATED` instead for those errors). This error code does not
    // imply the request is valid or the requested entity exists or
    // satisfies other pre-conditions. HTTP Mapping: 403 Forbidden
    //   "UNAUTHENTICATED" - The request does not have valid authentication
    // credentials for the operation. HTTP Mapping: 401 Unauthorized
    //   "RESOURCE_EXHAUSTED" - Some resource has been exhausted, perhaps a
    // per-user quota, or perhaps the entire file system is out of space.
    // HTTP Mapping: 429 Too Many Requests
    //   "FAILED_PRECONDITION" - The operation was rejected because the
    // system is not in a state required for the operation's execution. For
    // example, the directory to be deleted is non-empty, an rmdir operation
    // is applied to a non-directory, etc. Service implementors can use the
    // following guidelines to decide between `FAILED_PRECONDITION`,
    // `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can
    // retry just the failing call. (b) Use `ABORTED` if the client should
    // retry at a higher level. For example, when a client-specified
    // test-and-set fails, indicating the client should restart a
    // read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the
    // client should not retry until the system state has been explicitly
    // fixed. For example, if an "rmdir" fails because the directory is
    // non-empty, `FAILED_PRECONDITION` should be returned since the client
    // should not retry unless the files are deleted from the directory.
    // HTTP Mapping: 400 Bad Request
    //   "ABORTED" - The operation was aborted, typically due to a
    // concurrency issue such as a sequencer check failure or transaction
    // abort. See the guidelines above for deciding between
    // `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping:
    // 409 Conflict
    //   "OUT_OF_RANGE" - The operation was attempted past the valid range.
    // E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`,
    // this error indicates a problem that may be fixed if the system state
    // changes. For example, a 32-bit file system will generate
    // `INVALID_ARGUMENT` if asked to read at an offset that is not in the
    // range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to
    // read from an offset past the current file size. There is a fair bit
    // of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We
    // recommend using `OUT_OF_RANGE` (the more specific error) when it
    // applies so that callers who are iterating through a space can easily
    // look for an `OUT_OF_RANGE` error to detect when they are done. HTTP
    // Mapping: 400 Bad Request
    //   "UNIMPLEMENTED" - The operation is not implemented or is not
    // supported/enabled in this service. HTTP Mapping: 501 Not Implemented
    //   "INTERNAL" - Internal errors. This means that some invariants
    // expected by the underlying system have been broken. This error code
    // is reserved for serious errors. HTTP Mapping: 500 Internal Server
    // Error
    //   "UNAVAILABLE" - The service is currently unavailable. This is most
    // likely a transient condition, which can be corrected by retrying with
    // a backoff. Note that it is not always safe to retry non-idempotent
    // operations. See the guidelines above for deciding between
    // `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping:
    // 503 Service Unavailable
    //   "DATA_LOSS" - Unrecoverable data loss or corruption. HTTP Mapping:
    // 500 Internal Server Error
    Code string `json:"code,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Cause") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Cause") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*FailedEvent) MarshalJSON

func (s *FailedEvent) MarshalJSON() ([]byte, error)

type Metadata

Metadata: Carries information about the pipeline execution that is returned in the long running operation's metadata field.

type Metadata struct {
    // CreateTime: The time at which the operation was created by the API.
    CreateTime string `json:"createTime,omitempty"`

    // EndTime: The time at which execution was completed and resources were
    // cleaned up.
    EndTime string `json:"endTime,omitempty"`

    // Events: The list of events that have happened so far during the
    // execution of this operation.
    Events []*Event `json:"events,omitempty"`

    // Labels: The user-defined labels associated with this operation.
    Labels map[string]string `json:"labels,omitempty"`

    // Pipeline: The pipeline this operation represents.
    Pipeline *Pipeline `json:"pipeline,omitempty"`

    // StartTime: The first time at which resources were allocated to
    // execute the pipeline.
    StartTime string `json:"startTime,omitempty"`

    // ForceSendFields is a list of field names (e.g. "CreateTime") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "CreateTime") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Metadata) MarshalJSON

func (s *Metadata) MarshalJSON() ([]byte, error)

type Mount

Mount: Carries information about a particular disk mount inside a container.

type Mount struct {
    // Disk: The name of the disk to mount, as specified in the resources
    // section.
    Disk string `json:"disk,omitempty"`

    // Path: The path to mount the disk inside the container.
    Path string `json:"path,omitempty"`

    // ReadOnly: If true, the disk is mounted read-only inside the
    // container.
    ReadOnly bool `json:"readOnly,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Disk") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Disk") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Mount) MarshalJSON

func (s *Mount) MarshalJSON() ([]byte, error)

type NFSMount

NFSMount: Configuration for an `NFSMount` to be attached to the VM.

type NFSMount struct {
    // Target: A target NFS mount. The target must be specified as
    // `address:/mount".
    Target string `json:"target,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Target") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Target") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*NFSMount) MarshalJSON

func (s *NFSMount) MarshalJSON() ([]byte, error)

type Network

Network: VM networking options.

type Network struct {
    // Name: The network name to attach the VM's network interface to. The
    // value will be prefixed with `global/networks/` unless it contains a
    // `/`, in which case it is assumed to be a fully specified network
    // resource URL. If unspecified, the global default network is used.
    Name string `json:"name,omitempty"`

    // Subnetwork: If the specified network is configured for custom subnet
    // creation, the name of the subnetwork to attach the instance to must
    // be specified here. The value is prefixed with
    // `regions/*/subnetworks/` unless it contains a `/`, in which case it
    // is assumed to be a fully specified subnetwork resource URL. If the
    // `*` character appears in the value, it is replaced with the region
    // that the virtual machine has been allocated in.
    Subnetwork string `json:"subnetwork,omitempty"`

    // UsePrivateAddress: If set to true, do not attach a public IP address
    // to the VM. Note that without a public IP address, additional
    // configuration is required to allow the VM to access Google services.
    // See https://cloud.google.com/vpc/docs/configure-private-google-access
    // for more information.
    UsePrivateAddress bool `json:"usePrivateAddress,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Name") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Name") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Network) MarshalJSON

func (s *Network) MarshalJSON() ([]byte, error)

type PersistentDisk

PersistentDisk: Configuration for a persistent disk to be attached to the VM. See https://cloud.google.com/compute/docs/disks/performance for more information about disk type, size, and performance considerations.

type PersistentDisk struct {
    // SizeGb: The size, in GB, of the disk to attach. If the size is not
    // specified, a default is chosen to ensure reasonable I/O performance.
    // If the disk type is specified as `local-ssd`, multiple local drives
    // are automatically combined to provide the requested size. Note,
    // however, that each physical SSD is 375GB in size, and no more than 8
    // drives can be attached to a single instance.
    SizeGb int64 `json:"sizeGb,omitempty"`

    // SourceImage: An image to put on the disk before attaching it to the
    // VM.
    SourceImage string `json:"sourceImage,omitempty"`

    // Type: The Compute Engine disk type. If unspecified, `pd-standard` is
    // used.
    Type string `json:"type,omitempty"`

    // ForceSendFields is a list of field names (e.g. "SizeGb") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "SizeGb") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*PersistentDisk) MarshalJSON

func (s *PersistentDisk) MarshalJSON() ([]byte, error)

type Pipeline

Pipeline: Specifies a series of actions to execute, expressed as Docker containers.

type Pipeline struct {
    // Actions: The list of actions to execute, in the order they are
    // specified.
    Actions []*Action `json:"actions,omitempty"`

    // EncryptedEnvironment: The encrypted environment to pass into every
    // action. Each action can also specify its own encrypted environment.
    // The secret must decrypt to a JSON-encoded dictionary where key-value
    // pairs serve as environment variable names and their values. The
    // decoded environment variables can overwrite the values specified by
    // the `environment` field.
    EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"`

    // Environment: The environment to pass into every action. Each action
    // can also specify additional environment variables but cannot delete
    // an entry from this map (though they can overwrite it with a different
    // value).
    Environment map[string]string `json:"environment,omitempty"`

    // Resources: The resources required for execution.
    Resources *Resources `json:"resources,omitempty"`

    // Timeout: The maximum amount of time to give the pipeline to complete.
    // This includes the time spent waiting for a worker to be allocated. If
    // the pipeline fails to complete before the timeout, it will be
    // cancelled and the error code will be set to DEADLINE_EXCEEDED. If
    // unspecified, it will default to 7 days.
    Timeout string `json:"timeout,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Actions") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Actions") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Pipeline) MarshalJSON

func (s *Pipeline) MarshalJSON() ([]byte, error)

type PullStartedEvent

PullStartedEvent: An event generated when the worker starts pulling an image.

type PullStartedEvent struct {
    // ImageUri: The URI of the image that was pulled.
    ImageUri string `json:"imageUri,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ImageUri") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ImageUri") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*PullStartedEvent) MarshalJSON

func (s *PullStartedEvent) MarshalJSON() ([]byte, error)

type PullStoppedEvent

PullStoppedEvent: An event generated when the worker stops pulling an image.

type PullStoppedEvent struct {
    // ImageUri: The URI of the image that was pulled.
    ImageUri string `json:"imageUri,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ImageUri") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ImageUri") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*PullStoppedEvent) MarshalJSON

func (s *PullStoppedEvent) MarshalJSON() ([]byte, error)

type Resources

Resources: The system resources for the pipeline run. At least one zone or region must be specified or the pipeline run will fail.

type Resources struct {
    // ProjectId: The project ID to allocate resources in.
    ProjectId string `json:"projectId,omitempty"`

    // Regions: The list of regions allowed for VM allocation. If set, the
    // `zones` field must not be set.
    Regions []string `json:"regions,omitempty"`

    // VirtualMachine: The virtual machine specification.
    VirtualMachine *VirtualMachine `json:"virtualMachine,omitempty"`

    // Zones: The list of zones allowed for VM allocation. If set, the
    // `regions` field must not be set.
    Zones []string `json:"zones,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ProjectId") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ProjectId") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Resources) MarshalJSON

func (s *Resources) MarshalJSON() ([]byte, error)

type RunPipelineResponse

RunPipelineResponse: The response to the RunPipeline method, returned in the operation's result field on success.

type RunPipelineResponse struct {
}

type Secret

Secret: Holds encrypted information that is only decrypted and stored in RAM by the worker VM when running the pipeline.

type Secret struct {
    // CipherText: The value of the cipherText response from the `encrypt`
    // method. This field is intentionally unaudited.
    CipherText string `json:"cipherText,omitempty"`

    // KeyName: The name of the Cloud KMS key that will be used to decrypt
    // the secret value. The VM service account must have the required
    // permissions and authentication scopes to invoke the `decrypt` method
    // on the specified key.
    KeyName string `json:"keyName,omitempty"`

    // ForceSendFields is a list of field names (e.g. "CipherText") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "CipherText") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Secret) MarshalJSON

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

type Service

type Service struct {
    BasePath  string // API endpoint base URL
    UserAgent string // optional additional User-Agent fragment
    // contains filtered or unexported fields
}

func New

func New(client *http.Client) (*Service, error)

New creates a new Service. It uses the provided http.Client for requests.

Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.

func NewService

func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)

NewService creates a new Service.

type ServiceAccount

ServiceAccount: Carries information about a Google Cloud service account.

type ServiceAccount struct {
    // Email: Email address of the service account. If not specified, the
    // default Compute Engine service account for the project will be used.
    Email string `json:"email,omitempty"`

    // Scopes: List of scopes to be enabled for this service account on the
    // VM, in addition to the cloud-platform API scope that will be added by
    // default.
    Scopes []string `json:"scopes,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Email") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Email") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*ServiceAccount) MarshalJSON

func (s *ServiceAccount) MarshalJSON() ([]byte, error)

type UnexpectedExitStatusEvent

UnexpectedExitStatusEvent: An event generated when the execution of a container results in a non-zero exit status that was not otherwise ignored. Execution will continue, but only actions that are flagged as `ALWAYS_RUN` will be executed. Other actions will be skipped.

type UnexpectedExitStatusEvent struct {
    // ActionId: The numeric ID of the action that started the container.
    ActionId int64 `json:"actionId,omitempty"`

    // ExitStatus: The exit status of the container.
    ExitStatus int64 `json:"exitStatus,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ActionId") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ActionId") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*UnexpectedExitStatusEvent) MarshalJSON

func (s *UnexpectedExitStatusEvent) MarshalJSON() ([]byte, error)

type VirtualMachine

VirtualMachine: Carries information about a Compute Engine VM resource.

type VirtualMachine struct {
    // Accelerators: The list of accelerators to attach to the VM.
    Accelerators []*Accelerator `json:"accelerators,omitempty"`

    // BootDiskSizeGb: The size of the boot disk, in GB. The boot disk must
    // be large enough to accommodate all of the Docker images from each
    // action in the pipeline at the same time. If not specified, a small
    // but reasonable default value is used.
    BootDiskSizeGb int64 `json:"bootDiskSizeGb,omitempty"`

    // BootImage: The host operating system image to use. Currently, only
    // Container-Optimized OS images can be used. The default value is
    // `projects/cos-cloud/global/images/family/cos-stable`, which selects
    // the latest stable release of Container-Optimized OS. This option is
    // provided to allow testing against the beta release of the operating
    // system to ensure that the new version does not interact negatively
    // with production pipelines. To test a pipeline against the beta
    // release of Container-Optimized OS, use the value
    // `projects/cos-cloud/global/images/family/cos-beta`.
    BootImage string `json:"bootImage,omitempty"`

    // CpuPlatform: The CPU platform to request. An instance based on a
    // newer platform can be allocated, but never one with fewer
    // capabilities. The value of this parameter must be a valid Compute
    // Engine CPU platform name (such as "Intel Skylake"). This parameter is
    // only useful for carefully optimized work loads where the CPU platform
    // has a significant impact. For more information about the effect of
    // this parameter, see
    // https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
    CpuPlatform string `json:"cpuPlatform,omitempty"`

    // Disks: The list of disks to create and attach to the VM. Specify
    // either the `volumes[]` field or the `disks[]` field, but not both.
    Disks []*Disk `json:"disks,omitempty"`

    // DockerCacheImages: The Compute Engine Disk Images to use as a Docker
    // cache. The disks will be mounted into the Docker folder in a way that
    // the images present in the cache will not need to be pulled. The
    // digests of the cached images must match those of the tags used or the
    // latest version will still be pulled. The root directory of the ext4
    // image must contain `image` and `overlay2` directories copied from the
    // Docker directory of a VM where the desired Docker images have already
    // been pulled. Any images pulled that are not cached will be stored on
    // the first cache disk instead of the boot disk. Only a single image is
    // supported.
    DockerCacheImages []string `json:"dockerCacheImages,omitempty"`

    // EnableStackdriverMonitoring: Whether Stackdriver monitoring should be
    // enabled on the VM.
    EnableStackdriverMonitoring bool `json:"enableStackdriverMonitoring,omitempty"`

    // Labels: Optional set of labels to apply to the VM and any attached
    // disk resources. These labels must adhere to the name and value
    // restrictions
    // (https://cloud.google.com/compute/docs/labeling-resources) on VM
    // labels imposed by Compute Engine. Labels keys with the prefix
    // 'google-' are reserved for use by Google. Labels applied at creation
    // time to the VM. Applied on a best-effort basis to attached disk
    // resources shortly after VM creation.
    Labels map[string]string `json:"labels,omitempty"`

    // MachineType: Required. The machine type of the virtual machine to
    // create. Must be the short name of a standard machine type (such as
    // "n1-standard-1") or a custom machine type (such as "custom-1-4096",
    // where "1" indicates the number of vCPUs and "4096" indicates the
    // memory in MB). See Creating an instance with a custom machine type
    // (https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create)
    // for more specifications on creating a custom machine type.
    MachineType string `json:"machineType,omitempty"`

    // Network: The VM network configuration.
    Network *Network `json:"network,omitempty"`

    // NvidiaDriverVersion: The NVIDIA driver version to use when attaching
    // an NVIDIA GPU accelerator. The version specified here must be
    // compatible with the GPU libraries contained in the container being
    // executed, and must be one of the drivers hosted in the
    // `nvidia-drivers-us-public` bucket on Google Cloud Storage.
    NvidiaDriverVersion string `json:"nvidiaDriverVersion,omitempty"`

    // Preemptible: If true, allocate a preemptible VM.
    Preemptible bool `json:"preemptible,omitempty"`

    // ServiceAccount: The service account to install on the VM. This
    // account does not need any permissions other than those required by
    // the pipeline.
    ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`

    // Volumes: The list of disks and other storage to create or attach to
    // the VM. Specify either the `volumes[]` field or the `disks[]` field,
    // but not both.
    Volumes []*Volume `json:"volumes,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Accelerators") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Accelerators") to include
    // in API requests with the JSON null value. By default, fields with
    // empty values are omitted from API requests. However, any field with
    // an empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*VirtualMachine) MarshalJSON

func (s *VirtualMachine) MarshalJSON() ([]byte, error)

type Volume

Volume: Carries information about storage that can be attached to a VM. Specify either `Volume` or `Disk`, but not both.

type Volume struct {
    // ExistingDisk: Configuration for a existing disk.
    ExistingDisk *ExistingDisk `json:"existingDisk,omitempty"`

    // NfsMount: Configuration for an NFS mount.
    NfsMount *NFSMount `json:"nfsMount,omitempty"`

    // PersistentDisk: Configuration for a persistent disk.
    PersistentDisk *PersistentDisk `json:"persistentDisk,omitempty"`

    // Volume: A user-supplied name for the volume. Used when mounting the
    // volume into `Actions`. The name must contain only upper and lowercase
    // alphanumeric characters and hyphens and cannot start with a hyphen.
    Volume string `json:"volume,omitempty"`

    // ForceSendFields is a list of field names (e.g. "ExistingDisk") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "ExistingDisk") to include
    // in API requests with the JSON null value. By default, fields with
    // empty values are omitted from API requests. However, any field with
    // an empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*Volume) MarshalJSON

func (s *Volume) MarshalJSON() ([]byte, error)

type WorkerAssignedEvent

WorkerAssignedEvent: An event generated after a worker VM has been assigned to run the pipeline.

type WorkerAssignedEvent struct {
    // Instance: The worker's instance name.
    Instance string `json:"instance,omitempty"`

    // MachineType: The machine type that was assigned for the worker.
    MachineType string `json:"machineType,omitempty"`

    // Zone: The zone the worker is running in.
    Zone string `json:"zone,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Instance") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Instance") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*WorkerAssignedEvent) MarshalJSON

func (s *WorkerAssignedEvent) MarshalJSON() ([]byte, error)

type WorkerReleasedEvent

WorkerReleasedEvent: An event generated when the worker VM that was assigned to the pipeline has been released (deleted).

type WorkerReleasedEvent struct {
    // Instance: The worker's instance name.
    Instance string `json:"instance,omitempty"`

    // Zone: The zone the worker was running in.
    Zone string `json:"zone,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Instance") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Instance") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

func (*WorkerReleasedEvent) MarshalJSON

func (s *WorkerReleasedEvent) MarshalJSON() ([]byte, error)