1 // Copyright 2021 Google LLC. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Code generated file. DO NOT EDIT. 6 7 // Package genomics provides access to the Genomics API. 8 // 9 // For product documentation, see: https://cloud.google.com/genomics 10 // 11 // # Creating a client 12 // 13 // Usage example: 14 // 15 // import "google.golang.org/api/genomics/v1" 16 // ... 17 // ctx := context.Background() 18 // genomicsService, err := genomics.NewService(ctx) 19 // 20 // In this example, Google Application Default Credentials are used for authentication. 21 // 22 // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23 // 24 // # Other authentication options 25 // 26 // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27 // 28 // genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza...")) 29 // 30 // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31 // 32 // config := &oauth2.Config{...} 33 // // ... 34 // token, err := config.Exchange(ctx, ...) 35 // genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36 // 37 // See https://godoc.org/google.golang.org/api/option/ for details on options. 38 package genomics // import "google.golang.org/api/genomics/v1" 39 40 import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57 ) 58 59 // Always reference these packages, just in case the auto-generated code 60 // below doesn't. 61 var _ = bytes.NewBuffer 62 var _ = strconv.Itoa 63 var _ = fmt.Sprintf 64 var _ = json.NewDecoder 65 var _ = io.Copy 66 var _ = url.Parse 67 var _ = gensupport.MarshalJSON 68 var _ = googleapi.Version 69 var _ = errors.New 70 var _ = strings.Replace 71 var _ = context.Canceled 72 var _ = internaloption.WithDefaultEndpoint 73 74 const apiId = "genomics:v1" 75 const apiName = "genomics" 76 const apiVersion = "v1" 77 const basePath = "https://genomics.googleapis.com/" 78 const mtlsBasePath = "https://genomics.mtls.googleapis.com/" 79 80 // NewService creates a new Service. 81 func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 82 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 83 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 84 client, endpoint, err := htransport.NewClient(ctx, opts...) 85 if err != nil { 86 return nil, err 87 } 88 s, err := New(client) 89 if err != nil { 90 return nil, err 91 } 92 if endpoint != "" { 93 s.BasePath = endpoint 94 } 95 return s, nil 96 } 97 98 // New creates a new Service. It uses the provided http.Client for requests. 99 // 100 // Deprecated: please use NewService instead. 101 // To provide a custom HTTP client, use option.WithHTTPClient. 102 // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 103 func New(client *http.Client) (*Service, error) { 104 if client == nil { 105 return nil, errors.New("client is nil") 106 } 107 s := &Service{client: client, BasePath: basePath} 108 return s, nil 109 } 110 111 type Service struct { 112 client *http.Client 113 BasePath string // API endpoint base URL 114 UserAgent string // optional additional User-Agent fragment 115 } 116 117 func (s *Service) userAgent() string { 118 if s.UserAgent == "" { 119 return googleapi.UserAgent 120 } 121 return googleapi.UserAgent + " " + s.UserAgent 122 } 123 124 // Accelerator: Carries information about an accelerator that can be 125 // attached to a VM. 126 type Accelerator struct { 127 // Count: How many accelerators of this type to attach. 128 Count int64 `json:"count,omitempty,string"` 129 130 // Type: The accelerator type string (for example, "nvidia-tesla-k80"). 131 // Only NVIDIA GPU accelerators are currently supported. If an NVIDIA 132 // GPU is attached, the required runtime libraries will be made 133 // available to all containers under `/usr/local/nvidia`. The driver 134 // version to install must be specified using the NVIDIA driver version 135 // parameter on the virtual machine specification. Note that attaching a 136 // GPU increases the worker VM startup time by a few minutes. 137 Type string `json:"type,omitempty"` 138 139 // ForceSendFields is a list of field names (e.g. "Count") to 140 // unconditionally include in API requests. By default, fields with 141 // empty values are omitted from API requests. However, any non-pointer, 142 // non-interface field appearing in ForceSendFields will be sent to the 143 // server regardless of whether the field is empty or not. This may be 144 // used to include empty fields in Patch requests. 145 ForceSendFields []string `json:"-"` 146 147 // NullFields is a list of field names (e.g. "Count") to include in API 148 // requests with the JSON null value. By default, fields with empty 149 // values are omitted from API requests. However, any field with an 150 // empty value appearing in NullFields will be sent to the server as 151 // null. It is an error if a field in this list has a non-empty value. 152 // This may be used to include null fields in Patch requests. 153 NullFields []string `json:"-"` 154 } 155 156 func (s *Accelerator) MarshalJSON() ([]byte, error) { 157 type NoMethod Accelerator 158 raw := NoMethod(*s) 159 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 160 } 161 162 // Action: Specifies a single action that runs a Docker container. 163 type Action struct { 164 // Commands: If specified, overrides the `CMD` specified in the 165 // container. If the container also has an `ENTRYPOINT` the values are 166 // used as entrypoint arguments. Otherwise, they are used as a command 167 // and arguments to run inside the container. 168 Commands []string `json:"commands,omitempty"` 169 170 // Credentials: If the specified image is hosted on a private registry 171 // other than Google Container Registry, the credentials required to 172 // pull the image must be specified here as an encrypted secret. The 173 // secret must decrypt to a JSON-encoded dictionary containing both 174 // `username` and `password` keys. 175 Credentials *Secret `json:"credentials,omitempty"` 176 177 // EncryptedEnvironment: The encrypted environment to pass into the 178 // container. This environment is merged with values specified in the 179 // google.genomics.v2alpha1.Pipeline message, overwriting any duplicate 180 // values. The secret must decrypt to a JSON-encoded dictionary where 181 // key-value pairs serve as environment variable names and their values. 182 // The decoded environment variables can overwrite the values specified 183 // by the `environment` field. 184 EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"` 185 186 // Entrypoint: If specified, overrides the `ENTRYPOINT` specified in the 187 // container. 188 Entrypoint string `json:"entrypoint,omitempty"` 189 190 // Environment: The environment to pass into the container. This 191 // environment is merged with values specified in the 192 // google.genomics.v2alpha1.Pipeline message, overwriting any duplicate 193 // values. In addition to the values passed here, a few other values are 194 // automatically injected into the environment. These cannot be hidden 195 // or overwritten. `GOOGLE_PIPELINE_FAILED` will be set to "1" if the 196 // pipeline failed because an action has exited with a non-zero status 197 // (and did not have the `IGNORE_EXIT_STATUS` flag set). This can be 198 // used to determine if additional debug or logging actions should 199 // execute. `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of 200 // the last non-background action that executed. This can be used by 201 // workflow engine authors to determine whether an individual action has 202 // succeeded or failed. 203 Environment map[string]string `json:"environment,omitempty"` 204 205 // Flags: The set of flags to apply to this action. 206 // 207 // Possible values: 208 // "FLAG_UNSPECIFIED" - Unspecified flag. 209 // "IGNORE_EXIT_STATUS" - Normally, a non-zero exit status causes the 210 // pipeline to fail. This flag allows execution of other actions to 211 // continue instead. 212 // "RUN_IN_BACKGROUND" - This flag allows an action to continue 213 // running in the background while executing subsequent actions. This is 214 // useful to provide services to other actions (or to provide debugging 215 // support tools like SSH servers). 216 // "ALWAYS_RUN" - By default, after an action fails, no further 217 // actions are run. This flag indicates that this action must be run 218 // even if the pipeline has already failed. This is useful for actions 219 // that copy output files off of the VM or for debugging. Note that no 220 // actions will be run if image prefetching fails. 221 // "ENABLE_FUSE" - Enable access to the FUSE device for this action. 222 // Filesystems can then be mounted into disks shared with other actions. 223 // The other actions do not need the `ENABLE_FUSE` flag to access the 224 // mounted filesystem. This has the effect of causing the container to 225 // be executed with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the 226 // container, so use it only for containers you trust. 227 // "PUBLISH_EXPOSED_PORTS" - Exposes all ports specified by `EXPOSE` 228 // statements in the container. To discover the host side port numbers, 229 // consult the `ACTION_STARTED` event in the operation metadata. 230 // "DISABLE_IMAGE_PREFETCH" - All container images are typically 231 // downloaded before any actions are executed. This helps prevent typos 232 // in URIs or issues like lack of disk space from wasting large amounts 233 // of compute resources. If set, this flag prevents the worker from 234 // downloading the image until just before the action is executed. 235 // "DISABLE_STANDARD_ERROR_CAPTURE" - A small portion of the 236 // container's standard error stream is typically captured and returned 237 // inside the `ContainerStoppedEvent`. Setting this flag disables this 238 // functionality. 239 // "BLOCK_EXTERNAL_NETWORK" - Prevents the container from accessing 240 // the external network. 241 Flags []string `json:"flags,omitempty"` 242 243 // ImageUri: Required. The URI to pull the container image from. Note 244 // that all images referenced by actions in the pipeline are pulled 245 // before the first action runs. If multiple actions reference the same 246 // image, it is only pulled once, ensuring that the same image is used 247 // for all actions in a single pipeline. The image URI can be either a 248 // complete host and image specification (e.g., 249 // quay.io/biocontainers/samtools), a library and image name (e.g., 250 // google/cloud-sdk) or a bare image name ('bash') to pull from the 251 // default library. No schema is required in any of these cases. If the 252 // specified image is not public, the service account specified for the 253 // Virtual Machine must have access to pull the images from GCR, or 254 // appropriate credentials must be specified in the 255 // google.genomics.v2alpha1.Action.credentials field. 256 ImageUri string `json:"imageUri,omitempty"` 257 258 // Labels: Labels to associate with the action. This field is provided 259 // to assist workflow engine authors in identifying actions (for 260 // example, to indicate what sort of action they perform, such as 261 // localization or debugging). They are returned in the operation 262 // metadata, but are otherwise ignored. 263 Labels map[string]string `json:"labels,omitempty"` 264 265 // Mounts: A list of mounts to make available to the action. In addition 266 // to the values specified here, every action has a special virtual disk 267 // mounted under `/google` that contains log files and other operational 268 // components. - /google/logs All logs written during the pipeline 269 // execution. - /google/logs/output The combined standard output and 270 // standard error of all actions run as part of the pipeline execution. 271 // - /google/logs/action/*/stdout The complete contents of each 272 // individual action's standard output. - /google/logs/action/*/stderr 273 // The complete contents of each individual action's standard error 274 // output. 275 Mounts []*Mount `json:"mounts,omitempty"` 276 277 // Name: An optional name for the container. The container hostname will 278 // be set to this name, making it useful for inter-container 279 // communication. The name must contain only upper and lowercase 280 // alphanumeric characters and hyphens and cannot start with a hyphen. 281 Name string `json:"name,omitempty"` 282 283 // PidNamespace: An optional identifier for a PID namespace to run the 284 // action inside. Multiple actions should use the same string to share a 285 // namespace. If unspecified, a separate isolated namespace is used. 286 PidNamespace string `json:"pidNamespace,omitempty"` 287 288 // PortMappings: A map of containers to host port mappings for this 289 // container. If the container already specifies exposed ports, use the 290 // `PUBLISH_EXPOSED_PORTS` flag instead. The host port number must be 291 // less than 65536. If it is zero, an unused random port is assigned. To 292 // determine the resulting port number, consult the 293 // `ContainerStartedEvent` in the operation metadata. 294 PortMappings map[string]int64 `json:"portMappings,omitempty"` 295 296 // Timeout: The maximum amount of time to give the action to complete. 297 // If the action fails to complete before the timeout, it will be 298 // terminated and the exit status will be non-zero. The pipeline will 299 // continue or terminate based on the rules defined by the `ALWAYS_RUN` 300 // and `IGNORE_EXIT_STATUS` flags. 301 Timeout string `json:"timeout,omitempty"` 302 303 // ForceSendFields is a list of field names (e.g. "Commands") to 304 // unconditionally include in API requests. By default, fields with 305 // empty values are omitted from API requests. However, any non-pointer, 306 // non-interface field appearing in ForceSendFields will be sent to the 307 // server regardless of whether the field is empty or not. This may be 308 // used to include empty fields in Patch requests. 309 ForceSendFields []string `json:"-"` 310 311 // NullFields is a list of field names (e.g. "Commands") to include in 312 // API requests with the JSON null value. By default, fields with empty 313 // values are omitted from API requests. However, any field with an 314 // empty value appearing in NullFields will be sent to the server as 315 // null. It is an error if a field in this list has a non-empty value. 316 // This may be used to include null fields in Patch requests. 317 NullFields []string `json:"-"` 318 } 319 320 func (s *Action) MarshalJSON() ([]byte, error) { 321 type NoMethod Action 322 raw := NoMethod(*s) 323 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 324 } 325 326 // ContainerKilledEvent: An event generated when a container is forcibly 327 // terminated by the worker. Currently, this only occurs when the 328 // container outlives the timeout specified by the user. 329 type ContainerKilledEvent struct { 330 // ActionId: The numeric ID of the action that started the container. 331 ActionId int64 `json:"actionId,omitempty"` 332 333 // ForceSendFields is a list of field names (e.g. "ActionId") to 334 // unconditionally include in API requests. By default, fields with 335 // empty values are omitted from API requests. However, any non-pointer, 336 // non-interface field appearing in ForceSendFields will be sent to the 337 // server regardless of whether the field is empty or not. This may be 338 // used to include empty fields in Patch requests. 339 ForceSendFields []string `json:"-"` 340 341 // NullFields is a list of field names (e.g. "ActionId") to include in 342 // API requests with the JSON null value. By default, fields with empty 343 // values are omitted from API requests. However, any field with an 344 // empty value appearing in NullFields will be sent to the server as 345 // null. It is an error if a field in this list has a non-empty value. 346 // This may be used to include null fields in Patch requests. 347 NullFields []string `json:"-"` 348 } 349 350 func (s *ContainerKilledEvent) MarshalJSON() ([]byte, error) { 351 type NoMethod ContainerKilledEvent 352 raw := NoMethod(*s) 353 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 354 } 355 356 // ContainerStartedEvent: An event generated when a container starts. 357 type ContainerStartedEvent struct { 358 // ActionId: The numeric ID of the action that started this container. 359 ActionId int64 `json:"actionId,omitempty"` 360 361 // IpAddress: The public IP address that can be used to connect to the 362 // container. This field is only populated when at least one port 363 // mapping is present. If the instance was created with a private 364 // address, this field will be empty even if port mappings exist. 365 IpAddress string `json:"ipAddress,omitempty"` 366 367 // PortMappings: The container-to-host port mappings installed for this 368 // container. This set will contain any ports exposed using the 369 // `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action` 370 // definition. 371 PortMappings map[string]int64 `json:"portMappings,omitempty"` 372 373 // ForceSendFields is a list of field names (e.g. "ActionId") to 374 // unconditionally include in API requests. By default, fields with 375 // empty values are omitted from API requests. However, any non-pointer, 376 // non-interface field appearing in ForceSendFields will be sent to the 377 // server regardless of whether the field is empty or not. This may be 378 // used to include empty fields in Patch requests. 379 ForceSendFields []string `json:"-"` 380 381 // NullFields is a list of field names (e.g. "ActionId") to include in 382 // API requests with the JSON null value. By default, fields with empty 383 // values are omitted from API requests. However, any field with an 384 // empty value appearing in NullFields will be sent to the server as 385 // null. It is an error if a field in this list has a non-empty value. 386 // This may be used to include null fields in Patch requests. 387 NullFields []string `json:"-"` 388 } 389 390 func (s *ContainerStartedEvent) MarshalJSON() ([]byte, error) { 391 type NoMethod ContainerStartedEvent 392 raw := NoMethod(*s) 393 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 394 } 395 396 // ContainerStoppedEvent: An event generated when a container exits. 397 type ContainerStoppedEvent struct { 398 // ActionId: The numeric ID of the action that started this container. 399 ActionId int64 `json:"actionId,omitempty"` 400 401 // ExitStatus: The exit status of the container. 402 ExitStatus int64 `json:"exitStatus,omitempty"` 403 404 // Stderr: The tail end of any content written to standard error by the 405 // container. If the content emits large amounts of debugging noise or 406 // contains sensitive information, you can prevent the content from 407 // being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag. 408 // Note that only a small amount of the end of the stream is captured 409 // here. The entire stream is stored in the `/google/logs` directory 410 // mounted into each action, and can be copied off the machine as 411 // described elsewhere. 412 Stderr string `json:"stderr,omitempty"` 413 414 // ForceSendFields is a list of field names (e.g. "ActionId") to 415 // unconditionally include in API requests. By default, fields with 416 // empty values are omitted from API requests. However, any non-pointer, 417 // non-interface field appearing in ForceSendFields will be sent to the 418 // server regardless of whether the field is empty or not. This may be 419 // used to include empty fields in Patch requests. 420 ForceSendFields []string `json:"-"` 421 422 // NullFields is a list of field names (e.g. "ActionId") to include in 423 // API requests with the JSON null value. By default, fields with empty 424 // values are omitted from API requests. However, any field with an 425 // empty value appearing in NullFields will be sent to the server as 426 // null. It is an error if a field in this list has a non-empty value. 427 // This may be used to include null fields in Patch requests. 428 NullFields []string `json:"-"` 429 } 430 431 func (s *ContainerStoppedEvent) MarshalJSON() ([]byte, error) { 432 type NoMethod ContainerStoppedEvent 433 raw := NoMethod(*s) 434 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 435 } 436 437 // DelayedEvent: An event generated whenever a resource limitation or 438 // transient error delays execution of a pipeline that was otherwise 439 // ready to run. 440 type DelayedEvent struct { 441 // Cause: A textual description of the cause of the delay. The string 442 // can change without notice because it is often generated by another 443 // service (such as Compute Engine). 444 Cause string `json:"cause,omitempty"` 445 446 // Metrics: If the delay was caused by a resource shortage, this field 447 // lists the Compute Engine metrics that are preventing this operation 448 // from running (for example, `CPUS` or `INSTANCES`). If the particular 449 // metric is not known, a single `UNKNOWN` metric will be present. 450 Metrics []string `json:"metrics,omitempty"` 451 452 // ForceSendFields is a list of field names (e.g. "Cause") to 453 // unconditionally include in API requests. By default, fields with 454 // empty values are omitted from API requests. However, any non-pointer, 455 // non-interface field appearing in ForceSendFields will be sent to the 456 // server regardless of whether the field is empty or not. This may be 457 // used to include empty fields in Patch requests. 458 ForceSendFields []string `json:"-"` 459 460 // NullFields is a list of field names (e.g. "Cause") to include in API 461 // requests with the JSON null value. By default, fields with empty 462 // values are omitted from API requests. However, any field with an 463 // empty value appearing in NullFields will be sent to the server as 464 // null. It is an error if a field in this list has a non-empty value. 465 // This may be used to include null fields in Patch requests. 466 NullFields []string `json:"-"` 467 } 468 469 func (s *DelayedEvent) MarshalJSON() ([]byte, error) { 470 type NoMethod DelayedEvent 471 raw := NoMethod(*s) 472 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 473 } 474 475 // Disk: Carries information about a disk that can be attached to a VM. 476 // See https://cloud.google.com/compute/docs/disks/performance for more 477 // information about disk type, size, and performance considerations. 478 // Specify either `Volume` or `Disk`, but not both. 479 type Disk struct { 480 // Name: A user-supplied name for the disk. Used when mounting the disk 481 // into actions. The name must contain only upper and lowercase 482 // alphanumeric characters and hyphens and cannot start with a hyphen. 483 Name string `json:"name,omitempty"` 484 485 // SizeGb: The size, in GB, of the disk to attach. If the size is not 486 // specified, a default is chosen to ensure reasonable I/O performance. 487 // If the disk type is specified as `local-ssd`, multiple local drives 488 // are automatically combined to provide the requested size. Note, 489 // however, that each physical SSD is 375GB in size, and no more than 8 490 // drives can be attached to a single instance. 491 SizeGb int64 `json:"sizeGb,omitempty"` 492 493 // SourceImage: An optional image to put on the disk before attaching it 494 // to the VM. 495 SourceImage string `json:"sourceImage,omitempty"` 496 497 // Type: The Compute Engine disk type. If unspecified, `pd-standard` is 498 // used. 499 Type string `json:"type,omitempty"` 500 501 // ForceSendFields is a list of field names (e.g. "Name") to 502 // unconditionally include in API requests. By default, fields with 503 // empty values are omitted from API requests. However, any non-pointer, 504 // non-interface field appearing in ForceSendFields will be sent to the 505 // server regardless of whether the field is empty or not. This may be 506 // used to include empty fields in Patch requests. 507 ForceSendFields []string `json:"-"` 508 509 // NullFields is a list of field names (e.g. "Name") to include in API 510 // requests with the JSON null value. By default, fields with empty 511 // values are omitted from API requests. However, any field with an 512 // empty value appearing in NullFields will be sent to the server as 513 // null. It is an error if a field in this list has a non-empty value. 514 // This may be used to include null fields in Patch requests. 515 NullFields []string `json:"-"` 516 } 517 518 func (s *Disk) MarshalJSON() ([]byte, error) { 519 type NoMethod Disk 520 raw := NoMethod(*s) 521 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 522 } 523 524 // Event: Carries information about events that occur during pipeline 525 // execution. 526 type Event struct { 527 // Description: A human-readable description of the event. Note that 528 // these strings can change at any time without notice. Any application 529 // logic must use the information in the `details` field. 530 Description string `json:"description,omitempty"` 531 532 // Details: Machine-readable details about the event. 533 Details googleapi.RawMessage `json:"details,omitempty"` 534 535 // Timestamp: The time at which the event occurred. 536 Timestamp string `json:"timestamp,omitempty"` 537 538 // ForceSendFields is a list of field names (e.g. "Description") to 539 // unconditionally include in API requests. By default, fields with 540 // empty values are omitted from API requests. However, any non-pointer, 541 // non-interface field appearing in ForceSendFields will be sent to the 542 // server regardless of whether the field is empty or not. This may be 543 // used to include empty fields in Patch requests. 544 ForceSendFields []string `json:"-"` 545 546 // NullFields is a list of field names (e.g. "Description") to include 547 // in API requests with the JSON null value. By default, fields with 548 // empty values are omitted from API requests. However, any field with 549 // an empty value appearing in NullFields will be sent to the server as 550 // null. It is an error if a field in this list has a non-empty value. 551 // This may be used to include null fields in Patch requests. 552 NullFields []string `json:"-"` 553 } 554 555 func (s *Event) MarshalJSON() ([]byte, error) { 556 type NoMethod Event 557 raw := NoMethod(*s) 558 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 559 } 560 561 // ExistingDisk: Configuration for an existing disk to be attached to 562 // the VM. 563 type ExistingDisk struct { 564 // Disk: If `disk` contains slashes, the Cloud Life Sciences API assumes 565 // that it is a complete URL for the disk. If `disk` does not contain 566 // slashes, the Cloud Life Sciences API assumes that the disk is a zonal 567 // disk and a URL will be generated of the form `zones//disks/`, where 568 // `` is the zone in which the instance is allocated. The disk must be 569 // ext4 formatted. If all `Mount` references to this disk have the 570 // `read_only` flag set to true, the disk will be attached in 571 // `read-only` mode and can be shared with other instances. Otherwise, 572 // the disk will be available for writing but cannot be shared. 573 Disk string `json:"disk,omitempty"` 574 575 // ForceSendFields is a list of field names (e.g. "Disk") to 576 // unconditionally include in API requests. By default, fields with 577 // empty values are omitted from API requests. However, any non-pointer, 578 // non-interface field appearing in ForceSendFields will be sent to the 579 // server regardless of whether the field is empty or not. This may be 580 // used to include empty fields in Patch requests. 581 ForceSendFields []string `json:"-"` 582 583 // NullFields is a list of field names (e.g. "Disk") to include in API 584 // requests with the JSON null value. By default, fields with empty 585 // values are omitted from API requests. However, any field with an 586 // empty value appearing in NullFields will be sent to the server as 587 // null. It is an error if a field in this list has a non-empty value. 588 // This may be used to include null fields in Patch requests. 589 NullFields []string `json:"-"` 590 } 591 592 func (s *ExistingDisk) MarshalJSON() ([]byte, error) { 593 type NoMethod ExistingDisk 594 raw := NoMethod(*s) 595 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 596 } 597 598 // FailedEvent: An event generated when the execution of a pipeline has 599 // failed. Note that other events can continue to occur after this 600 // event. 601 type FailedEvent struct { 602 // Cause: The human-readable description of the cause of the failure. 603 Cause string `json:"cause,omitempty"` 604 605 // Code: The Google standard error code that best describes this 606 // failure. 607 // 608 // Possible values: 609 // "OK" - Not an error; returned on success HTTP Mapping: 200 OK 610 // "CANCELLED" - The operation was cancelled, typically by the caller. 611 // HTTP Mapping: 499 Client Closed Request 612 // "UNKNOWN" - Unknown error. For example, this error may be returned 613 // when a `Status` value received from another address space belongs to 614 // an error space that is not known in this address space. Also errors 615 // raised by APIs that do not return enough error information may be 616 // converted to this error. HTTP Mapping: 500 Internal Server Error 617 // "INVALID_ARGUMENT" - The client specified an invalid argument. Note 618 // that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` 619 // indicates arguments that are problematic regardless of the state of 620 // the system (e.g., a malformed file name). HTTP Mapping: 400 Bad 621 // Request 622 // "DEADLINE_EXCEEDED" - The deadline expired before the operation 623 // could complete. For operations that change the state of the system, 624 // this error may be returned even if the operation has completed 625 // successfully. For example, a successful response from a server could 626 // have been delayed long enough for the deadline to expire. HTTP 627 // Mapping: 504 Gateway Timeout 628 // "NOT_FOUND" - Some requested entity (e.g., file or directory) was 629 // not found. Note to server developers: if a request is denied for an 630 // entire class of users, such as gradual feature rollout or 631 // undocumented allowlist, `NOT_FOUND` may be used. If a request is 632 // denied for some users within a class of users, such as user-based 633 // access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 634 // Not Found 635 // "ALREADY_EXISTS" - The entity that a client attempted to create 636 // (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict 637 // "PERMISSION_DENIED" - The caller does not have permission to 638 // execute the specified operation. `PERMISSION_DENIED` must not be used 639 // for rejections caused by exhausting some resource (use 640 // `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` 641 // must not be used if the caller can not be identified (use 642 // `UNAUTHENTICATED` instead for those errors). This error code does not 643 // imply the request is valid or the requested entity exists or 644 // satisfies other pre-conditions. HTTP Mapping: 403 Forbidden 645 // "UNAUTHENTICATED" - The request does not have valid authentication 646 // credentials for the operation. HTTP Mapping: 401 Unauthorized 647 // "RESOURCE_EXHAUSTED" - Some resource has been exhausted, perhaps a 648 // per-user quota, or perhaps the entire file system is out of space. 649 // HTTP Mapping: 429 Too Many Requests 650 // "FAILED_PRECONDITION" - The operation was rejected because the 651 // system is not in a state required for the operation's execution. For 652 // example, the directory to be deleted is non-empty, an rmdir operation 653 // is applied to a non-directory, etc. Service implementors can use the 654 // following guidelines to decide between `FAILED_PRECONDITION`, 655 // `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can 656 // retry just the failing call. (b) Use `ABORTED` if the client should 657 // retry at a higher level. For example, when a client-specified 658 // test-and-set fails, indicating the client should restart a 659 // read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the 660 // client should not retry until the system state has been explicitly 661 // fixed. For example, if an "rmdir" fails because the directory is 662 // non-empty, `FAILED_PRECONDITION` should be returned since the client 663 // should not retry unless the files are deleted from the directory. 664 // HTTP Mapping: 400 Bad Request 665 // "ABORTED" - The operation was aborted, typically due to a 666 // concurrency issue such as a sequencer check failure or transaction 667 // abort. See the guidelines above for deciding between 668 // `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 669 // 409 Conflict 670 // "OUT_OF_RANGE" - The operation was attempted past the valid range. 671 // E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, 672 // this error indicates a problem that may be fixed if the system state 673 // changes. For example, a 32-bit file system will generate 674 // `INVALID_ARGUMENT` if asked to read at an offset that is not in the 675 // range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to 676 // read from an offset past the current file size. There is a fair bit 677 // of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We 678 // recommend using `OUT_OF_RANGE` (the more specific error) when it 679 // applies so that callers who are iterating through a space can easily 680 // look for an `OUT_OF_RANGE` error to detect when they are done. HTTP 681 // Mapping: 400 Bad Request 682 // "UNIMPLEMENTED" - The operation is not implemented or is not 683 // supported/enabled in this service. HTTP Mapping: 501 Not Implemented 684 // "INTERNAL" - Internal errors. This means that some invariants 685 // expected by the underlying system have been broken. This error code 686 // is reserved for serious errors. HTTP Mapping: 500 Internal Server 687 // Error 688 // "UNAVAILABLE" - The service is currently unavailable. This is most 689 // likely a transient condition, which can be corrected by retrying with 690 // a backoff. Note that it is not always safe to retry non-idempotent 691 // operations. See the guidelines above for deciding between 692 // `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 693 // 503 Service Unavailable 694 // "DATA_LOSS" - Unrecoverable data loss or corruption. HTTP Mapping: 695 // 500 Internal Server Error 696 Code string `json:"code,omitempty"` 697 698 // ForceSendFields is a list of field names (e.g. "Cause") to 699 // unconditionally include in API requests. By default, fields with 700 // empty values are omitted from API requests. However, any non-pointer, 701 // non-interface field appearing in ForceSendFields will be sent to the 702 // server regardless of whether the field is empty or not. This may be 703 // used to include empty fields in Patch requests. 704 ForceSendFields []string `json:"-"` 705 706 // NullFields is a list of field names (e.g. "Cause") to include in API 707 // requests with the JSON null value. By default, fields with empty 708 // values are omitted from API requests. However, any field with an 709 // empty value appearing in NullFields will be sent to the server as 710 // null. It is an error if a field in this list has a non-empty value. 711 // This may be used to include null fields in Patch requests. 712 NullFields []string `json:"-"` 713 } 714 715 func (s *FailedEvent) MarshalJSON() ([]byte, error) { 716 type NoMethod FailedEvent 717 raw := NoMethod(*s) 718 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 719 } 720 721 // Metadata: Carries information about the pipeline execution that is 722 // returned in the long running operation's metadata field. 723 type Metadata struct { 724 // CreateTime: The time at which the operation was created by the API. 725 CreateTime string `json:"createTime,omitempty"` 726 727 // EndTime: The time at which execution was completed and resources were 728 // cleaned up. 729 EndTime string `json:"endTime,omitempty"` 730 731 // Events: The list of events that have happened so far during the 732 // execution of this operation. 733 Events []*Event `json:"events,omitempty"` 734 735 // Labels: The user-defined labels associated with this operation. 736 Labels map[string]string `json:"labels,omitempty"` 737 738 // Pipeline: The pipeline this operation represents. 739 Pipeline *Pipeline `json:"pipeline,omitempty"` 740 741 // StartTime: The first time at which resources were allocated to 742 // execute the pipeline. 743 StartTime string `json:"startTime,omitempty"` 744 745 // ForceSendFields is a list of field names (e.g. "CreateTime") to 746 // unconditionally include in API requests. By default, fields with 747 // empty values are omitted from API requests. However, any non-pointer, 748 // non-interface field appearing in ForceSendFields will be sent to the 749 // server regardless of whether the field is empty or not. This may be 750 // used to include empty fields in Patch requests. 751 ForceSendFields []string `json:"-"` 752 753 // NullFields is a list of field names (e.g. "CreateTime") to include in 754 // API requests with the JSON null value. By default, fields with empty 755 // values are omitted from API requests. However, any field with an 756 // empty value appearing in NullFields will be sent to the server as 757 // null. It is an error if a field in this list has a non-empty value. 758 // This may be used to include null fields in Patch requests. 759 NullFields []string `json:"-"` 760 } 761 762 func (s *Metadata) MarshalJSON() ([]byte, error) { 763 type NoMethod Metadata 764 raw := NoMethod(*s) 765 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 766 } 767 768 // Mount: Carries information about a particular disk mount inside a 769 // container. 770 type Mount struct { 771 // Disk: The name of the disk to mount, as specified in the resources 772 // section. 773 Disk string `json:"disk,omitempty"` 774 775 // Path: The path to mount the disk inside the container. 776 Path string `json:"path,omitempty"` 777 778 // ReadOnly: If true, the disk is mounted read-only inside the 779 // container. 780 ReadOnly bool `json:"readOnly,omitempty"` 781 782 // ForceSendFields is a list of field names (e.g. "Disk") to 783 // unconditionally include in API requests. By default, fields with 784 // empty values are omitted from API requests. However, any non-pointer, 785 // non-interface field appearing in ForceSendFields will be sent to the 786 // server regardless of whether the field is empty or not. This may be 787 // used to include empty fields in Patch requests. 788 ForceSendFields []string `json:"-"` 789 790 // NullFields is a list of field names (e.g. "Disk") to include in API 791 // requests with the JSON null value. By default, fields with empty 792 // values are omitted from API requests. However, any field with an 793 // empty value appearing in NullFields will be sent to the server as 794 // null. It is an error if a field in this list has a non-empty value. 795 // This may be used to include null fields in Patch requests. 796 NullFields []string `json:"-"` 797 } 798 799 func (s *Mount) MarshalJSON() ([]byte, error) { 800 type NoMethod Mount 801 raw := NoMethod(*s) 802 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 803 } 804 805 // NFSMount: Configuration for an `NFSMount` to be attached to the VM. 806 type NFSMount struct { 807 // Target: A target NFS mount. The target must be specified as 808 // `address:/mount". 809 Target string `json:"target,omitempty"` 810 811 // ForceSendFields is a list of field names (e.g. "Target") to 812 // unconditionally include in API requests. By default, fields with 813 // empty values are omitted from API requests. However, any non-pointer, 814 // non-interface field appearing in ForceSendFields will be sent to the 815 // server regardless of whether the field is empty or not. This may be 816 // used to include empty fields in Patch requests. 817 ForceSendFields []string `json:"-"` 818 819 // NullFields is a list of field names (e.g. "Target") to include in API 820 // requests with the JSON null value. By default, fields with empty 821 // values are omitted from API requests. However, any field with an 822 // empty value appearing in NullFields will be sent to the server as 823 // null. It is an error if a field in this list has a non-empty value. 824 // This may be used to include null fields in Patch requests. 825 NullFields []string `json:"-"` 826 } 827 828 func (s *NFSMount) MarshalJSON() ([]byte, error) { 829 type NoMethod NFSMount 830 raw := NoMethod(*s) 831 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 832 } 833 834 // Network: VM networking options. 835 type Network struct { 836 // Name: The network name to attach the VM's network interface to. The 837 // value will be prefixed with `global/networks/` unless it contains a 838 // `/`, in which case it is assumed to be a fully specified network 839 // resource URL. If unspecified, the global default network is used. 840 Name string `json:"name,omitempty"` 841 842 // Subnetwork: If the specified network is configured for custom subnet 843 // creation, the name of the subnetwork to attach the instance to must 844 // be specified here. The value is prefixed with 845 // `regions/*/subnetworks/` unless it contains a `/`, in which case it 846 // is assumed to be a fully specified subnetwork resource URL. If the 847 // `*` character appears in the value, it is replaced with the region 848 // that the virtual machine has been allocated in. 849 Subnetwork string `json:"subnetwork,omitempty"` 850 851 // UsePrivateAddress: If set to true, do not attach a public IP address 852 // to the VM. Note that without a public IP address, additional 853 // configuration is required to allow the VM to access Google services. 854 // See https://cloud.google.com/vpc/docs/configure-private-google-access 855 // for more information. 856 UsePrivateAddress bool `json:"usePrivateAddress,omitempty"` 857 858 // ForceSendFields is a list of field names (e.g. "Name") to 859 // unconditionally include in API requests. By default, fields with 860 // empty values are omitted from API requests. However, any non-pointer, 861 // non-interface field appearing in ForceSendFields will be sent to the 862 // server regardless of whether the field is empty or not. This may be 863 // used to include empty fields in Patch requests. 864 ForceSendFields []string `json:"-"` 865 866 // NullFields is a list of field names (e.g. "Name") to include in API 867 // requests with the JSON null value. By default, fields with empty 868 // values are omitted from API requests. However, any field with an 869 // empty value appearing in NullFields will be sent to the server as 870 // null. It is an error if a field in this list has a non-empty value. 871 // This may be used to include null fields in Patch requests. 872 NullFields []string `json:"-"` 873 } 874 875 func (s *Network) MarshalJSON() ([]byte, error) { 876 type NoMethod Network 877 raw := NoMethod(*s) 878 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 879 } 880 881 // PersistentDisk: Configuration for a persistent disk to be attached to 882 // the VM. See https://cloud.google.com/compute/docs/disks/performance 883 // for more information about disk type, size, and performance 884 // considerations. 885 type PersistentDisk struct { 886 // SizeGb: The size, in GB, of the disk to attach. If the size is not 887 // specified, a default is chosen to ensure reasonable I/O performance. 888 // If the disk type is specified as `local-ssd`, multiple local drives 889 // are automatically combined to provide the requested size. Note, 890 // however, that each physical SSD is 375GB in size, and no more than 8 891 // drives can be attached to a single instance. 892 SizeGb int64 `json:"sizeGb,omitempty"` 893 894 // SourceImage: An image to put on the disk before attaching it to the 895 // VM. 896 SourceImage string `json:"sourceImage,omitempty"` 897 898 // Type: The Compute Engine disk type. If unspecified, `pd-standard` is 899 // used. 900 Type string `json:"type,omitempty"` 901 902 // ForceSendFields is a list of field names (e.g. "SizeGb") to 903 // unconditionally include in API requests. By default, fields with 904 // empty values are omitted from API requests. However, any non-pointer, 905 // non-interface field appearing in ForceSendFields will be sent to the 906 // server regardless of whether the field is empty or not. This may be 907 // used to include empty fields in Patch requests. 908 ForceSendFields []string `json:"-"` 909 910 // NullFields is a list of field names (e.g. "SizeGb") to include in API 911 // requests with the JSON null value. By default, fields with empty 912 // values are omitted from API requests. However, any field with an 913 // empty value appearing in NullFields will be sent to the server as 914 // null. It is an error if a field in this list has a non-empty value. 915 // This may be used to include null fields in Patch requests. 916 NullFields []string `json:"-"` 917 } 918 919 func (s *PersistentDisk) MarshalJSON() ([]byte, error) { 920 type NoMethod PersistentDisk 921 raw := NoMethod(*s) 922 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 923 } 924 925 // Pipeline: Specifies a series of actions to execute, expressed as 926 // Docker containers. 927 type Pipeline struct { 928 // Actions: The list of actions to execute, in the order they are 929 // specified. 930 Actions []*Action `json:"actions,omitempty"` 931 932 // EncryptedEnvironment: The encrypted environment to pass into every 933 // action. Each action can also specify its own encrypted environment. 934 // The secret must decrypt to a JSON-encoded dictionary where key-value 935 // pairs serve as environment variable names and their values. The 936 // decoded environment variables can overwrite the values specified by 937 // the `environment` field. 938 EncryptedEnvironment *Secret `json:"encryptedEnvironment,omitempty"` 939 940 // Environment: The environment to pass into every action. Each action 941 // can also specify additional environment variables but cannot delete 942 // an entry from this map (though they can overwrite it with a different 943 // value). 944 Environment map[string]string `json:"environment,omitempty"` 945 946 // Resources: The resources required for execution. 947 Resources *Resources `json:"resources,omitempty"` 948 949 // Timeout: The maximum amount of time to give the pipeline to complete. 950 // This includes the time spent waiting for a worker to be allocated. If 951 // the pipeline fails to complete before the timeout, it will be 952 // cancelled and the error code will be set to DEADLINE_EXCEEDED. If 953 // unspecified, it will default to 7 days. 954 Timeout string `json:"timeout,omitempty"` 955 956 // ForceSendFields is a list of field names (e.g. "Actions") to 957 // unconditionally include in API requests. By default, fields with 958 // empty values are omitted from API requests. However, any non-pointer, 959 // non-interface field appearing in ForceSendFields will be sent to the 960 // server regardless of whether the field is empty or not. This may be 961 // used to include empty fields in Patch requests. 962 ForceSendFields []string `json:"-"` 963 964 // NullFields is a list of field names (e.g. "Actions") to include in 965 // API requests with the JSON null value. By default, fields with empty 966 // values are omitted from API requests. However, any field with an 967 // empty value appearing in NullFields will be sent to the server as 968 // null. It is an error if a field in this list has a non-empty value. 969 // This may be used to include null fields in Patch requests. 970 NullFields []string `json:"-"` 971 } 972 973 func (s *Pipeline) MarshalJSON() ([]byte, error) { 974 type NoMethod Pipeline 975 raw := NoMethod(*s) 976 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 977 } 978 979 // PullStartedEvent: An event generated when the worker starts pulling 980 // an image. 981 type PullStartedEvent struct { 982 // ImageUri: The URI of the image that was pulled. 983 ImageUri string `json:"imageUri,omitempty"` 984 985 // ForceSendFields is a list of field names (e.g. "ImageUri") to 986 // unconditionally include in API requests. By default, fields with 987 // empty values are omitted from API requests. However, any non-pointer, 988 // non-interface field appearing in ForceSendFields will be sent to the 989 // server regardless of whether the field is empty or not. This may be 990 // used to include empty fields in Patch requests. 991 ForceSendFields []string `json:"-"` 992 993 // NullFields is a list of field names (e.g. "ImageUri") to include in 994 // API requests with the JSON null value. By default, fields with empty 995 // values are omitted from API requests. However, any field with an 996 // empty value appearing in NullFields will be sent to the server as 997 // null. It is an error if a field in this list has a non-empty value. 998 // This may be used to include null fields in Patch requests. 999 NullFields []string `json:"-"` 1000 } 1001 1002 func (s *PullStartedEvent) MarshalJSON() ([]byte, error) { 1003 type NoMethod PullStartedEvent 1004 raw := NoMethod(*s) 1005 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1006 } 1007 1008 // PullStoppedEvent: An event generated when the worker stops pulling an 1009 // image. 1010 type PullStoppedEvent struct { 1011 // ImageUri: The URI of the image that was pulled. 1012 ImageUri string `json:"imageUri,omitempty"` 1013 1014 // ForceSendFields is a list of field names (e.g. "ImageUri") to 1015 // unconditionally include in API requests. By default, fields with 1016 // empty values are omitted from API requests. However, any non-pointer, 1017 // non-interface field appearing in ForceSendFields will be sent to the 1018 // server regardless of whether the field is empty or not. This may be 1019 // used to include empty fields in Patch requests. 1020 ForceSendFields []string `json:"-"` 1021 1022 // NullFields is a list of field names (e.g. "ImageUri") to include in 1023 // API requests with the JSON null value. By default, fields with empty 1024 // values are omitted from API requests. However, any field with an 1025 // empty value appearing in NullFields will be sent to the server as 1026 // null. It is an error if a field in this list has a non-empty value. 1027 // This may be used to include null fields in Patch requests. 1028 NullFields []string `json:"-"` 1029 } 1030 1031 func (s *PullStoppedEvent) MarshalJSON() ([]byte, error) { 1032 type NoMethod PullStoppedEvent 1033 raw := NoMethod(*s) 1034 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1035 } 1036 1037 // Resources: The system resources for the pipeline run. At least one 1038 // zone or region must be specified or the pipeline run will fail. 1039 type Resources struct { 1040 // ProjectId: The project ID to allocate resources in. 1041 ProjectId string `json:"projectId,omitempty"` 1042 1043 // Regions: The list of regions allowed for VM allocation. If set, the 1044 // `zones` field must not be set. 1045 Regions []string `json:"regions,omitempty"` 1046 1047 // VirtualMachine: The virtual machine specification. 1048 VirtualMachine *VirtualMachine `json:"virtualMachine,omitempty"` 1049 1050 // Zones: The list of zones allowed for VM allocation. If set, the 1051 // `regions` field must not be set. 1052 Zones []string `json:"zones,omitempty"` 1053 1054 // ForceSendFields is a list of field names (e.g. "ProjectId") to 1055 // unconditionally include in API requests. By default, fields with 1056 // empty values are omitted from API requests. However, any non-pointer, 1057 // non-interface field appearing in ForceSendFields will be sent to the 1058 // server regardless of whether the field is empty or not. This may be 1059 // used to include empty fields in Patch requests. 1060 ForceSendFields []string `json:"-"` 1061 1062 // NullFields is a list of field names (e.g. "ProjectId") to include in 1063 // API requests with the JSON null value. By default, fields with empty 1064 // values are omitted from API requests. However, any field with an 1065 // empty value appearing in NullFields will be sent to the server as 1066 // null. It is an error if a field in this list has a non-empty value. 1067 // This may be used to include null fields in Patch requests. 1068 NullFields []string `json:"-"` 1069 } 1070 1071 func (s *Resources) MarshalJSON() ([]byte, error) { 1072 type NoMethod Resources 1073 raw := NoMethod(*s) 1074 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1075 } 1076 1077 // RunPipelineResponse: The response to the RunPipeline method, returned 1078 // in the operation's result field on success. 1079 type RunPipelineResponse struct { 1080 } 1081 1082 // Secret: Holds encrypted information that is only decrypted and stored 1083 // in RAM by the worker VM when running the pipeline. 1084 type Secret struct { 1085 // CipherText: The value of the cipherText response from the `encrypt` 1086 // method. This field is intentionally unaudited. 1087 CipherText string `json:"cipherText,omitempty"` 1088 1089 // KeyName: The name of the Cloud KMS key that will be used to decrypt 1090 // the secret value. The VM service account must have the required 1091 // permissions and authentication scopes to invoke the `decrypt` method 1092 // on the specified key. 1093 KeyName string `json:"keyName,omitempty"` 1094 1095 // ForceSendFields is a list of field names (e.g. "CipherText") to 1096 // unconditionally include in API requests. By default, fields with 1097 // empty values are omitted from API requests. However, any non-pointer, 1098 // non-interface field appearing in ForceSendFields will be sent to the 1099 // server regardless of whether the field is empty or not. This may be 1100 // used to include empty fields in Patch requests. 1101 ForceSendFields []string `json:"-"` 1102 1103 // NullFields is a list of field names (e.g. "CipherText") to include in 1104 // API requests with the JSON null value. By default, fields with empty 1105 // values are omitted from API requests. However, any field with an 1106 // empty value appearing in NullFields will be sent to the server as 1107 // null. It is an error if a field in this list has a non-empty value. 1108 // This may be used to include null fields in Patch requests. 1109 NullFields []string `json:"-"` 1110 } 1111 1112 func (s *Secret) MarshalJSON() ([]byte, error) { 1113 type NoMethod Secret 1114 raw := NoMethod(*s) 1115 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1116 } 1117 1118 // ServiceAccount: Carries information about a Google Cloud service 1119 // account. 1120 type ServiceAccount struct { 1121 // Email: Email address of the service account. If not specified, the 1122 // default Compute Engine service account for the project will be used. 1123 Email string `json:"email,omitempty"` 1124 1125 // Scopes: List of scopes to be enabled for this service account on the 1126 // VM, in addition to the cloud-platform API scope that will be added by 1127 // default. 1128 Scopes []string `json:"scopes,omitempty"` 1129 1130 // ForceSendFields is a list of field names (e.g. "Email") to 1131 // unconditionally include in API requests. By default, fields with 1132 // empty values are omitted from API requests. However, any non-pointer, 1133 // non-interface field appearing in ForceSendFields will be sent to the 1134 // server regardless of whether the field is empty or not. This may be 1135 // used to include empty fields in Patch requests. 1136 ForceSendFields []string `json:"-"` 1137 1138 // NullFields is a list of field names (e.g. "Email") to include in API 1139 // requests with the JSON null value. By default, fields with empty 1140 // values are omitted from API requests. However, any field with an 1141 // empty value appearing in NullFields will be sent to the server as 1142 // null. It is an error if a field in this list has a non-empty value. 1143 // This may be used to include null fields in Patch requests. 1144 NullFields []string `json:"-"` 1145 } 1146 1147 func (s *ServiceAccount) MarshalJSON() ([]byte, error) { 1148 type NoMethod ServiceAccount 1149 raw := NoMethod(*s) 1150 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1151 } 1152 1153 // UnexpectedExitStatusEvent: An event generated when the execution of a 1154 // container results in a non-zero exit status that was not otherwise 1155 // ignored. Execution will continue, but only actions that are flagged 1156 // as `ALWAYS_RUN` will be executed. Other actions will be skipped. 1157 type UnexpectedExitStatusEvent struct { 1158 // ActionId: The numeric ID of the action that started the container. 1159 ActionId int64 `json:"actionId,omitempty"` 1160 1161 // ExitStatus: The exit status of the container. 1162 ExitStatus int64 `json:"exitStatus,omitempty"` 1163 1164 // ForceSendFields is a list of field names (e.g. "ActionId") to 1165 // unconditionally include in API requests. By default, fields with 1166 // empty values are omitted from API requests. However, any non-pointer, 1167 // non-interface field appearing in ForceSendFields will be sent to the 1168 // server regardless of whether the field is empty or not. This may be 1169 // used to include empty fields in Patch requests. 1170 ForceSendFields []string `json:"-"` 1171 1172 // NullFields is a list of field names (e.g. "ActionId") to include in 1173 // API requests with the JSON null value. By default, fields with empty 1174 // values are omitted from API requests. However, any field with an 1175 // empty value appearing in NullFields will be sent to the server as 1176 // null. It is an error if a field in this list has a non-empty value. 1177 // This may be used to include null fields in Patch requests. 1178 NullFields []string `json:"-"` 1179 } 1180 1181 func (s *UnexpectedExitStatusEvent) MarshalJSON() ([]byte, error) { 1182 type NoMethod UnexpectedExitStatusEvent 1183 raw := NoMethod(*s) 1184 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1185 } 1186 1187 // VirtualMachine: Carries information about a Compute Engine VM 1188 // resource. 1189 type VirtualMachine struct { 1190 // Accelerators: The list of accelerators to attach to the VM. 1191 Accelerators []*Accelerator `json:"accelerators,omitempty"` 1192 1193 // BootDiskSizeGb: The size of the boot disk, in GB. The boot disk must 1194 // be large enough to accommodate all of the Docker images from each 1195 // action in the pipeline at the same time. If not specified, a small 1196 // but reasonable default value is used. 1197 BootDiskSizeGb int64 `json:"bootDiskSizeGb,omitempty"` 1198 1199 // BootImage: The host operating system image to use. Currently, only 1200 // Container-Optimized OS images can be used. The default value is 1201 // `projects/cos-cloud/global/images/family/cos-stable`, which selects 1202 // the latest stable release of Container-Optimized OS. This option is 1203 // provided to allow testing against the beta release of the operating 1204 // system to ensure that the new version does not interact negatively 1205 // with production pipelines. To test a pipeline against the beta 1206 // release of Container-Optimized OS, use the value 1207 // `projects/cos-cloud/global/images/family/cos-beta`. 1208 BootImage string `json:"bootImage,omitempty"` 1209 1210 // CpuPlatform: The CPU platform to request. An instance based on a 1211 // newer platform can be allocated, but never one with fewer 1212 // capabilities. The value of this parameter must be a valid Compute 1213 // Engine CPU platform name (such as "Intel Skylake"). This parameter is 1214 // only useful for carefully optimized work loads where the CPU platform 1215 // has a significant impact. For more information about the effect of 1216 // this parameter, see 1217 // https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform. 1218 CpuPlatform string `json:"cpuPlatform,omitempty"` 1219 1220 // Disks: The list of disks to create and attach to the VM. Specify 1221 // either the `volumes[]` field or the `disks[]` field, but not both. 1222 Disks []*Disk `json:"disks,omitempty"` 1223 1224 // DockerCacheImages: The Compute Engine Disk Images to use as a Docker 1225 // cache. The disks will be mounted into the Docker folder in a way that 1226 // the images present in the cache will not need to be pulled. The 1227 // digests of the cached images must match those of the tags used or the 1228 // latest version will still be pulled. The root directory of the ext4 1229 // image must contain `image` and `overlay2` directories copied from the 1230 // Docker directory of a VM where the desired Docker images have already 1231 // been pulled. Any images pulled that are not cached will be stored on 1232 // the first cache disk instead of the boot disk. Only a single image is 1233 // supported. 1234 DockerCacheImages []string `json:"dockerCacheImages,omitempty"` 1235 1236 // EnableStackdriverMonitoring: Whether Stackdriver monitoring should be 1237 // enabled on the VM. 1238 EnableStackdriverMonitoring bool `json:"enableStackdriverMonitoring,omitempty"` 1239 1240 // Labels: Optional set of labels to apply to the VM and any attached 1241 // disk resources. These labels must adhere to the name and value 1242 // restrictions 1243 // (https://cloud.google.com/compute/docs/labeling-resources) on VM 1244 // labels imposed by Compute Engine. Labels keys with the prefix 1245 // 'google-' are reserved for use by Google. Labels applied at creation 1246 // time to the VM. Applied on a best-effort basis to attached disk 1247 // resources shortly after VM creation. 1248 Labels map[string]string `json:"labels,omitempty"` 1249 1250 // MachineType: Required. The machine type of the virtual machine to 1251 // create. Must be the short name of a standard machine type (such as 1252 // "n1-standard-1") or a custom machine type (such as "custom-1-4096", 1253 // where "1" indicates the number of vCPUs and "4096" indicates the 1254 // memory in MB). See Creating an instance with a custom machine type 1255 // (https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#create) 1256 // for more specifications on creating a custom machine type. 1257 MachineType string `json:"machineType,omitempty"` 1258 1259 // Network: The VM network configuration. 1260 Network *Network `json:"network,omitempty"` 1261 1262 // NvidiaDriverVersion: The NVIDIA driver version to use when attaching 1263 // an NVIDIA GPU accelerator. The version specified here must be 1264 // compatible with the GPU libraries contained in the container being 1265 // executed, and must be one of the drivers hosted in the 1266 // `nvidia-drivers-us-public` bucket on Google Cloud Storage. 1267 NvidiaDriverVersion string `json:"nvidiaDriverVersion,omitempty"` 1268 1269 // Preemptible: If true, allocate a preemptible VM. 1270 Preemptible bool `json:"preemptible,omitempty"` 1271 1272 // ServiceAccount: The service account to install on the VM. This 1273 // account does not need any permissions other than those required by 1274 // the pipeline. 1275 ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"` 1276 1277 // Volumes: The list of disks and other storage to create or attach to 1278 // the VM. Specify either the `volumes[]` field or the `disks[]` field, 1279 // but not both. 1280 Volumes []*Volume `json:"volumes,omitempty"` 1281 1282 // ForceSendFields is a list of field names (e.g. "Accelerators") to 1283 // unconditionally include in API requests. By default, fields with 1284 // empty values are omitted from API requests. However, any non-pointer, 1285 // non-interface field appearing in ForceSendFields will be sent to the 1286 // server regardless of whether the field is empty or not. This may be 1287 // used to include empty fields in Patch requests. 1288 ForceSendFields []string `json:"-"` 1289 1290 // NullFields is a list of field names (e.g. "Accelerators") to include 1291 // in API requests with the JSON null value. By default, fields with 1292 // empty values are omitted from API requests. However, any field with 1293 // an empty value appearing in NullFields will be sent to the server as 1294 // null. It is an error if a field in this list has a non-empty value. 1295 // This may be used to include null fields in Patch requests. 1296 NullFields []string `json:"-"` 1297 } 1298 1299 func (s *VirtualMachine) MarshalJSON() ([]byte, error) { 1300 type NoMethod VirtualMachine 1301 raw := NoMethod(*s) 1302 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1303 } 1304 1305 // Volume: Carries information about storage that can be attached to a 1306 // VM. Specify either `Volume` or `Disk`, but not both. 1307 type Volume struct { 1308 // ExistingDisk: Configuration for a existing disk. 1309 ExistingDisk *ExistingDisk `json:"existingDisk,omitempty"` 1310 1311 // NfsMount: Configuration for an NFS mount. 1312 NfsMount *NFSMount `json:"nfsMount,omitempty"` 1313 1314 // PersistentDisk: Configuration for a persistent disk. 1315 PersistentDisk *PersistentDisk `json:"persistentDisk,omitempty"` 1316 1317 // Volume: A user-supplied name for the volume. Used when mounting the 1318 // volume into `Actions`. The name must contain only upper and lowercase 1319 // alphanumeric characters and hyphens and cannot start with a hyphen. 1320 Volume string `json:"volume,omitempty"` 1321 1322 // ForceSendFields is a list of field names (e.g. "ExistingDisk") to 1323 // unconditionally include in API requests. By default, fields with 1324 // empty values are omitted from API requests. However, any non-pointer, 1325 // non-interface field appearing in ForceSendFields will be sent to the 1326 // server regardless of whether the field is empty or not. This may be 1327 // used to include empty fields in Patch requests. 1328 ForceSendFields []string `json:"-"` 1329 1330 // NullFields is a list of field names (e.g. "ExistingDisk") to include 1331 // in API requests with the JSON null value. By default, fields with 1332 // empty values are omitted from API requests. However, any field with 1333 // an empty value appearing in NullFields will be sent to the server as 1334 // null. It is an error if a field in this list has a non-empty value. 1335 // This may be used to include null fields in Patch requests. 1336 NullFields []string `json:"-"` 1337 } 1338 1339 func (s *Volume) MarshalJSON() ([]byte, error) { 1340 type NoMethod Volume 1341 raw := NoMethod(*s) 1342 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1343 } 1344 1345 // WorkerAssignedEvent: An event generated after a worker VM has been 1346 // assigned to run the pipeline. 1347 type WorkerAssignedEvent struct { 1348 // Instance: The worker's instance name. 1349 Instance string `json:"instance,omitempty"` 1350 1351 // MachineType: The machine type that was assigned for the worker. 1352 MachineType string `json:"machineType,omitempty"` 1353 1354 // Zone: The zone the worker is running in. 1355 Zone string `json:"zone,omitempty"` 1356 1357 // ForceSendFields is a list of field names (e.g. "Instance") to 1358 // unconditionally include in API requests. By default, fields with 1359 // empty values are omitted from API requests. However, any non-pointer, 1360 // non-interface field appearing in ForceSendFields will be sent to the 1361 // server regardless of whether the field is empty or not. This may be 1362 // used to include empty fields in Patch requests. 1363 ForceSendFields []string `json:"-"` 1364 1365 // NullFields is a list of field names (e.g. "Instance") to include in 1366 // API requests with the JSON null value. By default, fields with empty 1367 // values are omitted from API requests. However, any field with an 1368 // empty value appearing in NullFields will be sent to the server as 1369 // null. It is an error if a field in this list has a non-empty value. 1370 // This may be used to include null fields in Patch requests. 1371 NullFields []string `json:"-"` 1372 } 1373 1374 func (s *WorkerAssignedEvent) MarshalJSON() ([]byte, error) { 1375 type NoMethod WorkerAssignedEvent 1376 raw := NoMethod(*s) 1377 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1378 } 1379 1380 // WorkerReleasedEvent: An event generated when the worker VM that was 1381 // assigned to the pipeline has been released (deleted). 1382 type WorkerReleasedEvent struct { 1383 // Instance: The worker's instance name. 1384 Instance string `json:"instance,omitempty"` 1385 1386 // Zone: The zone the worker was running in. 1387 Zone string `json:"zone,omitempty"` 1388 1389 // ForceSendFields is a list of field names (e.g. "Instance") to 1390 // unconditionally include in API requests. By default, fields with 1391 // empty values are omitted from API requests. However, any non-pointer, 1392 // non-interface field appearing in ForceSendFields will be sent to the 1393 // server regardless of whether the field is empty or not. This may be 1394 // used to include empty fields in Patch requests. 1395 ForceSendFields []string `json:"-"` 1396 1397 // NullFields is a list of field names (e.g. "Instance") to include in 1398 // API requests with the JSON null value. By default, fields with empty 1399 // values are omitted from API requests. However, any field with an 1400 // empty value appearing in NullFields will be sent to the server as 1401 // null. It is an error if a field in this list has a non-empty value. 1402 // This may be used to include null fields in Patch requests. 1403 NullFields []string `json:"-"` 1404 } 1405 1406 func (s *WorkerReleasedEvent) MarshalJSON() ([]byte, error) { 1407 type NoMethod WorkerReleasedEvent 1408 raw := NoMethod(*s) 1409 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1410 } 1411