aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto')
-rw-r--r--third_party/googleapis/google/devtools/cloudbuild/v1/cloudbuild.proto579
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;
+}