diff options
Diffstat (limited to 'third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto')
-rw-r--r-- | third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto | 579 |
1 files changed, 579 insertions, 0 deletions
diff --git a/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto b/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto new file mode 100644 index 0000000000..c94458b800 --- /dev/null +++ b/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto @@ -0,0 +1,579 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.devtools.cloudbuild.v1; + +import "google/api/annotations.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/devtools/cloudbuild/v1;cloudbuild"; +option java_multiple_files = true; +option java_package = "com.google.cloudbuild.v1"; +option objc_class_prefix = "GCB"; + + +// Manages container image build requests in the cloud. +// +// The main concept used by this API is a Build, which describes the location of +// the source to build, how to build the source into a container image, and what +// tag to apply to the built image when it is pushed to Google Container +// Registry. +// +// A user can list previously-requested builds or get builds by their ID to +// determine the status of the build. +service CloudBuild { + // Starts a build with the specified configuration. + // + // The long-running Operation returned by this method will include the ID of + // the build, which can be passed to GetBuild to determine its status (e.g., + // success or failure). + rpc CreateBuild(CreateBuildRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { post: "/v1/projects/{project_id}/builds" body: "build" }; + } + + // Returns information about a previously requested build. + // + // The Build that is returned includes its status (e.g., success or failure, + // or in-progress), and timing information. + rpc GetBuild(GetBuildRequest) returns (Build) { + option (google.api.http) = { get: "/v1/projects/{project_id}/builds/{id}" }; + } + + // Lists previously requested builds. + // + // Previously requested builds may still be in-progress, or may have finished + // successfully or unsuccessfully. + rpc ListBuilds(ListBuildsRequest) returns (ListBuildsResponse) { + option (google.api.http) = { get: "/v1/projects/{project_id}/builds" }; + } + + // Cancels a requested build in progress. + rpc CancelBuild(CancelBuildRequest) returns (Build) { + option (google.api.http) = { post: "/v1/projects/{project_id}/builds/{id}:cancel" body: "*" }; + } + + // Creates a new BuildTrigger. + // + // This API is experimental. + rpc CreateBuildTrigger(CreateBuildTriggerRequest) returns (BuildTrigger) { + option (google.api.http) = { post: "/v1/projects/{project_id}/triggers" body: "trigger" }; + } + + // Gets information about a BuildTrigger. + // + // This API is experimental. + rpc GetBuildTrigger(GetBuildTriggerRequest) returns (BuildTrigger) { + option (google.api.http) = { get: "/v1/projects/{project_id}/triggers/{trigger_id}" }; + } + + // Lists existing BuildTrigger. + // + // This API is experimental. + rpc ListBuildTriggers(ListBuildTriggersRequest) returns (ListBuildTriggersResponse) { + option (google.api.http) = { get: "/v1/projects/{project_id}/triggers" }; + } + + // Deletes an BuildTrigger by its project ID and trigger ID. + // + // This API is experimental. + rpc DeleteBuildTrigger(DeleteBuildTriggerRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { delete: "/v1/projects/{project_id}/triggers/{trigger_id}" }; + } + + // Updates an BuildTrigger by its project ID and trigger ID. + // + // This API is experimental. + rpc UpdateBuildTrigger(UpdateBuildTriggerRequest) returns (BuildTrigger) { + option (google.api.http) = { patch: "/v1/projects/{project_id}/triggers/{trigger_id}" body: "trigger" }; + } +} + +// StorageSource describes the location of the source in an archive file in +// Google Cloud Storage. +message StorageSource { + // Google Cloud Storage bucket containing source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1; + + // Google Cloud Storage object containing source. + // + // This object must be a gzipped archive file (.tar.gz) containing source to + // build. + string object = 2; + + // Google Cloud Storage generation for the object. If the generation is + // omitted, the latest generation will be used. + int64 generation = 3; +} + +// RepoSource describes the location of the source in a Google Cloud Source +// Repository. +message RepoSource { + // ID of the project that owns the repo. If omitted, the project ID requesting + // the build is assumed. + string project_id = 1; + + // Name of the repo. If omitted, the name "default" is assumed. + string repo_name = 2; + + // A revision within the source repository must be specified in + // one of these ways. + oneof revision { + // Name of the branch to build. + string branch_name = 3; + + // Name of the tag to build. + string tag_name = 4; + + // Explicit commit SHA to build. + string commit_sha = 5; + } +} + +// Source describes the location of the source in a supported storage +// service. +message Source { + // Describes location of source. + oneof source { + // If provided, get the source from this location in in Google Cloud + // Storage. + StorageSource storage_source = 2; + + // If provided, get source from this location in a Cloud Repo. + RepoSource repo_source = 3; + } +} + +// BuiltImage describes an image built by the pipeline. +message BuiltImage { + // Name used to push the container image to Google Container Registry, as + // presented to `docker push`. + string name = 1; + + // Docker Registry 2.0 digest. + string digest = 3; +} + +// BuildStep describes a step to perform in the build pipeline. +message BuildStep { + // The name of the container image that will run this particular build step. + // + // If the image is already available in the host's Docker daemon's cache, it + // will be run directly. If not, the host will attempt to pull the image + // first, using the builder service account's credentials if necessary. + // + // The Docker daemon's cache will already have the latest versions of all of + // the officially supported build steps + // (https://github.com/GoogleCloudPlatform/cloud-builders). The Docker daemon + // will also have cached many of the layers for some popular images, like + // "ubuntu", "debian", but they will be refreshed at the time you attempt to + // use them. + // + // If you built an image in a previous build step, it will be stored in the + // host's Docker daemon's cache and is available to use as the name for a + // later build step. + string name = 1; + + // A list of environment variable definitions to be used when running a step. + // + // The elements are of the form "KEY=VALUE" for the environment variable "KEY" + // being given the value "VALUE". + repeated string env = 2; + + // A list of arguments that will be presented to the step when it is started. + // + // If the image used to run the step's container has an entrypoint, these args + // will be used as arguments to that entrypoint. If the image does not define + // an entrypoint, the first element in args will be used as the entrypoint, + // and the remainder will be used as arguments. + repeated string args = 3; + + // Working directory (relative to project source root) to use when running + // this operation's container. + string dir = 4; + + // Optional unique identifier for this build step, used in wait_for to + // reference this build step as a dependency. + string id = 5; + + // The ID(s) of the step(s) that this build step depends on. + // This build step will not start until all the build steps in wait_for + // have completed successfully. If wait_for is empty, this build step will + // start when all previous build steps in the Build.Steps list have completed + // successfully. + repeated string wait_for = 6; + + // Optional entrypoint to be used instead of the build step image's default + // If unset, the image's default will be used. + string entrypoint = 7; +} + +// Results describes the artifacts created by the build pipeline. +message Results { + // Images that were built as a part of the build. + repeated BuiltImage images = 2; + + // List of build step digests, in order corresponding to build step indices. + repeated string build_step_images = 3; +} + +// A build resource in the Container Builder API. +// +// At a high level, a Build describes where to find source code, how to build +// it (for example, the builder image to run on the source), and what tag to +// apply to the built image when it is pushed to Google Container Registry. +// +// Fields can include the following variables which will be expanded when the +// build is created: +// +// - $PROJECT_ID: the project ID of the build. +// - $BUILD_ID: the autogenerated ID of the build. +// - $REPO_NAME: the source repository name specified by RepoSource. +// - $BRANCH_NAME: the branch name specified by RepoSource. +// - $TAG_NAME: the tag name specified by RepoSource. +// - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or +// resolved from the specified branch or tag. +message Build { + // Possible status of a build. + enum Status { + // Status of the build is unknown. + STATUS_UNKNOWN = 0; + + // Build is queued; work has not yet begun. + QUEUED = 1; + + // Build is being executed. + WORKING = 2; + + // Build finished successfully. + SUCCESS = 3; + + // Build failed to complete successfully. + FAILURE = 4; + + // Build failed due to an internal cause. + INTERNAL_ERROR = 5; + + // Build took longer than was allowed. + TIMEOUT = 6; + + // Build was canceled by a user. + CANCELLED = 7; + } + + // Unique identifier of the build. + // @OutputOnly + string id = 1; + + // ID of the project. + // @OutputOnly. + string project_id = 16; + + // Status of the build. + // @OutputOnly + Status status = 2; + + // Customer-readable message about the current status. + // @OutputOnly + string status_detail = 24; + + // Describes where to find the source files to build. + Source source = 3; + + // Describes the operations to be performed on the workspace. + repeated BuildStep steps = 11; + + // Results of the build. + // @OutputOnly + Results results = 10; + + // Time at which the request to create the build was received. + // @OutputOnly + google.protobuf.Timestamp create_time = 6; + + // Time at which execution of the build was started. + // @OutputOnly + google.protobuf.Timestamp start_time = 7; + + // Time at which execution of the build was finished. + // + // The difference between finish_time and start_time is the duration of the + // build's execution. + // @OutputOnly + google.protobuf.Timestamp finish_time = 8; + + // Amount of time that this build should be allowed to run, to second + // granularity. If this amount of time elapses, work on the build will cease + // and the build status will be TIMEOUT. + // + // Default time is ten minutes. + google.protobuf.Duration timeout = 12; + + // A list of images to be pushed upon the successful completion of all build + // steps. + // + // The images will be pushed using the builder service account's credentials. + // + // The digests of the pushed images will be stored in the Build resource's + // results field. + // + // If any of the images fail to be pushed, the build is marked FAILURE. + repeated string images = 13; + + // Google Cloud Storage bucket where logs should be written (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + // Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`. + string logs_bucket = 19; + + // A permanent fixed identifier for source. + // @OutputOnly + SourceProvenance source_provenance = 21; + + // The ID of the BuildTrigger that triggered this build, if it was + // triggered automatically. + // @OutputOnly + string build_trigger_id = 22; + + // Special options for this build. + BuildOptions options = 23; + + // URL to logs for this build in Google Cloud Logging. + // @OutputOnly + string log_url = 25; + + // Substitutions data for Build resource. + map<string, string> substitutions = 29; +} + +// Metadata for build operations. +message BuildOperationMetadata { + // The build that the operation is tracking. + Build build = 1; +} + +// Provenance of the source. Ways to find the original source, or verify that +// some source was used for this build. +message SourceProvenance { + // A copy of the build's source.storage_source, if exists, with any + // generations resolved. + StorageSource resolved_storage_source = 3; + + // A copy of the build's source.repo_source, if exists, with any + // revisions resolved. + RepoSource resolved_repo_source = 6; + + // Hash(es) of the build source, which can be used to verify that the original + // source integrity was maintained in the build. Note that FileHashes will + // only be populated if BuildOptions has requested a SourceProvenanceHash. + // + // The keys to this map are file paths used as build source and the values + // contain the hash values for those files. + // + // If the build source came in a single package such as a gzipped tarfile + // (.tar.gz), the FileHash will be for the single path to that file. + // @OutputOnly + map<string, FileHashes> file_hashes = 4; +} + +// Container message for hashes of byte content of files, used in +// SourceProvenance messages to verify integrity of source input to the build. +message FileHashes { + // Collection of file hashes. + repeated Hash file_hash = 1; +} + +// Container message for hash values. +message Hash { + // Specifies the hash algorithm, if any. + enum HashType { + // No hash requested. + NONE = 0; + + // Use a sha256 hash. + SHA256 = 1; + } + + // The type of hash that was performed. + HashType type = 1; + + // The hash value. + bytes value = 2; +} + +// Request to create a new build. +message CreateBuildRequest { + // ID of the project. + string project_id = 1; + + // Build resource to create. + Build build = 2; +} + +// Request to get a build. +message GetBuildRequest { + // ID of the project. + string project_id = 1; + + // ID of the build. + string id = 2; +} + +// Request to list builds. +message ListBuildsRequest { + // ID of the project. + string project_id = 1; + + // Number of results to return in the list. + int32 page_size = 2; + + // Token to provide to skip to a particular spot in the list. + string page_token = 3; + + // The raw filter text to constrain the results. + string filter = 8; +} + +// Response including listed builds. +message ListBuildsResponse { + // Builds will be sorted by create_time, descending. + repeated Build builds = 1; + + // Token to receive the next page of results. + string next_page_token = 2; +} + +// Request to cancel an ongoing build. +message CancelBuildRequest { + // ID of the project. + string project_id = 1; + + // ID of the build. + string id = 2; +} + +// Configuration for an automated build in response to source repository +// changes. +message BuildTrigger { + // Unique identifier of the trigger. + // + // @OutputOnly + string id = 1; + + // Human-readable description of this trigger. + string description = 10; + + // Template describing the types of source changes to trigger a build. + // + // Branch and tag names in trigger templates are interpreted as regular + // expressions. Any branch or tag change that matches that regular expression + // will trigger a build. + RepoSource trigger_template = 7; + + // Template describing the Build request to make when the trigger is matched. + oneof build_template { + // Contents of the build template. + Build build = 4; + + // Path, from the source root, to a file whose contents is used for the + // template. + string filename = 8; + } + + // Time when the trigger was created. + // + // @OutputOnly + google.protobuf.Timestamp create_time = 5; + + // If true, the trigger will never result in a build. + bool disabled = 9; + + // Substitutions data for Build resource. + map<string, string> substitutions = 11; +} + +// Request to create a new BuildTrigger. +message CreateBuildTriggerRequest { + // ID of the project for which to configure automatic builds. + string project_id = 1; + + // BuildTrigger to create. + BuildTrigger trigger = 2; +} + +// Returns the BuildTrigger with the specified ID. +message GetBuildTriggerRequest { + // ID of the project that owns the trigger. + string project_id = 1; + + // ID of the BuildTrigger to get. + string trigger_id = 2; +} + +// Request to list existing BuildTriggers. +message ListBuildTriggersRequest { + // ID of the project for which to list BuildTriggers. + string project_id = 1; +} + +// Response containing existing BuildTriggers. +message ListBuildTriggersResponse { + // BuildTriggers for the project, sorted by create_time descending. + repeated BuildTrigger triggers = 1; +} + +// Request to delete a BuildTrigger. +message DeleteBuildTriggerRequest { + // ID of the project that owns the trigger. + string project_id = 1; + + // ID of the BuildTrigger to delete. + string trigger_id = 2; +} + +// Request to update an existing BuildTrigger. +message UpdateBuildTriggerRequest { + // ID of the project that owns the trigger. + string project_id = 1; + + // ID of the BuildTrigger to update. + string trigger_id = 2; + + // BuildTrigger to update. + BuildTrigger trigger = 3; +} + +// Optional arguments to enable specific features of builds. +message BuildOptions { + // Specifies the manner in which the build should be verified, if at all. + enum VerifyOption { + // Not a verifiable build. (default) + NOT_VERIFIED = 0; + + // Verified build. + VERIFIED = 1; + } + + // Requested hash for SourceProvenance. + repeated Hash.HashType source_provenance_hash = 1; + + // Requested verifiability options. + VerifyOption requested_verify_option = 2; +} |