From ac45553322b1e54064ba077def1e4b10d0bdbe8e Mon Sep 17 00:00:00 2001 From: unmultimedio <4431392+unmultimedio@users.noreply.github.com> Date: Thu, 27 Nov 2025 20:18:03 +0000 Subject: [PATCH] Detected new managed modules references --- ...6740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 | 162 ++++++ ...d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 | 491 ++++++++++++++++ ...7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c | 67 +++ ...df8f65a6011b6f03bc73f8b6ed789eef2730dce865 | 20 + ...7beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf | 218 +++++++ ...87ee145189e089731296434334f80e972e750ca2a4 | 451 +++++++++++++++ ...ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 | 280 +++++++++ ...7f75a37f5bf57989d59d6c80d13c68ae32be04c370 | 73 +++ ...17cf440514b824283dc0ad7b383a42acbd06897ab7 | 331 +++++++++++ ...63875bef64f04783ee3c4c00af3674c013a5cbc93a | 28 + ...9c14c37cb57e995ca15a864e2fa57ea3718672c56a | 21 + ...fd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 | 131 +++++ ...8575f57abf4034296cc46385bb2f39da781ee2efab | 496 ++++++++++++++++ ...e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a | 291 ++++++++++ ...c2219a3b6fdca0e3461e9097f769235971f6238774 | 4 + ...b920c8e644dce95d5bc09efde97aa40313078460ba | 80 +++ ...5d00b2461f82eb1be1c368db804bc6eb0d5a837433 | 540 ++++++++++++++++++ ...bce40c93e624734af8d84ff49ec3145344b237ada2 | 105 ++++ ...d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 | 77 +++ ...0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 | 316 ++++++++++ ...767d63c33b280f34df99eda6ad2b25dfec4c4ead81 | 201 +++++++ modules/sync/googleapis/cloud-run/state.json | 40 ++ modules/sync/state.json | 4 + 23 files changed, 4427 insertions(+) create mode 100644 modules/sync/googleapis/cloud-run/cas/0652aef4653774d12c4004958cde4c8acccb461389b64b32d8bcecf7293a69bfcd2c3a6663069d95b63f446740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 create mode 100644 modules/sync/googleapis/cloud-run/cas/07f2ea0a73925fc06319477c8aaa0ccac3c49714536220896fe60d04b2e92ebf4cbc31aae947dad4ef88c7d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 create mode 100644 modules/sync/googleapis/cloud-run/cas/126b3484b6a8eb500797dcf8d2d27648c1a1fdd81b42de88eb4fa317c7b2f7bd79a9e7cfaab9e7692f9aea7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c create mode 100644 modules/sync/googleapis/cloud-run/cas/22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865 create mode 100644 modules/sync/googleapis/cloud-run/cas/336cfdfaea47554df8ae4e0babf159ecbff075769787e89762430d78f9a01c960f3684b30f6492a8957dd07beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf create mode 100644 modules/sync/googleapis/cloud-run/cas/4a558b5147990727d9049aeef2491d23fd0657ef46423d4452868503dc256db920a81ba26b5a5b7d2f1a8087ee145189e089731296434334f80e972e750ca2a4 create mode 100644 modules/sync/googleapis/cloud-run/cas/698b9063ecb2a150d4b082d925f5519094f2f7fadf44008a9b35da579a20da9e673739efa3326ed7b7f794ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 create mode 100644 modules/sync/googleapis/cloud-run/cas/9b10245c1d6102929fd2a97a304ef9ca557085d065b142ba4b702942b835499aa600047b138ea39ab436897f75a37f5bf57989d59d6c80d13c68ae32be04c370 create mode 100644 modules/sync/googleapis/cloud-run/cas/a3116e013707580dc19a9a112b3920c778e8fd482166984ce047a9f4f7b80ff07ee6315a1a9b56a3340f7117cf440514b824283dc0ad7b383a42acbd06897ab7 create mode 100644 modules/sync/googleapis/cloud-run/cas/a6b41900b595350874f9119e3f98a5ab7cf32b2c013b21023ae33bfde0d8c9929bd4f08326f647421679e263875bef64f04783ee3c4c00af3674c013a5cbc93a create mode 100644 modules/sync/googleapis/cloud-run/cas/a74ee38da0d51dde536ac3e9fc32337fe7b51611018b31d5fa3eabbd6fffdc4051b5d668e968a87ccb6beb9c14c37cb57e995ca15a864e2fa57ea3718672c56a create mode 100644 modules/sync/googleapis/cloud-run/cas/b1c4098519949e5898c3a6297c720e10ea3b163cc4f55b6ffb813d0a977c64c6d18ba33002b3c3dec271affd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 create mode 100644 modules/sync/googleapis/cloud-run/cas/c4797a5ead210cb7387dd6515eceae9e8f28d0119a9bc0be268782ece6a10a22adeb880fd574c6abb41a898575f57abf4034296cc46385bb2f39da781ee2efab create mode 100644 modules/sync/googleapis/cloud-run/cas/ca18e180197455095b117e49ab5e3df2c760f7fe170bcdb880e9e8ac97a7aefe2ba97c24d54d5d140e3b73e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a create mode 100644 modules/sync/googleapis/cloud-run/cas/cc8339cfff2ccd0b606c8a9a51adba281fe7750feb0e5b76346e693ecd2655ecb94824c1f7e370561196ccc2219a3b6fdca0e3461e9097f769235971f6238774 create mode 100644 modules/sync/googleapis/cloud-run/cas/d6e77912b006042b083274bc3c727d3ca9060019752813a46decf94c6424f97d7dce1153b219e9bfc8f75cb920c8e644dce95d5bc09efde97aa40313078460ba create mode 100644 modules/sync/googleapis/cloud-run/cas/d7bb3f74ae0efa66a0462ca44cc52f286a0852a973ef06d1904017cad21a1c6b0f8842ccd9498fba00fd1d5d00b2461f82eb1be1c368db804bc6eb0d5a837433 create mode 100644 modules/sync/googleapis/cloud-run/cas/e58bdae6ad420f062f649d75ddbe7f6de4e17d4bcf3a9c990d41e02df5e5200fdd57458da589e84c10b596bce40c93e624734af8d84ff49ec3145344b237ada2 create mode 100644 modules/sync/googleapis/cloud-run/cas/ece770382a02f9c0cf965f3aa1066cea0b7114ab40ec2ff8abc5b800c3ee44f170d2006078d218098e8564d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 create mode 100644 modules/sync/googleapis/cloud-run/cas/f9390172fdd70a213255367a3e4d0b9fc1e765415ca90e4c3b1deb4f6a37e34914781a4521f64955eddc6a0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 create mode 100644 modules/sync/googleapis/cloud-run/cas/faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 create mode 100644 modules/sync/googleapis/cloud-run/state.json diff --git a/modules/sync/googleapis/cloud-run/cas/0652aef4653774d12c4004958cde4c8acccb461389b64b32d8bcecf7293a69bfcd2c3a6663069d95b63f446740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 b/modules/sync/googleapis/cloud-run/cas/0652aef4653774d12c4004958cde4c8acccb461389b64b32d8bcecf7293a69bfcd2c3a6663069d95b63f446740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 new file mode 100644 index 00000000..f7030d89 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/0652aef4653774d12c4004958cde4c8acccb461389b64b32d8bcecf7293a69bfcd2c3a6663069d95b63f446740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 @@ -0,0 +1,162 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "BuildProto"; +option java_package = "com.google.cloud.run.v2"; +option (google.api.resource_definition) = { + type: "cloudbuild.googleapis.com/BuildWorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" +}; + +// Cloud Run Build Control Plane API +service Builds { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Submits a build in a given project. + rpc SubmitBuild(SubmitBuildRequest) returns (SubmitBuildResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/builds:submit" + body: "*" + }; + } +} + +// Request message for submitting a Build. +message SubmitBuildRequest { + // Build the source using Docker. This means the source has a Dockerfile. + message DockerBuild {} + + // Build the source using Buildpacks. + message BuildpacksBuild { + // The runtime name, e.g. 'go113'. Leave blank for generic builds. + string runtime = 1 [deprecated = true]; + + // Optional. Name of the function target if the source is a function source. + // Required for function builds. + string function_target = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. cache_image_uri is the GCR/AR URL where the cache image will be + // stored. cache_image_uri is optional and omitting it will disable caching. + // This URL must be stable across builds. It is used to derive a + // build-specific temporary URL by substituting the tag with the build ID. + // The build will clean up the temporary image on a best-effort basis. + string cache_image_uri = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The base image to use for the build. + string base_image = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-provided build-time environment variables. + map environment_variables = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not the application container will be enrolled in + // automatic base image updates. When true, the application will be built on + // a scratch base image, so the base layers can be appended at run time. + bool enable_automatic_updates = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. project_descriptor stores the path to the project descriptor + // file. When empty, it means that there is no project descriptor file in + // the source. + string project_descriptor = 7 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The project and location to build in. Location must be a region, + // e.g., 'us-central1' or 'global' if the global builder is to be used. + // Format: + // `projects/{project}/locations/{location}` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location of source. + oneof source { + // Required. Source for the build. + StorageSource storage_source = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Artifact Registry URI to store the built image. + string image_uri = 3 [(google.api.field_behavior) = REQUIRED]; + + // Build type must be one of the following. + oneof build_type { + // Build the source using Buildpacks. + BuildpacksBuild buildpack_build = 4; + + // Build the source using Docker. This means the source has a Dockerfile. + DockerBuild docker_build = 5; + } + + // Optional. The service account to use for the build. If not set, the default + // Cloud Build service account for the project will be used. + string service_account = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Name of the Cloud Build Custom Worker Pool that should be used to + // build the function. The format of this field is + // `projects/{project}/locations/{region}/workerPools/{workerPool}` where + // `{project}` and `{region}` are the project id and region respectively where + // the worker pool is defined and `{workerPool}` is the short name of the + // worker pool. + string worker_pool = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/BuildWorkerPool" + } + ]; + + // Optional. Additional tags to annotate the build. + repeated string tags = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for submitting a Build. +message SubmitBuildResponse { + // Cloud Build operation to be polled via CloudBuild API. + google.longrunning.Operation build_operation = 1; + + // URI of the base builder image in Artifact Registry being used in the build. + // Used to opt into automatic base image updates. + string base_image_uri = 2; + + // Warning message for the base image. + string base_image_warning = 3; +} + +// Location of the source in an archive file in Google Cloud Storage. +message StorageSource { + // Required. Google Cloud Storage bucket containing the source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Google Cloud Storage object containing the source. + // + // This object must be a gzipped archive file (`.tar.gz`) containing source to + // build. + string object = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Google Cloud Storage generation for the object. If the generation + // is omitted, the latest generation will be used. + int64 generation = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/07f2ea0a73925fc06319477c8aaa0ccac3c49714536220896fe60d04b2e92ebf4cbc31aae947dad4ef88c7d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 b/modules/sync/googleapis/cloud-run/cas/07f2ea0a73925fc06319477c8aaa0ccac3c49714536220896fe60d04b2e92ebf4cbc31aae947dad4ef88c7d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 new file mode 100644 index 00000000..b0eba016 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/07f2ea0a73925fc06319477c8aaa0ccac3c49714536220896fe60d04b2e92ebf4cbc31aae947dad4ef88c7d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 @@ -0,0 +1,491 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; +import "google/api/routing.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/instance_split.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/cloud/run/v2/worker_pool_revision_template.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "WorkerPoolProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run WorkerPool Control Plane API. +service WorkerPools { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new WorkerPool in a given project and location. + rpc CreateWorkerPool(CreateWorkerPoolRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/workerPools" + body: "worker_pool" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent,worker_pool,worker_pool_id"; + option (google.longrunning.operation_info) = { + response_type: "WorkerPool" + metadata_type: "WorkerPool" + }; + } + + // Gets information about a WorkerPool. + rpc GetWorkerPool(GetWorkerPoolRequest) returns (WorkerPool) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/workerPools/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists WorkerPools. Results are sorted by creation time, descending. + rpc ListWorkerPools(ListWorkerPoolsRequest) + returns (ListWorkerPoolsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/workerPools" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a WorkerPool. + rpc UpdateWorkerPool(UpdateWorkerPoolRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{worker_pool.name=projects/*/locations/*/workerPools/*}" + body: "worker_pool" + }; + option (google.api.routing) = { + routing_parameters { + field: "worker_pool.name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "worker_pool"; + option (google.api.method_signature) = "worker_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "WorkerPool" + metadata_type: "WorkerPool" + }; + } + + // Deletes a WorkerPool. + rpc DeleteWorkerPool(DeleteWorkerPoolRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/workerPools/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "WorkerPool" + metadata_type: "WorkerPool" + }; + } + + // Gets the IAM Access Control policy currently in effect for the given + // Cloud Run WorkerPool. This result does not include any inherited policies. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v2/{resource=projects/*/locations/*/workerPools/*}:getIamPolicy" + }; + } + + // Sets the IAM Access control policy for the specified WorkerPool. Overwrites + // any existing policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/workerPools/*}:setIamPolicy" + body: "*" + }; + } + + // Returns permissions that a caller has on the specified Project. + // + // There are no permissions required for making this API call. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/workerPools/*}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for creating a WorkerPool. +message CreateWorkerPoolRequest { + // Required. The location and project in which this worker pool should be + // created. Format: `projects/{project}/locations/{location}`, where + // `{project}` can be project id or number. Only lowercase characters, digits, + // and hyphens. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/WorkerPool" + } + ]; + + // Required. The WorkerPool instance to create. + WorkerPool worker_pool = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique identifier for the WorkerPool. It must begin with + // letter, and cannot end with hyphen; must contain fewer than 50 characters. + // The name of the worker pool becomes + // `{parent}/workerPools/{worker_pool_id}`. + string worker_pool_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates that the request should be validated and default values + // populated, without persisting the request or creating any resources. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for updating a worker pool. +message UpdateWorkerPoolRequest { + // Optional. The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The WorkerPool to be updated. + WorkerPool worker_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates that the request should be validated and default values + // populated, without persisting the request or updating any resources. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, and if the WorkerPool does not exist, it will + // create a new one. The caller must have 'run.workerpools.create' permissions + // if this is set to true and the WorkerPool does not exist. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, a new revision will be created from the template + // even if the system doesn't detect any changes from the previously deployed + // revision. + // + // This may be useful for cases where the underlying resources need to be + // recreated or reinitialized. For example if the image is specified by label, + // but the underlying image digest has changed) or if the container performs + // deployment initialization work that needs to be performed again. + bool force_new_revision = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for retrieving a list of WorkerPools. +message ListWorkerPoolsRequest { + // Required. The location and project to list resources on. + // Location must be a valid Google Cloud region, and cannot be the "-" + // wildcard. Format: `projects/{project}/locations/{location}`, where + // `{project}` can be project id or number. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/WorkerPool" + } + ]; + + // Maximum number of WorkerPools to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListWorkerPools. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of WorkerPools. +message ListWorkerPoolsResponse { + // The resulting list of WorkerPools. + repeated WorkerPool worker_pools = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListWorkerPools request to continue. + string next_page_token = 2; +} + +// Request message for obtaining a WorkerPool by its full name. +message GetWorkerPoolRequest { + // Required. The full name of the WorkerPool. + // Format: + // `projects/{project}/locations/{location}/workerPools/{worker_pool}`, where + // `{project}` can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/WorkerPool" } + ]; +} + +// Request message to delete a WorkerPool by its full name. +message DeleteWorkerPoolRequest { + // Required. The full name of the WorkerPool. + // Format: + // `projects/{project}/locations/{location}/workerPools/{worker_pool}`, where + // `{project}` can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/WorkerPool" } + ]; + + // Optional. Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 3; +} + +// WorkerPool acts as a top-level container that manages a set of +// configurations and revision templates which implement a pull-based workload. +// WorkerPool exists to provide a singular abstraction which can be access +// controlled, reasoned about, and which encapsulates software lifecycle +// decisions such as rollout policy and team resource ownership. +message WorkerPool { + option (google.api.resource) = { + type: "run.googleapis.com/WorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" + plural: "workerPools" + singular: "workerPool" + style: DECLARATIVE_FRIENDLY + }; + + // The fully qualified name of this WorkerPool. In CreateWorkerPoolRequest, + // this field is ignored, and instead composed from + // CreateWorkerPoolRequest.parent and CreateWorkerPoolRequest.worker_id. + // + // Format: + // `projects/{project}/locations/{location}/workerPools/{worker_id}` + string name = 1; + + // User-provided description of the WorkerPool. This field currently has a + // 512-character limit. + string description = 2; + + // Output only. Server assigned unique identifier for the trigger. The value + // is a UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + // Please note that unlike v1, this is an int64 value. As with most Google + // APIs, its JSON representation will be a `string` instead of an `integer`. + int64 generation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + // Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 WorkerPool. + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. + // + // Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected in new resources. All system + // annotations in v1 now have a corresponding field in v2 WorkerPool. + // + //

This field follows Kubernetes + // annotations' namespacing, limits, and rules. + map annotations = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The deletion time. It is only populated as a response to a + // Delete request. + google.protobuf.Timestamp delete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. + google.protobuf.Timestamp expire_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the authenticated creator. + string creator = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the last authenticated modifier. + string last_modifier = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Arbitrary identifier for the API client. + string client = 13; + + // Arbitrary version identifier for the API client. + string client_version = 14; + + // Optional. The launch stage as defined by [Google Cloud Platform + // Launch Stages](https://cloud.google.com/terms/launch-stages). + // Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA + // is assumed. + // Set the launch stage to a preview stage on input to allow use of preview + // features in that stage. On read (or output), describes whether the + // resource uses preview features. + // + // For example, if ALPHA is provided as input, but only BETA and GA-level + // features are used, this field will be BETA on output. + google.api.LaunchStage launch_stage = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Settings for the Binary Authorization feature. + BinaryAuthorization binary_authorization = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The template used to create revisions for this WorkerPool. + WorkerPoolRevisionTemplate template = 18 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies how to distribute instances over a collection of + // Revisions belonging to the WorkerPool. If instance split is empty or not + // provided, defaults to 100% instances assigned to the latest `Ready` + // Revision. + repeated InstanceSplit instance_splits = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies worker-pool-level scaling settings + WorkerPoolScaling scaling = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The generation of this WorkerPool currently serving traffic. + // See comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. Please note that unlike v1, this is an int64 value. + // As with most Google APIs, its JSON representation will be a `string` + // instead of an `integer`. + int64 observed_generation = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this WorkerPool, containing its readiness + // status, and detailed error information in case it did not reach a serving + // state. See comments in `reconciling` for additional information on + // reconciliation process in Cloud Run. + Condition terminal_condition = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Conditions of all other associated sub-resources. They + // contain additional diagnostics information in case the WorkerPool does not + // reach its Serving state. See comments in `reconciling` for additional + // information on reconciliation process in Cloud Run. + repeated Condition conditions = 32 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the latest revision that is serving traffic. See + // comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + string latest_ready_revision = 33 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Output only. Name of the last created revision. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + string latest_created_revision = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Output only. Detailed status information for corresponding instance splits. + // See comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + repeated InstanceSplitStatus instance_split_statuses = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // One or more custom audiences that you want this worker pool to support. + // Specify each custom audience as the full URL in a string. The custom + // audiences are encoded in the token and used to authenticate requests. For + // more information, see + // https://cloud.google.com/run/docs/configuring/custom-audiences. + repeated string custom_audiences = 37; + + // Output only. Reserved for future use. + bool satisfies_pzs = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Returns true if the WorkerPool is currently being acted upon + // by the system to bring it into the desired state. + // + // When a new WorkerPool is created, or an existing one is updated, Cloud Run + // will asynchronously perform all necessary steps to bring the WorkerPool to + // the desired serving state. This process is called reconciliation. While + // reconciliation is in process, `observed_generation`, + // `latest_ready_revison`, `traffic_statuses`, and `uri` will have transient + // values that might mismatch the intended state: Once reconciliation is over + // (and this field is false), there are two possible outcomes: reconciliation + // succeeded and the serving state matches the WorkerPool, or there was an + // error, and reconciliation failed. This state can be found in + // `terminal_condition.state`. + // + // If reconciliation succeeded, the following fields will match: `traffic` and + // `traffic_statuses`, `observed_generation` and `generation`, + // `latest_ready_revision` and `latest_created_revision`. + // + // If reconciliation failed, `traffic_statuses`, `observed_generation`, and + // `latest_ready_revision` will have the state of the last serving revision, + // or empty for newly created WorkerPools. Additional information on the + // failure can be found in `terminal_condition` and `conditions`. + bool reconciling = 98 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/126b3484b6a8eb500797dcf8d2d27648c1a1fdd81b42de88eb4fa317c7b2f7bd79a9e7cfaab9e7692f9aea7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c b/modules/sync/googleapis/cloud-run/cas/126b3484b6a8eb500797dcf8d2d27648c1a1fdd81b42de88eb4fa317c7b2f7bd79a9e7cfaab9e7692f9aea7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c new file mode 100644 index 00000000..885e314f --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/126b3484b6a8eb500797dcf8d2d27648c1a1fdd81b42de88eb4fa317c7b2f7bd79a9e7cfaab9e7692f9aea7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c @@ -0,0 +1,67 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "InstanceSplitProto"; +option java_package = "com.google.cloud.run.v2"; + +// Holds a single instance split entry for the Worker. Allocations can be done +// to a specific Revision name, or pointing to the latest Ready Revision. +message InstanceSplit { + // The allocation type for this instance split. + InstanceSplitAllocationType type = 1; + + // Revision to which to assign this portion of instances, if split allocation + // is by revision. + string revision = 2 [ + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Specifies percent of the instance split to this Revision. + // This defaults to zero if unspecified. + int32 percent = 3; +} + +// Represents the observed state of a single `InstanceSplit` entry. +message InstanceSplitStatus { + // The allocation type for this instance split. + InstanceSplitAllocationType type = 1; + + // Revision to which this instance split is assigned. + string revision = 2 [ + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Specifies percent of the instance split to this Revision. + int32 percent = 3; +} + +// The type of instance split allocation. +enum InstanceSplitAllocationType { + // Unspecified instance allocation type. + INSTANCE_SPLIT_ALLOCATION_TYPE_UNSPECIFIED = 0; + + // Allocates instances to the Service's latest ready Revision. + INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST = 1; + + // Allocates instances to a Revision by name. + INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION = 2; +} diff --git a/modules/sync/googleapis/cloud-run/cas/22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865 b/modules/sync/googleapis/cloud-run/cas/22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865 new file mode 100644 index 00000000..7877ea13 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865 @@ -0,0 +1,20 @@ +shake256:faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 LICENSE +shake256:a74ee38da0d51dde536ac3e9fc32337fe7b51611018b31d5fa3eabbd6fffdc4051b5d668e968a87ccb6beb9c14c37cb57e995ca15a864e2fa57ea3718672c56a buf.md +shake256:cc8339cfff2ccd0b606c8a9a51adba281fe7750feb0e5b76346e693ecd2655ecb94824c1f7e370561196ccc2219a3b6fdca0e3461e9097f769235971f6238774 buf.yaml +shake256:0652aef4653774d12c4004958cde4c8acccb461389b64b32d8bcecf7293a69bfcd2c3a6663069d95b63f446740cf07c41183ee4d50e16668dfcbfd9de7e1cfe1 google/cloud/run/v2/build.proto +shake256:336cfdfaea47554df8ae4e0babf159ecbff075769787e89762430d78f9a01c960f3684b30f6492a8957dd07beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf google/cloud/run/v2/condition.proto +shake256:f9390172fdd70a213255367a3e4d0b9fc1e765415ca90e4c3b1deb4f6a37e34914781a4521f64955eddc6a0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 google/cloud/run/v2/execution.proto +shake256:9b10245c1d6102929fd2a97a304ef9ca557085d065b142ba4b702942b835499aa600047b138ea39ab436897f75a37f5bf57989d59d6c80d13c68ae32be04c370 google/cloud/run/v2/execution_template.proto +shake256:126b3484b6a8eb500797dcf8d2d27648c1a1fdd81b42de88eb4fa317c7b2f7bd79a9e7cfaab9e7692f9aea7f1defcd8aba9f9ae9aeb4330505d4c28786b2945c google/cloud/run/v2/instance_split.proto +shake256:d7bb3f74ae0efa66a0462ca44cc52f286a0852a973ef06d1904017cad21a1c6b0f8842ccd9498fba00fd1d5d00b2461f82eb1be1c368db804bc6eb0d5a837433 google/cloud/run/v2/job.proto +shake256:4a558b5147990727d9049aeef2491d23fd0657ef46423d4452868503dc256db920a81ba26b5a5b7d2f1a8087ee145189e089731296434334f80e972e750ca2a4 google/cloud/run/v2/k8s.min.proto +shake256:a3116e013707580dc19a9a112b3920c778e8fd482166984ce047a9f4f7b80ff07ee6315a1a9b56a3340f7117cf440514b824283dc0ad7b383a42acbd06897ab7 google/cloud/run/v2/revision.proto +shake256:b1c4098519949e5898c3a6297c720e10ea3b163cc4f55b6ffb813d0a977c64c6d18ba33002b3c3dec271affd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 google/cloud/run/v2/revision_template.proto +shake256:c4797a5ead210cb7387dd6515eceae9e8f28d0119a9bc0be268782ece6a10a22adeb880fd574c6abb41a898575f57abf4034296cc46385bb2f39da781ee2efab google/cloud/run/v2/service.proto +shake256:a6b41900b595350874f9119e3f98a5ab7cf32b2c013b21023ae33bfde0d8c9929bd4f08326f647421679e263875bef64f04783ee3c4c00af3674c013a5cbc93a google/cloud/run/v2/status.proto +shake256:ca18e180197455095b117e49ab5e3df2c760f7fe170bcdb880e9e8ac97a7aefe2ba97c24d54d5d140e3b73e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a google/cloud/run/v2/task.proto +shake256:d6e77912b006042b083274bc3c727d3ca9060019752813a46decf94c6424f97d7dce1153b219e9bfc8f75cb920c8e644dce95d5bc09efde97aa40313078460ba google/cloud/run/v2/task_template.proto +shake256:ece770382a02f9c0cf965f3aa1066cea0b7114ab40ec2ff8abc5b800c3ee44f170d2006078d218098e8564d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 google/cloud/run/v2/traffic_target.proto +shake256:698b9063ecb2a150d4b082d925f5519094f2f7fadf44008a9b35da579a20da9e673739efa3326ed7b7f794ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 google/cloud/run/v2/vendor_settings.proto +shake256:07f2ea0a73925fc06319477c8aaa0ccac3c49714536220896fe60d04b2e92ebf4cbc31aae947dad4ef88c7d13de02a5cd45b9b47f3fef902efd4c22602ee77f1 google/cloud/run/v2/worker_pool.proto +shake256:e58bdae6ad420f062f649d75ddbe7f6de4e17d4bcf3a9c990d41e02df5e5200fdd57458da589e84c10b596bce40c93e624734af8d84ff49ec3145344b237ada2 google/cloud/run/v2/worker_pool_revision_template.proto diff --git a/modules/sync/googleapis/cloud-run/cas/336cfdfaea47554df8ae4e0babf159ecbff075769787e89762430d78f9a01c960f3684b30f6492a8957dd07beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf b/modules/sync/googleapis/cloud-run/cas/336cfdfaea47554df8ae4e0babf159ecbff075769787e89762430d78f9a01c960f3684b30f6492a8957dd07beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf new file mode 100644 index 00000000..1962fb05 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/336cfdfaea47554df8ae4e0babf159ecbff075769787e89762430d78f9a01c960f3684b30f6492a8957dd07beefb0c3b9526bfab9c40b5e19d1885a9aab9c6cf @@ -0,0 +1,218 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "ConditionProto"; +option java_package = "com.google.cloud.run.v2"; + +// Defines a status condition for a resource. +message Condition { + // Represents the possible Condition states. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // Transient state: Reconciliation has not started yet. + CONDITION_PENDING = 1; + + // Transient state: reconciliation is still in progress. + CONDITION_RECONCILING = 2; + + // Terminal state: Reconciliation did not succeed. + CONDITION_FAILED = 3; + + // Terminal state: Reconciliation completed successfully. + CONDITION_SUCCEEDED = 4; + } + + // Represents the severity of the condition failures. + enum Severity { + // Unspecified severity + SEVERITY_UNSPECIFIED = 0; + + // Error severity. + ERROR = 1; + + // Warning severity. + WARNING = 2; + + // Info severity. + INFO = 3; + } + + // Reasons common to all types of conditions. + enum CommonReason { + // Default value. + COMMON_REASON_UNDEFINED = 0; + + // Reason unknown. Further details will be in message. + UNKNOWN = 1; + + // Revision creation process failed. + REVISION_FAILED = 3; + + // Timed out waiting for completion. + PROGRESS_DEADLINE_EXCEEDED = 4; + + // The container image path is incorrect. + CONTAINER_MISSING = 6; + + // Insufficient permissions on the container image. + CONTAINER_PERMISSION_DENIED = 7; + + // Container image is not authorized by policy. + CONTAINER_IMAGE_UNAUTHORIZED = 8; + + // Container image policy authorization check failed. + CONTAINER_IMAGE_AUTHORIZATION_CHECK_FAILED = 9; + + // Insufficient permissions on encryption key. + ENCRYPTION_KEY_PERMISSION_DENIED = 10; + + // Permission check on encryption key failed. + ENCRYPTION_KEY_CHECK_FAILED = 11; + + // At least one Access check on secrets failed. + SECRETS_ACCESS_CHECK_FAILED = 12; + + // Waiting for operation to complete. + WAITING_FOR_OPERATION = 13; + + // System will retry immediately. + IMMEDIATE_RETRY = 14; + + // System will retry later; current attempt failed. + POSTPONED_RETRY = 15; + + // An internal error occurred. Further information may be in the message. + INTERNAL = 16; + + // User-provided VPC network was not found. + VPC_NETWORK_NOT_FOUND = 17; + } + + // Reasons specific to Revision resource. + enum RevisionReason { + // Default value. + REVISION_REASON_UNDEFINED = 0; + + // Revision in Pending state. + PENDING = 1; + + // Revision is in Reserve state. + RESERVE = 2; + + // Revision is Retired. + RETIRED = 3; + + // Revision is being retired. + RETIRING = 4; + + // Revision is being recreated. + RECREATING = 5; + + // There was a health check error. + HEALTH_CHECK_CONTAINER_ERROR = 6; + + // Health check failed due to user error from customized path of the + // container. System will retry. + CUSTOMIZED_PATH_RESPONSE_PENDING = 7; + + // A revision with min_instance_count > 0 was created and is reserved, but + // it was not configured to serve traffic, so it's not live. This can also + // happen momentarily during traffic migration. + MIN_INSTANCES_NOT_PROVISIONED = 8; + + // The maximum allowed number of active revisions has been reached. + ACTIVE_REVISION_LIMIT_REACHED = 9; + + // There was no deployment defined. + // This value is no longer used, but Services created in older versions of + // the API might contain this value. + NO_DEPLOYMENT = 10; + + // A revision's container has no port specified since the revision is of a + // manually scaled service with 0 instance count + HEALTH_CHECK_SKIPPED = 11; + + // A revision with min_instance_count > 0 was created and is waiting for + // enough instances to begin a traffic migration. + MIN_INSTANCES_WARMING = 12; + } + + // Reasons specific to Execution resource. + enum ExecutionReason { + // Default value. + EXECUTION_REASON_UNDEFINED = 0; + + // Internal system error getting execution status. System will retry. + JOB_STATUS_SERVICE_POLLING_ERROR = 1; + + // A task reached its retry limit and the last attempt failed due to the + // user container exiting with a non-zero exit code. + NON_ZERO_EXIT_CODE = 2; + + // The execution was cancelled by users. + CANCELLED = 3; + + // The execution is in the process of being cancelled. + CANCELLING = 4; + + // The execution was deleted. + DELETED = 5; + } + + // type is used to communicate the status of the reconciliation process. + // See also: + // https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting + // Types common to all resources include: + // * "Ready": True when the Resource is ready. + string type = 1; + + // State of the condition. + State state = 2; + + // Human readable message indicating details about the current status. + string message = 3; + + // Last time the condition transitioned from one status to another. + google.protobuf.Timestamp last_transition_time = 4; + + // How to interpret failures of this condition, one of Error, Warning, Info + Severity severity = 5; + + // The reason for this condition. Depending on the condition type, + // it will populate one of these fields. + // Successful conditions cannot have a reason. + oneof reasons { + // Output only. A common (service-level) reason for this condition. + CommonReason reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A reason for the revision condition. + RevisionReason revision_reason = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A reason for the execution condition. + ExecutionReason execution_reason = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} diff --git a/modules/sync/googleapis/cloud-run/cas/4a558b5147990727d9049aeef2491d23fd0657ef46423d4452868503dc256db920a81ba26b5a5b7d2f1a8087ee145189e089731296434334f80e972e750ca2a4 b/modules/sync/googleapis/cloud-run/cas/4a558b5147990727d9049aeef2491d23fd0657ef46423d4452868503dc256db920a81ba26b5a5b7d2f1a8087ee145189e089731296434334f80e972e750ca2a4 new file mode 100644 index 00000000..ea6fef3e --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/4a558b5147990727d9049aeef2491d23fd0657ef46423d4452868503dc256db920a81ba26b5a5b7d2f1a8087ee145189e089731296434334f80e972e750ca2a4 @@ -0,0 +1,451 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "K8sMinProto"; +option java_package = "com.google.cloud.run.v2"; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/Secret" + pattern: "projects/{project}/secrets/{secret}" +}; +option (google.api.resource_definition) = { + type: "secretmanager.googleapis.com/SecretVersion" + pattern: "projects/{project}/secrets/{secret}/versions/{version}" +}; +option (google.api.resource_definition) = { + type: "vpcaccess.googleapis.com/Connector" + pattern: "projects/{project}/locations/{location}/connectors/{connector}" +}; + +// A single application container. +// This specifies both the container to run, the command to run in the container +// and the arguments to supply to it. +// Note that additional arguments can be supplied by the system to the container +// at runtime. +message Container { + // Name of the container specified as a DNS_LABEL (RFC 1123). + string name = 1; + + // Required. Name of the container image in Dockerhub, Google Artifact + // Registry, or Google Container Registry. If the host is not provided, + // Dockerhub is assumed. + string image = 2 [(google.api.field_behavior) = REQUIRED]; + + // Entrypoint array. Not executed within a shell. + // The docker image's ENTRYPOINT is used if this is not provided. + repeated string command = 3; + + // Arguments to the entrypoint. + // The docker image's CMD is used if this is not provided. + repeated string args = 4; + + // List of environment variables to set in the container. + repeated EnvVar env = 5; + + // Compute Resource requirements by this container. + ResourceRequirements resources = 6; + + // List of ports to expose from the container. Only a single port can be + // specified. The specified ports must be listening on all interfaces + // (0.0.0.0) within the container to be accessible. + // + // If omitted, a port number will be chosen and passed to the container + // through the PORT environment variable for the container to listen on. + repeated ContainerPort ports = 7; + + // Volume to mount into the container's filesystem. + repeated VolumeMount volume_mounts = 8; + + // Container's working directory. + // If not specified, the container runtime's default will be used, which + // might be configured in the container image. + string working_dir = 9; + + // Periodic probe of container liveness. + // Container will be restarted if the probe fails. + Probe liveness_probe = 10; + + // Startup probe of application within the container. + // All other probes are disabled if a startup probe is provided, until it + // succeeds. Container will not be added to service endpoints if the probe + // fails. + Probe startup_probe = 11; + + // Names of the containers that must start before this container. + repeated string depends_on = 12; + + // Base image for this container. Only supported for services. If set, it + // indicates that the service is enrolled into automatic base image update. + string base_image_uri = 13; + + // Output only. The build info of the container image. + BuildInfo build_info = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// ResourceRequirements describes the compute resource requirements. +message ResourceRequirements { + // Only `memory` and `cpu` keys in the map are supported. + // + //

Notes: + // * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 + // CPU requires at least 2Gi of memory. For more information, go to + // https://cloud.google.com/run/docs/configuring/cpu. + // * For supported 'memory' values and syntax, go to + // https://cloud.google.com/run/docs/configuring/memory-limits + map limits = 1; + + // Determines whether CPU is only allocated during requests (true by default). + // However, if ResourceRequirements is set, the caller must explicitly + // set this field to true to preserve the default behavior. + bool cpu_idle = 2; + + // Determines whether CPU should be boosted on startup of a new container + // instance above the requested CPU threshold, this can help reduce cold-start + // latency. + bool startup_cpu_boost = 3; +} + +// EnvVar represents an environment variable present in a Container. +message EnvVar { + // Required. Name of the environment variable. Must not exceed 32768 + // characters. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof values { + // Literal value of the environment variable. + // Defaults to "", and the maximum length is 32768 bytes. + // Variable references are not supported in Cloud Run. + string value = 2; + + // Source for the environment variable's value. + EnvVarSource value_source = 3; + } +} + +// EnvVarSource represents a source for the value of an EnvVar. +message EnvVarSource { + // Selects a secret and a specific version from Cloud Secret Manager. + SecretKeySelector secret_key_ref = 1; +} + +// SecretEnvVarSource represents a source for the value of an EnvVar. +message SecretKeySelector { + // Required. The name of the secret in Cloud Secret Manager. + // Format: {secret_name} if the secret is in the same project. + // projects/{project}/secrets/{secret_name} if the secret is + // in a different project. + string secret = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/Secret" + } + ]; + + // The Cloud Secret Manager secret version. + // Can be 'latest' for the latest version, an integer for a specific version, + // or a version alias. + string version = 2 [(google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + }]; +} + +// ContainerPort represents a network port in a single container. +message ContainerPort { + // If specified, used to specify which protocol to use. + // Allowed values are "http1" and "h2c". + string name = 1; + + // Port number the container listens on. + // This must be a valid TCP port number, 0 < container_port < 65536. + int32 container_port = 3; +} + +// VolumeMount describes a mounting of a Volume within a container. +message VolumeMount { + // Required. This must match the Name of a Volume. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Path within the container at which the volume should be mounted. + // Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must + // otherwise be `/cloudsql`. All instances defined in the Volume will be + // available as `/cloudsql/[instance]`. For more information on Cloud SQL + // volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run + string mount_path = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Volume represents a named volume in a container. +message Volume { + // Required. Volume's name. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + oneof volume_type { + // Secret represents a secret that should populate this volume. + SecretVolumeSource secret = 2; + + // For Cloud SQL volumes, contains the specific instances that should be + // mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for + // more information on how to connect Cloud SQL and Cloud Run. + CloudSqlInstance cloud_sql_instance = 3; + + // Ephemeral storage used as a shared volume. + EmptyDirVolumeSource empty_dir = 4; + + // For NFS Voumes, contains the path to the nfs Volume + NFSVolumeSource nfs = 5; + + // Persistent storage backed by a Google Cloud Storage bucket. + GCSVolumeSource gcs = 6; + } +} + +// The secret's value will be presented as the content of a file whose +// name is defined in the item path. If no items are defined, the name of +// the file is the secret. +message SecretVolumeSource { + // Required. The name of the secret in Cloud Secret Manager. + // Format: {secret} if the secret is in the same project. + // projects/{project}/secrets/{secret} if the secret is + // in a different project. + string secret = 1 [(google.api.field_behavior) = REQUIRED]; + + // If unspecified, the volume will expose a file whose name is the + // secret, relative to VolumeMount.mount_path. + // If specified, the key will be used as the version to fetch from Cloud + // Secret Manager and the path will be the name of the file exposed in the + // volume. When items are defined, they must specify a path and a version. + repeated VersionToPath items = 2; + + // Integer representation of mode bits to use on created files by default. + // Must be a value between 0000 and 0777 (octal), defaulting to 0444. + // Directories within the path are not affected by this setting. + // + // Notes + // + // * Internally, a umask of 0222 will be applied to any non-zero value. + // * This is an integer representation of the mode bits. So, the octal + // integer value should look exactly as the chmod numeric notation with a + // leading zero. Some examples: for chmod 640 (u=rw,g=r), set to 0640 (octal) + // or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or + // 493 (base-10). + // * This might be in conflict with other options that affect the + // file mode, like fsGroup, and the result can be other mode bits set. + // + // This might be in conflict with other options that affect the + // file mode, like fsGroup, and as a result, other mode bits could be set. + int32 default_mode = 3; +} + +// VersionToPath maps a specific version of a secret to a relative file to mount +// to, relative to VolumeMount's mount_path. +message VersionToPath { + // Required. The relative path of the secret in the container. + string path = 1 [(google.api.field_behavior) = REQUIRED]; + + // The Cloud Secret Manager secret version. + // Can be 'latest' for the latest value, or an integer or a secret alias for a + // specific version. + string version = 2; + + // Integer octal mode bits to use on this file, must be a value between + // 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be + // used. + // + // Notes + // + // * Internally, a umask of 0222 will be applied to any non-zero value. + // * This is an integer representation of the mode bits. So, the octal + // integer value should look exactly as the chmod numeric notation with a + // leading zero. Some examples: for chmod 640 (u=rw,g=r), set to 0640 (octal) + // or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or + // 493 (base-10). + // * This might be in conflict with other options that affect the + // file mode, like fsGroup, and the result can be other mode bits set. + int32 mode = 3; +} + +// Represents a set of Cloud SQL instances. Each one will be available under +// /cloudsql/[instance]. Visit +// https://cloud.google.com/sql/docs/mysql/connect-run for more information on +// how to connect Cloud SQL and Cloud Run. +message CloudSqlInstance { + // The Cloud SQL instance connection names, as can be found in + // https://console.cloud.google.com/sql/instances. Visit + // https://cloud.google.com/sql/docs/mysql/connect-run for more information on + // how to connect Cloud SQL and Cloud Run. Format: + // {project}:{location}:{instance} + repeated string instances = 1; +} + +// In memory (tmpfs) ephemeral storage. +// It is ephemeral in the sense that when the sandbox is taken down, the data is +// destroyed with it (it does not persist across sandbox runs). +message EmptyDirVolumeSource { + // The different types of medium supported for EmptyDir. + enum Medium { + // When not specified, falls back to the default implementation which + // is currently in memory (this may change over time). + MEDIUM_UNSPECIFIED = 0; + + // Explicitly set the EmptyDir to be in memory. Uses tmpfs. + MEMORY = 1; + } + + // The medium on which the data is stored. Acceptable values today is only + // MEMORY or none. When none, the default will currently be backed by memory + // but could change over time. +optional + Medium medium = 1; + + // Limit on the storage usable by this EmptyDir volume. + // The size limit is also applicable for memory medium. + // The maximum usage on memory medium EmptyDir would be the minimum value + // between the SizeLimit specified here and the sum of memory limits of all + // containers. The default is nil which means that the limit is undefined. + // More info: + // https://cloud.google.com/run/docs/configuring/in-memory-volumes#configure-volume. + // Info in Kubernetes: + // https://kubernetes.io/docs/concepts/storage/volumes/#emptydir + string size_limit = 2; +} + +// Represents an NFS mount. +message NFSVolumeSource { + // Hostname or IP address of the NFS server + string server = 1; + + // Path that is exported by the NFS server. + string path = 2; + + // If true, the volume will be mounted as read only for all mounts. + bool read_only = 3; +} + +// Represents a volume backed by a Cloud Storage bucket using Cloud Storage +// FUSE. +message GCSVolumeSource { + // Cloud Storage Bucket name. + string bucket = 1; + + // If true, the volume will be mounted as read only for all mounts. + bool read_only = 2; + + // A list of additional flags to pass to the gcsfuse CLI. + // Options should be specified without the leading "--". + repeated string mount_options = 3; +} + +// Probe describes a health check to be performed against a container to +// determine whether it is alive or ready to receive traffic. +message Probe { + // Optional. Number of seconds after the container has started before the + // probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum + // value for liveness probe is 3600. Maximum value for startup probe is 240. + int32 initial_delay_seconds = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of seconds after which the probe times out. + // Defaults to 1 second. Minimum value is 1. Maximum value is 3600. + // Must be smaller than period_seconds. + int32 timeout_seconds = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. How often (in seconds) to perform the probe. + // Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe + // is 3600. Maximum value for startup probe is 240. + // Must be greater or equal than timeout_seconds. + int32 period_seconds = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum consecutive failures for the probe to be considered + // failed after having succeeded. Defaults to 3. Minimum value is 1. + int32 failure_threshold = 4 [(google.api.field_behavior) = OPTIONAL]; + + oneof probe_type { + // Optional. HTTPGet specifies the http request to perform. + // Exactly one of httpGet, tcpSocket, or grpc must be specified. + HTTPGetAction http_get = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. TCPSocket specifies an action involving a TCP port. + // Exactly one of httpGet, tcpSocket, or grpc must be specified. + TCPSocketAction tcp_socket = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. GRPC specifies an action involving a gRPC port. + // Exactly one of httpGet, tcpSocket, or grpc must be specified. + GRPCAction grpc = 7 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// HTTPGetAction describes an action based on HTTP Get requests. +message HTTPGetAction { + // Optional. Path to access on the HTTP server. Defaults to '/'. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom headers to set in the request. HTTP allows repeated + // headers. + repeated HTTPHeader http_headers = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Port number to access on the container. Must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// HTTPHeader describes a custom header to be used in HTTP probes +message HTTPHeader { + // Required. The header field name + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The header field value + string value = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// TCPSocketAction describes an action based on opening a socket +message TCPSocketAction { + // Optional. Port number to access on the container. Must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// GRPCAction describes an action involving a GRPC port. +message GRPCAction { + // Optional. Port number of the gRPC service. Number must be in the range 1 to + // 65535. If not specified, defaults to the exposed port of the container, + // which is the value of container.ports[0].containerPort. + int32 port = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Service is the name of the service to place in the gRPC + // HealthCheckRequest (see + // https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this + // is not specified, the default behavior is defined by gRPC. + string service = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Build information of the image. +message BuildInfo { + // Output only. Entry point of the function when the image is a Cloud Run + // function. + string function_target = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Source code location of the image. + string source_location = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/698b9063ecb2a150d4b082d925f5519094f2f7fadf44008a9b35da579a20da9e673739efa3326ed7b7f794ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 b/modules/sync/googleapis/cloud-run/cas/698b9063ecb2a150d4b082d925f5519094f2f7fadf44008a9b35da579a20da9e673739efa3326ed7b7f794ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 new file mode 100644 index 00000000..a2d6ae0e --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/698b9063ecb2a150d4b082d925f5519094f2f7fadf44008a9b35da579a20da9e673739efa3326ed7b7f794ecbfba02a92e3ae35eb163d9c8ec99d4c1cc5b6d36 @@ -0,0 +1,280 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "VendorSettingsProto"; +option java_package = "com.google.cloud.run.v2"; +option (google.api.resource_definition) = { + type: "binaryauthorization.googleapis.com/Policy" + pattern: "projects/{project}/policy" + pattern: "locations/{location}/policy" +}; +option (google.api.resource_definition) = { + type: "networkservices.googleapis.com/Mesh" + pattern: "projects/{project}/locations/{location}/meshes/{mesh}" +}; +option (google.api.resource_definition) = { + type: "cloudbuild.googleapis.com/Build" + pattern: "projects/{project}/locations/{location}/builds/{build}" +}; + +// VPC Access settings. For more information on sending traffic to a VPC +// network, visit https://cloud.google.com/run/docs/configuring/connecting-vpc. +message VpcAccess { + // Egress options for VPC access. + enum VpcEgress { + // Unspecified + VPC_EGRESS_UNSPECIFIED = 0; + + // All outbound traffic is routed through the VPC connector. + ALL_TRAFFIC = 1; + + // Only private IP ranges are routed through the VPC connector. + PRIVATE_RANGES_ONLY = 2; + } + + // Direct VPC egress settings. + message NetworkInterface { + // Optional. The VPC network that the Cloud Run resource will be able to + // send traffic to. At least one of network or subnetwork must be specified. + // If both network and subnetwork are specified, the given VPC subnetwork + // must belong to the given VPC network. If network is not specified, it + // will be looked up from the subnetwork. + string network = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The VPC subnetwork that the Cloud Run resource will get IPs + // from. At least one of network or subnetwork must be specified. If both + // network and subnetwork are specified, the given VPC subnetwork must + // belong to the given VPC network. If subnetwork is not specified, the + // subnetwork with the same name with the network will be used. + string subnetwork = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Network tags applied to this Cloud Run resource. + repeated string tags = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // VPC Access connector name. + // Format: `projects/{project}/locations/{location}/connectors/{connector}`, + // where `{project}` can be project id or number. + // For more information on sending traffic to a VPC network via a connector, + // visit https://cloud.google.com/run/docs/configuring/vpc-connectors. + string connector = 1 [(google.api.resource_reference) = { + type: "vpcaccess.googleapis.com/Connector" + }]; + + // Optional. Traffic VPC egress settings. If not provided, it defaults to + // PRIVATE_RANGES_ONLY. + VpcEgress egress = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Direct VPC egress settings. Currently only single network + // interface is supported. + repeated NetworkInterface network_interfaces = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for Binary Authorization feature. +message BinaryAuthorization { + oneof binauthz_method { + // Optional. If True, indicates to use the default project's binary + // authorization policy. If False, binary authorization will be disabled. + bool use_default = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The path to a binary authorization policy. + // Format: `projects/{project}/platforms/cloudRun/{policy-name}` + string policy = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "binaryauthorization.googleapis.com/Policy" + } + ]; + } + + // Optional. If present, indicates to use Breakglass using this justification. + // If use_default is False, then it must be empty. + // For more information on breakglass, see + // https://cloud.google.com/binary-authorization/docs/using-breakglass + string breakglass_justification = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for revision-level scaling settings. +message RevisionScaling { + // Optional. Minimum number of serving instances that this resource should + // have. + int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of serving instances that this resource should + // have. When unspecified, the field is set to the server default value of + // 100. For more information see + // https://cloud.google.com/run/docs/configuring/max-instances + int32 max_instance_count = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for Cloud Service Mesh. For more information see +// https://cloud.google.com/service-mesh/docs/overview. +message ServiceMesh { + // The Mesh resource name. Format: + // `projects/{project}/locations/global/meshes/{mesh}`, where `{project}` can + // be project id or number. + string mesh = 1 [(google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + }]; +} + +// Scaling settings applied at the service level rather than +// at the revision level. +message ServiceScaling { + // The scaling mode for the service. If not provided, it defaults to + // AUTOMATIC. + enum ScalingMode { + // Unspecified. + SCALING_MODE_UNSPECIFIED = 0; + + // Scale based on traffic between min and max instances. + AUTOMATIC = 1; + + // Scale to exactly min instances and ignore max instances. + MANUAL = 2; + } + + // Optional. total min instances for the service. This number of instances is + // divided among all revisions with specified traffic based on the percent + // of traffic they are receiving. + int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The scaling mode for the service. + ScalingMode scaling_mode = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. total instance count for the service in manual scaling mode. This + // number of instances is divided among all revisions with specified traffic + // based on the percent of traffic they are receiving. + optional int32 manual_instance_count = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Worker pool scaling settings. +message WorkerPoolScaling { + // Optional. The total number of instances in manual scaling mode. + optional int32 manual_instance_count = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Hardware constraints configuration. +message NodeSelector { + // Required. GPU accelerator type to attach to an instance. + string accelerator = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Describes the Build step of the function that builds a container from the +// given source. +message BuildConfig { + // Output only. The Cloud Build name of the latest successful deployment of + // the function. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/Build" + } + ]; + + // The Cloud Storage bucket URI where the function source code is located. + string source_location = 2; + + // Optional. The name of the function (as defined in source code) that will be + // executed. Defaults to the resource name suffix, if not specified. For + // backward compatibility, if function with given name is not found, then the + // system will try to use function named "function". + string function_target = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Artifact Registry URI to store the built image. + string image_uri = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The base image used to build the function. + string base_image = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Sets whether the function will receive automatic base image + // updates. + bool enable_automatic_updates = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Name of the Cloud Build Custom Worker Pool that should be used to + // build the Cloud Run function. The format of this field is + // `projects/{project}/locations/{region}/workerPools/{workerPool}` where + // `{project}` and `{region}` are the project id and region respectively where + // the worker pool is defined and `{workerPool}` is the short name of the + // worker pool. + string worker_pool = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/BuildWorkerPool" + } + ]; + + // Optional. User-provided build-time environment variables for the function + map environment_variables = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Service account to be used for building the container. The format + // of this field is + // `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`. + string service_account = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// Allowed ingress traffic for the Container. +enum IngressTraffic { + // Unspecified + INGRESS_TRAFFIC_UNSPECIFIED = 0; + + // All inbound traffic is allowed. + INGRESS_TRAFFIC_ALL = 1; + + // Only internal traffic is allowed. + INGRESS_TRAFFIC_INTERNAL_ONLY = 2; + + // Both internal and Google Cloud Load Balancer traffic is allowed. + INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER = 3; + + // No ingress traffic is allowed. + INGRESS_TRAFFIC_NONE = 4; +} + +// Alternatives for execution environments. +enum ExecutionEnvironment { + // Unspecified + EXECUTION_ENVIRONMENT_UNSPECIFIED = 0; + + // Uses the First Generation environment. + EXECUTION_ENVIRONMENT_GEN1 = 1; + + // Uses Second Generation environment. + EXECUTION_ENVIRONMENT_GEN2 = 2; +} + +// Specifies behavior if an encryption key used by a resource is revoked. +enum EncryptionKeyRevocationAction { + // Unspecified + ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED = 0; + + // Prevents the creation of new instances. + PREVENT_NEW = 1; + + // Shuts down existing instances, and prevents creation of new ones. + SHUTDOWN = 2; +} diff --git a/modules/sync/googleapis/cloud-run/cas/9b10245c1d6102929fd2a97a304ef9ca557085d065b142ba4b702942b835499aa600047b138ea39ab436897f75a37f5bf57989d59d6c80d13c68ae32be04c370 b/modules/sync/googleapis/cloud-run/cas/9b10245c1d6102929fd2a97a304ef9ca557085d065b142ba4b702942b835499aa600047b138ea39ab436897f75a37f5bf57989d59d6c80d13c68ae32be04c370 new file mode 100644 index 00000000..06bab9c6 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/9b10245c1d6102929fd2a97a304ef9ca557085d065b142ba4b702942b835499aa600047b138ea39ab436897f75a37f5bf57989d59d6c80d13c68ae32be04c370 @@ -0,0 +1,73 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/cloud/run/v2/task_template.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "ExecutionTemplateProto"; +option java_package = "com.google.cloud.run.v2"; + +// ExecutionTemplate describes the data an execution should have when created +// from a template. +message ExecutionTemplate { + // Unstructured key value map that can be used to organize and categorize + // objects. + // User-provided labels are shared with Google's billing system, so they can + // be used to filter, or break down billing charges by team, component, + // environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + //

Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 ExecutionTemplate. + map labels = 1; + + // Unstructured key value map that may be set by external tools to store and + // arbitrary metadata. They are not queryable and should be preserved + // when modifying objects. + // + //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system annotations in v1 now + // have a corresponding field in v2 ExecutionTemplate. + // + //

This field follows Kubernetes annotations' namespacing, limits, and + // rules. + map annotations = 2; + + // Optional. Specifies the maximum desired number of tasks the execution + // should run at given time. When the job is run, if this field is 0 or unset, + // the maximum possible value will be used for that execution. The actual + // number of tasks running in steady state will be less than this number when + // there are fewer tasks waiting to be completed remaining, i.e. when the work + // left to do is less than max parallelism. + int32 parallelism = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Specifies the desired number of tasks the execution should run. + // Setting to 1 means that parallelism is limited to 1 and the success of + // that task signals the success of the execution. Defaults to 1. + int32 task_count = 4; + + // Required. Describes the task(s) that will be created when executing an + // execution. + TaskTemplate template = 5 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/a3116e013707580dc19a9a112b3920c778e8fd482166984ce047a9f4f7b80ff07ee6315a1a9b56a3340f7117cf440514b824283dc0ad7b383a42acbd06897ab7 b/modules/sync/googleapis/cloud-run/cas/a3116e013707580dc19a9a112b3920c778e8fd482166984ce047a9f4f7b80ff07ee6315a1a9b56a3340f7117cf440514b824283dc0ad7b383a42acbd06897ab7 new file mode 100644 index 00000000..96ff199c --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/a3116e013707580dc19a9a112b3920c778e8fd482166984ce047a9f4f7b80ff07ee6315a1a9b56a3340f7117cf440514b824283dc0ad7b383a42acbd06897ab7 @@ -0,0 +1,331 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; +import "google/api/routing.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/status.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "RevisionProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Revision Control Plane API. +service Revisions { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets information about a Revision. + rpc GetRevision(GetRevisionRequest) returns (Revision) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + additional_bindings { + get: "/v2/{name=projects/*/locations/*/workerPools/*/revisions/*}" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists Revisions from a given Service, or from a given location. Results + // are sorted by creation time, descending. + rpc ListRevisions(ListRevisionsRequest) returns (ListRevisionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/services/*}/revisions" + additional_bindings { + get: "/v2/{parent=projects/*/locations/*/workerPools/*}/revisions" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a Revision. + rpc DeleteRevision(DeleteRevisionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/services/*/revisions/*}" + additional_bindings { + delete: "/v2/{name=projects/*/locations/*/workerPools/*/revisions/*}" + } + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Revision" + metadata_type: "Revision" + }; + } +} + +// Request message for obtaining a Revision by its full name. +message GetRevisionRequest { + // Required. The full name of the Revision. + // Format: + // projects/{project}/locations/{location}/services/{service}/revisions/{revision} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; +} + +// Request message for retrieving a list of Revisions. +message ListRevisionsRequest { + // Required. The Service from which the Revisions should be listed. + // To list all Revisions across Services, use "-" instead of Service name. + // Format: + // projects/{project}/locations/{location}/services/{service} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Revision" + } + ]; + + // Maximum number of revisions to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListRevisions. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Revisions. +message ListRevisionsResponse { + // The resulting list of Revisions. + repeated Revision revisions = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListRevisions request to continue. + string next_page_token = 2; +} + +// Request message for deleting a retired Revision. +// Revision lifecycle is usually managed by making changes to the parent +// Service. Only retired revisions can be deleted with this API. +message DeleteRevisionRequest { + // Required. The name of the Revision to delete. + // Format: + // projects/{project}/locations/{location}/services/{service}/revisions/{revision} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the + // resource. This may be used to detect modification conflict during updates. + string etag = 3; +} + +// A Revision is an immutable snapshot of code and configuration. A Revision +// references a container image. Revisions are only created by updates to its +// parent Service. +message Revision { + option (google.api.resource) = { + type: "run.googleapis.com/Revision" + pattern: "projects/{project}/locations/{location}/services/{service}/revisions/{revision}" + style: DECLARATIVE_FRIENDLY + }; + + // Output only. The unique name of this Revision. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server assigned unique identifier for the Revision. The value + // is a UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + int64 generation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that may + // be set by external tools to store and arbitrary metadata. + // They are not queryable and should be preserved + // when modifying objects. + map annotations = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the deletion time. It is only + // populated as a response to a Delete request. + google.protobuf.Timestamp delete_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. It is only populated as a response to a Delete + // request. + google.protobuf.Timestamp expire_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The least stable launch stage needed to create this resource, as defined by + // [Google Cloud Platform Launch + // Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports + // `ALPHA`, `BETA`, and `GA`. + // + // Note that this value might not be what was used + // as input. For example, if ALPHA was provided as input in the parent + // resource, but only BETA and GA-level features are were, this field will be + // BETA. + google.api.LaunchStage launch_stage = 10; + + // Output only. The name of the parent service. + string service = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Service" } + ]; + + // Scaling settings for this revision. + RevisionScaling scaling = 12; + + // VPC Access configuration for this Revision. For more information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 13; + + // Sets the maximum number of requests that each serving instance can receive. + int32 max_instance_request_concurrency = 34; + + // Max allowed time for an instance to respond to a request. + google.protobuf.Duration timeout = 15; + + // Email address of the IAM service account associated with the revision of + // the service. The service account represents the identity of the running + // revision, and determines what permissions the revision has. + string service_account = 16; + + // Holds the single container that defines the unit of execution for this + // Revision. + repeated Container containers = 17; + + // A list of Volumes to make available to containers. + repeated Volume volumes = 18; + + // The execution environment being used to host this Revision. + ExecutionEnvironment execution_environment = 20; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 21 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Enables service mesh connectivity. + ServiceMesh service_mesh = 22; + + // The action to take if the encryption key is revoked. + EncryptionKeyRevocationAction encryption_key_revocation_action = 23; + + // If encryption_key_revocation_action is SHUTDOWN, the duration before + // shutting down all instances. The minimum increment is 1 hour. + google.protobuf.Duration encryption_key_shutdown_duration = 24; + + // Output only. Indicates whether the resource's reconciliation is still in + // progress. See comments in `Service.reconciling` for additional information + // on reconciliation process in Cloud Run. + bool reconciling = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Revision, containing its readiness + // status, and detailed error information in case it did not reach a serving + // state. + repeated Condition conditions = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The generation of this Revision currently serving traffic. See + // comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + int64 observed_generation = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Google Console URI to obtain logs for the Revision. + string log_uri = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Enable session affinity. + bool session_affinity = 38; + + // Output only. The current effective scaling settings for the revision. + RevisionScalingStatus scaling_status = 39 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The node selector for the revision. + NodeSelector node_selector = 40; + + // Optional. Output only. True if GPU zonal redundancy is disabled on this + // revision. + optional bool gpu_zonal_redundancy_disabled = 48 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. Email address of the authenticated creator. + string creator = 49 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/a6b41900b595350874f9119e3f98a5ab7cf32b2c013b21023ae33bfde0d8c9929bd4f08326f647421679e263875bef64f04783ee3c4c00af3674c013a5cbc93a b/modules/sync/googleapis/cloud-run/cas/a6b41900b595350874f9119e3f98a5ab7cf32b2c013b21023ae33bfde0d8c9929bd4f08326f647421679e263875bef64f04783ee3c4c00af3674c013a5cbc93a new file mode 100644 index 00000000..1f619b55 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/a6b41900b595350874f9119e3f98a5ab7cf32b2c013b21023ae33bfde0d8c9929bd4f08326f647421679e263875bef64f04783ee3c4c00af3674c013a5cbc93a @@ -0,0 +1,28 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "StatusProto"; +option java_package = "com.google.cloud.run.v2"; + +// Effective settings for the current revision +message RevisionScalingStatus { + // The current number of min instances provisioned for this revision. + int32 desired_min_instance_count = 1; +} diff --git a/modules/sync/googleapis/cloud-run/cas/a74ee38da0d51dde536ac3e9fc32337fe7b51611018b31d5fa3eabbd6fffdc4051b5d668e968a87ccb6beb9c14c37cb57e995ca15a864e2fa57ea3718672c56a b/modules/sync/googleapis/cloud-run/cas/a74ee38da0d51dde536ac3e9fc32337fe7b51611018b31d5fa3eabbd6fffdc4051b5d668e968a87ccb6beb9c14c37cb57e995ca15a864e2fa57ea3718672c56a new file mode 100644 index 00000000..ed0e0d91 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/a74ee38da0d51dde536ac3e9fc32337fe7b51611018b31d5fa3eabbd6fffdc4051b5d668e968a87ccb6beb9c14c37cb57e995ca15a864e2fa57ea3718672c56a @@ -0,0 +1,21 @@ +**This is a third-party repository managed by Buf.** + +This module contains types from the +[googleapis/cloud/run](https://github.com/googleapis/googleapis/tree/master/google/cloud) inner +package. + +The [source repository](https://github.com/googleapis/googleapis) is already being synced onto +`googleapis/googleapis`, which is a dependency of this module. To use Google's `cloud-run` APIs, +create your own module that has a `dep` on `buf.build/googleapis/cloud-run`. + +Updates to the [source repository](https://github.com/googleapis/googleapis) are automatically +synced on a periodic basis, and each BSR commit is tagged with corresponding Git commits. + +To depend on a specific Git commit, you can use it as your reference in your dependencies: + +``` +deps: + - buf.build/googleapis/cloud-run: +``` + +For more information, see the [documentation](https://buf.build/docs/bsr/overview). diff --git a/modules/sync/googleapis/cloud-run/cas/b1c4098519949e5898c3a6297c720e10ea3b163cc4f55b6ffb813d0a977c64c6d18ba33002b3c3dec271affd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 b/modules/sync/googleapis/cloud-run/cas/b1c4098519949e5898c3a6297c720e10ea3b163cc4f55b6ffb813d0a977c64c6d18ba33002b3c3dec271affd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 new file mode 100644 index 00000000..ece315e6 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/b1c4098519949e5898c3a6297c720e10ea3b163cc4f55b6ffb813d0a977c64c6d18ba33002b3c3dec271affd3a56f1ab5c5cc229402bfc06c0a8d15e9d1709d0 @@ -0,0 +1,131 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "RevisionTemplateProto"; +option java_package = "com.google.cloud.run.v2"; + +// RevisionTemplate describes the data a revision should have when created from +// a template. +message RevisionTemplate { + // Optional. The unique name for the revision. If this field is omitted, it + // will be automatically generated based on the Service name. + string revision = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + //

Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 RevisionTemplate. + map labels = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. + // + //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system annotations in v1 now + // have a corresponding field in v2 RevisionTemplate. + // + //

This field follows Kubernetes annotations' namespacing, limits, and + // rules. + map annotations = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Scaling settings for this Revision. + RevisionScaling scaling = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. VPC Access configuration to use for this Revision. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Max allowed time for an instance to respond to a request. + google.protobuf.Duration timeout = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email address of the IAM service account associated with the + // revision of the service. The service account represents the identity of the + // running revision, and determines what permissions the revision has. If not + // provided, the revision will use the project's default service account. + string service_account = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Holds the single container that defines the unit of execution for this + // Revision. + repeated Container containers = 10; + + // Optional. A list of Volumes to make available to containers. + repeated Volume volumes = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The sandbox environment to host this Revision. + ExecutionEnvironment execution_environment = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 14 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Optional. Sets the maximum number of requests that each serving instance + // can receive. If not specified or 0, concurrency defaults to 80 when + // requested `CPU >= 1` and defaults to 1 when requested `CPU < 1`. + int32 max_instance_request_concurrency = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enables service mesh connectivity. + ServiceMesh service_mesh = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The action to take if the encryption key is revoked. + EncryptionKeyRevocationAction encryption_key_revocation_action = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If encryption_key_revocation_action is SHUTDOWN, the duration + // before shutting down all instances. The minimum increment is 1 hour. + google.protobuf.Duration encryption_key_shutdown_duration = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enable session affinity. + bool session_affinity = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disables health checking containers during deployment. + bool health_check_disabled = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The node selector for the revision template. + NodeSelector node_selector = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. True if GPU zonal redundancy is disabled on this revision. + optional bool gpu_zonal_redundancy_disabled = 24 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/c4797a5ead210cb7387dd6515eceae9e8f28d0119a9bc0be268782ece6a10a22adeb880fd574c6abb41a898575f57abf4034296cc46385bb2f39da781ee2efab b/modules/sync/googleapis/cloud-run/cas/c4797a5ead210cb7387dd6515eceae9e8f28d0119a9bc0be268782ece6a10a22adeb880fd574c6abb41a898575f57abf4034296cc46385bb2f39da781ee2efab new file mode 100644 index 00000000..fa9b0766 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/c4797a5ead210cb7387dd6515eceae9e8f28d0119a9bc0be268782ece6a10a22adeb880fd574c6abb41a898575f57abf4034296cc46385bb2f39da781ee2efab @@ -0,0 +1,496 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; +import "google/api/routing.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/revision_template.proto"; +import "google/cloud/run/v2/traffic_target.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "ServiceProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Service Control Plane API +service Services { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a new Service in a given project and location. + rpc CreateService(CreateServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/services" + body: "service" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent,service,service_id"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Gets information about a Service. + rpc GetService(GetServiceRequest) returns (Service) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/services/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists Services. Results are sorted by creation time, descending. + rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/services" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a Service. + rpc UpdateService(UpdateServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{service.name=projects/*/locations/*/services/*}" + body: "service" + }; + option (google.api.routing) = { + routing_parameters { + field: "service.name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "service"; + option (google.api.method_signature) = "service,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Deletes a Service. + // This will cause the Service to stop serving traffic and will delete all + // revisions. + rpc DeleteService(DeleteServiceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/services/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Service" + metadata_type: "Service" + }; + } + + // Gets the IAM Access Control policy currently in effect for the given + // Cloud Run Service. This result does not include any inherited policies. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v2/{resource=projects/*/locations/*/services/*}:getIamPolicy" + }; + } + + // Sets the IAM Access control policy for the specified Service. Overwrites + // any existing policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/services/*}:setIamPolicy" + body: "*" + }; + } + + // Returns permissions that a caller has on the specified Project. + // + // There are no permissions required for making this API call. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/services/*}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for creating a Service. +message CreateServiceRequest { + // Required. The location and project in which this service should be created. + // Format: projects/{project}/locations/{location}, where {project} can be + // project id or number. Only lowercase characters, digits, and hyphens. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Service" + } + ]; + + // Required. The Service instance to create. + Service service = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique identifier for the Service. It must begin with letter, + // and cannot end with hyphen; must contain fewer than 50 characters. + // The name of the service becomes {parent}/services/{service_id}. + string service_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // populated, without persisting the request or creating any resources. + bool validate_only = 4; +} + +// Request message for updating a service. +message UpdateServiceRequest { + // Optional. The list of fields to be updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The Service to be updated. + Service service = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // populated, without persisting the request or updating any resources. + bool validate_only = 3; + + // Optional. If set to true, and if the Service does not exist, it will create + // a new one. The caller must have 'run.services.create' permissions if this + // is set to true and the Service does not exist. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for retrieving a list of Services. +message ListServicesRequest { + // Required. The location and project to list resources on. + // Location must be a valid Google Cloud region, and cannot be the "-" + // wildcard. Format: projects/{project}/locations/{location}, where {project} + // can be project id or number. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Service" + } + ]; + + // Maximum number of Services to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListServices. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Services. +message ListServicesResponse { + // The resulting list of Services. + repeated Service services = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListServices request to continue. + string next_page_token = 2; +} + +// Request message for obtaining a Service by its full name. +message GetServiceRequest { + // Required. The full name of the Service. + // Format: projects/{project}/locations/{location}/services/{service}, where + // {project} can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Service" } + ]; +} + +// Request message to delete a Service by its full name. +message DeleteServiceRequest { + // Required. The full name of the Service. + // Format: projects/{project}/locations/{location}/services/{service}, where + // {project} can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Service" } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 3; +} + +// Service acts as a top-level container that manages a set of +// configurations and revision templates which implement a network service. +// Service exists to provide a singular abstraction which can be access +// controlled, reasoned about, and which encapsulates software lifecycle +// decisions such as rollout policy and team resource ownership. +message Service { + option (google.api.resource) = { + type: "run.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/services/{service}" + style: DECLARATIVE_FRIENDLY + }; + + // The fully qualified name of this Service. In CreateServiceRequest, this + // field is ignored, and instead composed from CreateServiceRequest.parent and + // CreateServiceRequest.service_id. + // + // Format: + // projects/{project}/locations/{location}/services/{service_id} + string name = 1; + + // User-provided description of the Service. This field currently has a + // 512-character limit. + string description = 2; + + // Output only. Server assigned unique identifier for the trigger. The value + // is a UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + // Please note that unlike v1, this is an int64 value. As with most Google + // APIs, its JSON representation will be a `string` instead of an `integer`. + int64 generation = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + //

Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 Service. + map labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. + // + //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected in new resources. All system + // annotations in v1 now have a corresponding field in v2 Service. + // + //

This field follows Kubernetes + // annotations' namespacing, limits, and rules. + map annotations = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The deletion time. It is only populated as a response to a + // Delete request. + google.protobuf.Timestamp delete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permanently deleted. + google.protobuf.Timestamp expire_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the authenticated creator. + string creator = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the last authenticated modifier. + string last_modifier = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Arbitrary identifier for the API client. + string client = 13; + + // Arbitrary version identifier for the API client. + string client_version = 14; + + // Optional. Provides the ingress settings for this Service. On output, + // returns the currently observed ingress settings, or + // INGRESS_TRAFFIC_UNSPECIFIED if no revision is active. + IngressTraffic ingress = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The launch stage as defined by [Google Cloud Platform + // Launch Stages](https://cloud.google.com/terms/launch-stages). + // Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA + // is assumed. + // Set the launch stage to a preview stage on input to allow use of preview + // features in that stage. On read (or output), describes whether the resource + // uses preview features. + // + // For example, if ALPHA is provided as input, but only BETA and GA-level + // features are used, this field will be BETA on output. + google.api.LaunchStage launch_stage = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Settings for the Binary Authorization feature. + BinaryAuthorization binary_authorization = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The template used to create revisions for this Service. + RevisionTemplate template = 18 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies how to distribute traffic over a collection of + // Revisions belonging to the Service. If traffic is empty or not provided, + // defaults to 100% traffic to the latest `Ready` Revision. + repeated TrafficTarget traffic = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies service-level scaling settings + ServiceScaling scaling = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disables IAM permission check for run.routes.invoke for callers + // of this service. This feature is available by invitation only. For more + // information, visit + // https://cloud.google.com/run/docs/securing/managing-access#invoker_check. + bool invoker_iam_disabled = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Disables public resolution of the default URI of this service. + bool default_uri_disabled = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. All URLs serving traffic for this Service. + repeated string urls = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // One or more custom audiences that you want this service to support. Specify + // each custom audience as the full URL in a string. The custom audiences are + // encoded in the token and used to authenticate requests. For more + // information, see + // https://cloud.google.com/run/docs/configuring/custom-audiences. + repeated string custom_audiences = 37; + + // Output only. The generation of this Service currently serving traffic. See + // comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. Please note that unlike v1, this is an int64 value. + // As with most Google APIs, its JSON representation will be a `string` + // instead of an `integer`. + int64 observed_generation = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Service, containing its readiness + // status, and detailed error information in case it did not reach a serving + // state. See comments in `reconciling` for additional information on + // reconciliation process in Cloud Run. + Condition terminal_condition = 31 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Conditions of all other associated sub-resources. They + // contain additional diagnostics information in case the Service does not + // reach its Serving state. See comments in `reconciling` for additional + // information on reconciliation process in Cloud Run. + repeated Condition conditions = 32 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the latest revision that is serving traffic. See + // comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + string latest_ready_revision = 33 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Output only. Name of the last created revision. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + string latest_created_revision = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Output only. Detailed status information for corresponding traffic targets. + // See comments in `reconciling` for additional information on reconciliation + // process in Cloud Run. + repeated TrafficTargetStatus traffic_statuses = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The main URI in which this Service is serving traffic. + string uri = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Configuration for building a Cloud Run function. + BuildConfig build_config = 41 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Returns true if the Service is currently being acted upon by + // the system to bring it into the desired state. + // + // When a new Service is created, or an existing one is updated, Cloud Run + // will asynchronously perform all necessary steps to bring the Service to the + // desired serving state. This process is called reconciliation. + // While reconciliation is in process, `observed_generation`, + // `latest_ready_revision`, `traffic_statuses`, and `uri` will have transient + // values that might mismatch the intended state: Once reconciliation is over + // (and this field is false), there are two possible outcomes: reconciliation + // succeeded and the serving state matches the Service, or there was an error, + // and reconciliation failed. This state can be found in + // `terminal_condition.state`. + // + // If reconciliation succeeded, the following fields will match: `traffic` and + // `traffic_statuses`, `observed_generation` and `generation`, + // `latest_ready_revision` and `latest_created_revision`. + // + // If reconciliation failed, `traffic_statuses`, `observed_generation`, and + // `latest_ready_revision` will have the state of the last serving revision, + // or empty for newly created Services. Additional information on the failure + // can be found in `terminal_condition` and `conditions`. + bool reconciling = 98 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/ca18e180197455095b117e49ab5e3df2c760f7fe170bcdb880e9e8ac97a7aefe2ba97c24d54d5d140e3b73e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a b/modules/sync/googleapis/cloud-run/cas/ca18e180197455095b117e49ab5e3df2c760f7fe170bcdb880e9e8ac97a7aefe2ba97c24d54d5d140e3b73e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a new file mode 100644 index 00000000..8b591540 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/ca18e180197455095b117e49ab5e3df2c760f7fe170bcdb880e9e8ac97a7aefe2ba97c24d54d5d140e3b73e14c7ef4d3c1543d8a9b9d8347be635dba6313fb8a @@ -0,0 +1,291 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "TaskProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Task Control Plane API. +service Tasks { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets information about a Task. + rpc GetTask(GetTaskRequest) returns (Task) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/jobs/*/executions/*/tasks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Tasks from an Execution of a Job. + rpc ListTasks(ListTasksRequest) returns (ListTasksResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/jobs/*/executions/*}/tasks" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for obtaining a Task by its full name. +message GetTaskRequest { + // Required. The full name of the Task. + // Format: + // projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Task" } + ]; +} + +// Request message for retrieving a list of Tasks. +message ListTasksRequest { + // Required. The Execution from which the Tasks should be listed. + // To list all Tasks across Executions of a Job, use "-" instead of Execution + // name. To list all Tasks across Jobs, use "-" instead of Job name. Format: + // projects/{project}/locations/{location}/jobs/{job}/executions/{execution} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { child_type: "run.googleapis.com/Task" } + ]; + + // Maximum number of Tasks to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListTasks. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Tasks. +message ListTasksResponse { + // The resulting list of Tasks. + repeated Task tasks = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListTasks request to continue. + string next_page_token = 2; +} + +// Task represents a single run of a container to completion. +message Task { + option (google.api.resource) = { + type: "run.googleapis.com/Task" + pattern: "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}" + style: DECLARATIVE_FRIENDLY + }; + + // Output only. The unique name of this Task. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server assigned unique identifier for the Task. The value is a + // UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + int64 generation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that may + // be set by external tools to store and arbitrary metadata. + // They are not queryable and should be preserved + // when modifying objects. + map annotations = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the task was created by the system. + // It is not guaranteed to be set in happens-before order across separate + // operations. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the task was scheduled to run by the + // system. It is not guaranteed to be set in happens-before order across + // separate operations. + google.protobuf.Timestamp scheduled_time = 34 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the task started to run. + // It is not guaranteed to be set in happens-before order across separate + // operations. + google.protobuf.Timestamp start_time = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the Task was completed. It is not + // guaranteed to be set in happens-before order across separate operations. + google.protobuf.Timestamp completion_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the deletion time. It is only + // populated as a response to a Delete request. + google.protobuf.Timestamp delete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. It is only populated as a response to a Delete + // request. + google.protobuf.Timestamp expire_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the parent Job. + string job = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Job" } + ]; + + // Output only. The name of the parent Execution. + string execution = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } + ]; + + // Holds the single container that defines the unit of execution for this + // task. + repeated Container containers = 14; + + // A list of Volumes to make available to containers. + repeated Volume volumes = 15; + + // Number of retries allowed per Task, before marking this Task failed. + int32 max_retries = 16; + + // Max allowed time duration the Task may be active before the system will + // actively try to mark it failed and kill associated containers. This applies + // per attempt of a task, meaning each retry can run for the full timeout. + google.protobuf.Duration timeout = 17; + + // Email address of the IAM service account associated with the Task of a + // Job. The service account represents the identity of the + // running task, and determines what permissions the task has. If + // not provided, the task will use the project's default service account. + string service_account = 18; + + // The execution environment being used to host this Task. + ExecutionEnvironment execution_environment = 20; + + // Output only. Indicates whether the resource's reconciliation is still in + // progress. See comments in `Job.reconciling` for additional information on + // reconciliation process in Cloud Run. + bool reconciling = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Task, containing its readiness status, + // and detailed error information in case it did not reach the desired state. + repeated Condition conditions = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The generation of this Task. See comments in `Job.reconciling` + // for additional information on reconciliation process in Cloud Run. + int64 observed_generation = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Index of the Task, unique per execution, and beginning at 0. + int32 index = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of times this Task was retried. + // Tasks are retried when they fail up to the maxRetries limit. + int32 retried = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Result of the last attempt of this Task. + TaskAttemptResult last_attempt_result = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A reference to a customer managed encryption key (CMEK) to use + // to encrypt this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 28 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + + // Output only. VPC Access configuration to use for this Task. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URI where logs for this execution can be found in Cloud + // Console. + string log_uri = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The node selector for the task. + NodeSelector node_selector = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Output only. True if GPU zonal redundancy is disabled on this + // task. + optional bool gpu_zonal_redundancy_disabled = 37 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Result of a task attempt. +message TaskAttemptResult { + // Output only. The status of this attempt. + // If the status code is OK, then the attempt succeeded. + google.rpc.Status status = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The exit code of this attempt. + // This may be unset if the container was unable to exit cleanly with a code + // due to some other failure. + // See status field for possible failure details. + // + // At most one of exit_code or term_signal will be set. + int32 exit_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Termination signal of the container. This is set to non-zero + // if the container is terminated by the system. + // + // At most one of exit_code or term_signal will be set. + int32 term_signal = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/cc8339cfff2ccd0b606c8a9a51adba281fe7750feb0e5b76346e693ecd2655ecb94824c1f7e370561196ccc2219a3b6fdca0e3461e9097f769235971f6238774 b/modules/sync/googleapis/cloud-run/cas/cc8339cfff2ccd0b606c8a9a51adba281fe7750feb0e5b76346e693ecd2655ecb94824c1f7e370561196ccc2219a3b6fdca0e3461e9097f769235971f6238774 new file mode 100644 index 00000000..753179e8 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/cc8339cfff2ccd0b606c8a9a51adba281fe7750feb0e5b76346e693ecd2655ecb94824c1f7e370561196ccc2219a3b6fdca0e3461e9097f769235971f6238774 @@ -0,0 +1,4 @@ +version: v1 +name: buf.build/googleapis/cloud-run +deps: + - buf.build/googleapis/googleapis diff --git a/modules/sync/googleapis/cloud-run/cas/d6e77912b006042b083274bc3c727d3ca9060019752813a46decf94c6424f97d7dce1153b219e9bfc8f75cb920c8e644dce95d5bc09efde97aa40313078460ba b/modules/sync/googleapis/cloud-run/cas/d6e77912b006042b083274bc3c727d3ca9060019752813a46decf94c6424f97d7dce1153b219e9bfc8f75cb920c8e644dce95d5bc09efde97aa40313078460ba new file mode 100644 index 00000000..ffe11c0c --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/d6e77912b006042b083274bc3c727d3ca9060019752813a46decf94c6424f97d7dce1153b219e9bfc8f75cb920c8e644dce95d5bc09efde97aa40313078460ba @@ -0,0 +1,80 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "TaskTemplateProto"; +option java_package = "com.google.cloud.run.v2"; + +// TaskTemplate describes the data a task should have when created +// from a template. +message TaskTemplate { + // Holds the single container that defines the unit of execution for this + // task. + repeated Container containers = 1; + + // Optional. A list of Volumes to make available to containers. + repeated Volume volumes = 2 [(google.api.field_behavior) = OPTIONAL]; + + oneof retries { + // Number of retries allowed per Task, before marking this Task failed. + // Defaults to 3. + int32 max_retries = 3; + } + + // Optional. Max allowed time duration the Task may be active before the + // system will actively try to mark it failed and kill associated containers. + // This applies per attempt of a task, meaning each retry can run for the full + // timeout. Defaults to 600 seconds. + google.protobuf.Duration timeout = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email address of the IAM service account associated with the Task + // of a Job. The service account represents the identity of the running task, + // and determines what permissions the task has. If not provided, the task + // will use the project's default service account. + string service_account = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The execution environment being used to host this Task. + ExecutionEnvironment execution_environment = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 7 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Optional. VPC Access configuration to use for this Task. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The node selector for the task template. + NodeSelector node_selector = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. True if GPU zonal redundancy is disabled on this task template. + optional bool gpu_zonal_redundancy_disabled = 12 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/d7bb3f74ae0efa66a0462ca44cc52f286a0852a973ef06d1904017cad21a1c6b0f8842ccd9498fba00fd1d5d00b2461f82eb1be1c368db804bc6eb0d5a837433 b/modules/sync/googleapis/cloud-run/cas/d7bb3f74ae0efa66a0462ca44cc52f286a0852a973ef06d1904017cad21a1c6b0f8842ccd9498fba00fd1d5d00b2461f82eb1be1c368db804bc6eb0d5a837433 new file mode 100644 index 00000000..5b24360c --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/d7bb3f74ae0efa66a0462ca44cc52f286a0852a973ef06d1904017cad21a1c6b0f8842ccd9498fba00fd1d5d00b2461f82eb1be1c368db804bc6eb0d5a837433 @@ -0,0 +1,540 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; +import "google/api/routing.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/execution.proto"; +import "google/cloud/run/v2/execution_template.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/iam/v1/iam_policy.proto"; +import "google/iam/v1/policy.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "JobProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Job Control Plane API. +service Jobs { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Job. + rpc CreateJob(CreateJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/jobs" + body: "job" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent,job,job_id"; + option (google.longrunning.operation_info) = { + response_type: "Job" + metadata_type: "Job" + }; + } + + // Gets information about a Job. + rpc GetJob(GetJobRequest) returns (Job) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/jobs/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + } + + // Lists Jobs. Results are sorted by creation time, descending. + rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/jobs" + }; + option (google.api.routing) = { + routing_parameters { + field: "parent" + path_template: "projects/*/locations/{location=*}" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a Job. + rpc UpdateJob(UpdateJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v2/{job.name=projects/*/locations/*/jobs/*}" + body: "job" + }; + option (google.api.routing) = { + routing_parameters { + field: "job.name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "job"; + option (google.longrunning.operation_info) = { + response_type: "Job" + metadata_type: "Job" + }; + } + + // Deletes a Job. + rpc DeleteJob(DeleteJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/jobs/*}" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Job" + metadata_type: "Job" + }; + } + + // Triggers creation of a new Execution of this Job. + rpc RunJob(RunJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/jobs/*}:run" + body: "*" + }; + option (google.api.routing) = { + routing_parameters { + field: "name" + path_template: "projects/*/locations/{location=*}/**" + } + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Execution" + metadata_type: "Execution" + }; + } + + // Gets the IAM Access Control policy currently in effect for the given Job. + // This result does not include any inherited policies. + rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + get: "/v2/{resource=projects/*/locations/*/jobs/*}:getIamPolicy" + }; + } + + // Sets the IAM Access control policy for the specified Job. Overwrites + // any existing policy. + rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) + returns (google.iam.v1.Policy) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/jobs/*}:setIamPolicy" + body: "*" + }; + } + + // Returns permissions that a caller has on the specified Project. + // + // There are no permissions required for making this API call. + rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) + returns (google.iam.v1.TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v2/{resource=projects/*/locations/*/jobs/*}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for creating a Job. +message CreateJobRequest { + // Required. The location and project in which this Job should be created. + // Format: projects/{project}/locations/{location}, where {project} can be + // project id or number. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { child_type: "run.googleapis.com/Job" } + ]; + + // Required. The Job instance to create. + Job job = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique identifier for the Job. The name of the job becomes + // {parent}/jobs/{job_id}. + string job_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // populated, without persisting the request or creating any resources. + bool validate_only = 4; +} + +// Request message for obtaining a Job by its full name. +message GetJobRequest { + // Required. The full name of the Job. + // Format: projects/{project}/locations/{location}/jobs/{job}, where {project} + // can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Job" } + ]; +} + +// Request message for updating a Job. +message UpdateJobRequest { + // Required. The Job to be updated. + Job job = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates that the request should be validated and default values + // populated, without persisting the request or updating any resources. + bool validate_only = 3; + + // Optional. If set to true, and if the Job does not exist, it will create a + // new one. Caller must have both create and update permissions for this call + // if this is set to true. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for retrieving a list of Jobs. +message ListJobsRequest { + // Required. The location and project to list resources on. + // Format: projects/{project}/locations/{location}, where {project} can be + // project id or number. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { child_type: "run.googleapis.com/Job" } + ]; + + // Maximum number of Jobs to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListJobs. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Jobs. +message ListJobsResponse { + // The resulting list of Jobs. + repeated Job jobs = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListJobs request to continue. + string next_page_token = 2; +} + +// Request message to delete a Job by its full name. +message DeleteJobRequest { + // Required. The full name of the Job. + // Format: projects/{project}/locations/{location}/jobs/{job}, where {project} + // can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Job" } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 3; + + // A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 4; +} + +// Request message to create a new Execution of a Job. +message RunJobRequest { + // RunJob Overrides that contains Execution fields to be overridden. + message Overrides { + // Per-container override specification. + message ContainerOverride { + // The name of the container specified as a DNS_LABEL. + string name = 1; + + // Optional. Arguments to the entrypoint. Will replace existing args for + // override. + repeated string args = 2 [(google.api.field_behavior) = OPTIONAL]; + + // List of environment variables to set in the container. Will be merged + // with existing env for override. + repeated EnvVar env = 3; + + // Optional. True if the intention is to clear out existing args list. + bool clear_args = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Per container override specification. + repeated ContainerOverride container_overrides = 1; + + // Optional. The desired number of tasks the execution should run. Will + // replace existing task_count value. + int32 task_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Duration in seconds the task may be active before the system will + // actively try to mark it failed and kill associated containers. Will + // replace existing timeout_seconds value. + google.protobuf.Duration timeout = 4; + } + + // Required. The full name of the Job. + // Format: projects/{project}/locations/{location}/jobs/{job}, where {project} + // can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Job" } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 3; + + // Overrides specification for a given execution of a job. If provided, + // overrides will be applied to update the execution or task spec. + Overrides overrides = 4; +} + +// Job represents the configuration of a single job, which references a +// container image that is run to completion. +message Job { + option (google.api.resource) = { + type: "run.googleapis.com/Job" + pattern: "projects/{project}/locations/{location}/jobs/{job}" + style: DECLARATIVE_FRIENDLY + }; + + // The fully qualified name of this Job. + // + // Format: + // projects/{project}/locations/{location}/jobs/{job} + string name = 1; + + // Output only. Server assigned unique identifier for the Execution. The value + // is a UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + int64 generation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Unstructured key value map that can be used to organize and categorize + // objects. + // User-provided labels are shared with Google's billing system, so they can + // be used to filter, or break down billing charges by team, component, + // environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + //

Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 Job. + map labels = 4; + + // Unstructured key value map that may + // be set by external tools to store and arbitrary metadata. + // They are not queryable and should be preserved + // when modifying objects. + // + //

Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected on new resources. All system + // annotations in v1 now have a corresponding field in v2 Job. + // + //

This field follows Kubernetes annotations' namespacing, limits, and + // rules. + map annotations = 5; + + // Output only. The creation time. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The deletion time. It is only populated as a response to a + // Delete request. + google.protobuf.Timestamp delete_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. + google.protobuf.Timestamp expire_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the authenticated creator. + string creator = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the last authenticated modifier. + string last_modifier = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Arbitrary identifier for the API client. + string client = 12; + + // Arbitrary version identifier for the API client. + string client_version = 13; + + // The launch stage as defined by [Google Cloud Platform + // Launch Stages](https://cloud.google.com/terms/launch-stages). + // Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA + // is assumed. + // Set the launch stage to a preview stage on input to allow use of preview + // features in that stage. On read (or output), describes whether the resource + // uses preview features. + // + // For example, if ALPHA is provided as input, but only BETA and GA-level + // features are used, this field will be BETA on output. + google.api.LaunchStage launch_stage = 14; + + // Settings for the Binary Authorization feature. + BinaryAuthorization binary_authorization = 15; + + // Required. The template used to create executions for this Job. + ExecutionTemplate template = 16 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The generation of this Job. See comments in `reconciling` for + // additional information on reconciliation process in Cloud Run. + int64 observed_generation = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Job, containing its readiness status, + // and detailed error information in case it did not reach the desired state. + Condition terminal_condition = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Conditions of all other associated sub-resources. They + // contain additional diagnostics information in case the Job does not reach + // its desired state. See comments in `reconciling` for additional information + // on reconciliation process in Cloud Run. + repeated Condition conditions = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of executions created for this job. + int32 execution_count = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the last created execution. + ExecutionReference latest_created_execution = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Returns true if the Job is currently being acted upon by the + // system to bring it into the desired state. + // + // When a new Job is created, or an existing one is updated, Cloud Run + // will asynchronously perform all necessary steps to bring the Job to the + // desired state. This process is called reconciliation. + // While reconciliation is in process, `observed_generation` and + // `latest_succeeded_execution`, will have transient values that might + // mismatch the intended state: Once reconciliation is over (and this field is + // false), there are two possible outcomes: reconciliation succeeded and the + // state matches the Job, or there was an error, and reconciliation failed. + // This state can be found in `terminal_condition.state`. + // + // If reconciliation succeeded, the following fields will match: + // `observed_generation` and `generation`, `latest_succeeded_execution` and + // `latest_created_execution`. + // + // If reconciliation failed, `observed_generation` and + // `latest_succeeded_execution` will have the state of the last succeeded + // execution or empty for newly created Job. Additional information on the + // failure can be found in `terminal_condition` and `conditions`. + bool reconciling = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + oneof create_execution { + // A unique string used as a suffix creating a new execution. The Job will + // become ready when the execution is successfully started. + // The sum of job name and token length must be fewer than 63 characters. + string start_execution_token = 26; + + // A unique string used as a suffix for creating a new execution. The Job + // will become ready when the execution is successfully completed. + // The sum of job name and token length must be fewer than 63 characters. + string run_execution_token = 27; + } + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Reference to an Execution. Use /Executions.GetExecution with the given name +// to get full execution including the latest status. +message ExecutionReference { + // Possible execution completion status. + enum CompletionStatus { + // The default value. This value is used if the state is omitted. + COMPLETION_STATUS_UNSPECIFIED = 0; + + // Job execution has succeeded. + EXECUTION_SUCCEEDED = 1; + + // Job execution has failed. + EXECUTION_FAILED = 2; + + // Job execution is running normally. + EXECUTION_RUNNING = 3; + + // Waiting for backing resources to be provisioned. + EXECUTION_PENDING = 4; + + // Job execution has been cancelled by the user. + EXECUTION_CANCELLED = 5; + } + + // Name of the execution. + string name = 1 [ + (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } + ]; + + // Creation timestamp of the execution. + google.protobuf.Timestamp create_time = 2; + + // Creation timestamp of the execution. + google.protobuf.Timestamp completion_time = 3; + + // The deletion time of the execution. It is only + // populated as a response to a Delete request. + google.protobuf.Timestamp delete_time = 5; + + // Status for the execution completion. + CompletionStatus completion_status = 4; +} diff --git a/modules/sync/googleapis/cloud-run/cas/e58bdae6ad420f062f649d75ddbe7f6de4e17d4bcf3a9c990d41e02df5e5200fdd57458da589e84c10b596bce40c93e624734af8d84ff49ec3145344b237ada2 b/modules/sync/googleapis/cloud-run/cas/e58bdae6ad420f062f649d75ddbe7f6de4e17d4bcf3a9c990d41e02df5e5200fdd57458da589e84c10b596bce40c93e624734af8d84ff49ec3145344b237ada2 new file mode 100644 index 00000000..ec0d2931 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/e58bdae6ad420f062f649d75ddbe7f6de4e17d4bcf3a9c990d41e02df5e5200fdd57458da589e84c10b596bce40c93e624734af8d84ff49ec3145344b237ada2 @@ -0,0 +1,105 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/run/v2/k8s.min.proto"; +import "google/cloud/run/v2/vendor_settings.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "WorkerPoolRevisionTemplateProto"; +option java_package = "com.google.cloud.run.v2"; + +// WorkerPoolRevisionTemplate describes the data a worker pool revision should +// have when created from a template. +message WorkerPoolRevisionTemplate { + // Optional. The unique name for the revision. If this field is omitted, it + // will be automatically generated based on the WorkerPool name. + string revision = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Optional. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels. + // + // Cloud Run API v2 does not support labels with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system labels in v1 now have a + // corresponding field in v2 WorkerPoolRevisionTemplate. + map labels = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Unstructured key value map that may be set by external tools to + // store and arbitrary metadata. They are not queryable and should be + // preserved when modifying objects. + // + // Cloud Run API v2 does not support annotations with `run.googleapis.com`, + // `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` + // namespaces, and they will be rejected. All system annotations in v1 now + // have a corresponding field in v2 WorkerPoolRevisionTemplate. + // + // This field follows Kubernetes annotations' namespacing, limits, and + // rules. + map annotations = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. VPC Access configuration to use for this Revision. For more + // information, visit + // https://cloud.google.com/run/docs/configuring/connecting-vpc. + VpcAccess vpc_access = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Email address of the IAM service account associated with the + // revision of the service. The service account represents the identity of the + // running revision, and determines what permissions the revision has. If not + // provided, the revision will use the project's default service account. + string service_account = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Holds list of the containers that defines the unit of execution for this + // Revision. + repeated Container containers = 6; + + // Optional. A list of Volumes to make available to containers. + repeated Volume volumes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // A reference to a customer managed encryption key (CMEK) to use to encrypt + // this container image. For more information, go to + // https://cloud.google.com/run/docs/securing/using-cmek + string encryption_key = 8 [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + }]; + + // Optional. Enables service mesh connectivity. + ServiceMesh service_mesh = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The action to take if the encryption key is revoked. + EncryptionKeyRevocationAction encryption_key_revocation_action = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If encryption_key_revocation_action is SHUTDOWN, the duration + // before shutting down all instances. The minimum increment is 1 hour. + google.protobuf.Duration encryption_key_shutdown_duration = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The node selector for the revision template. + NodeSelector node_selector = 13 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/ece770382a02f9c0cf965f3aa1066cea0b7114ab40ec2ff8abc5b800c3ee44f170d2006078d218098e8564d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 b/modules/sync/googleapis/cloud-run/cas/ece770382a02f9c0cf965f3aa1066cea0b7114ab40ec2ff8abc5b800c3ee44f170d2006078d218098e8564d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 new file mode 100644 index 00000000..9de6bbb9 --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/ece770382a02f9c0cf965f3aa1066cea0b7114ab40ec2ff8abc5b800c3ee44f170d2006078d218098e8564d17be4396d949d3e0b3dc406302213b6b62ed9e4f4 @@ -0,0 +1,77 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/resource.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "TrafficTargetProto"; +option java_package = "com.google.cloud.run.v2"; + +// Holds a single traffic routing entry for the Service. Allocations can be done +// to a specific Revision name, or pointing to the latest Ready Revision. +message TrafficTarget { + // The allocation type for this traffic target. + TrafficTargetAllocationType type = 1; + + // Revision to which to send this portion of traffic, if traffic allocation is + // by revision. + string revision = 2 [ + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Specifies percent of the traffic to this Revision. + // This defaults to zero if unspecified. + int32 percent = 3; + + // Indicates a string to be part of the URI to exclusively reference this + // target. + string tag = 4; +} + +// Represents the observed state of a single `TrafficTarget` entry. +message TrafficTargetStatus { + // The allocation type for this traffic target. + TrafficTargetAllocationType type = 1; + + // Revision to which this traffic is sent. + string revision = 2 [ + (google.api.resource_reference) = { type: "run.googleapis.com/Revision" } + ]; + + // Specifies percent of the traffic to this Revision. + int32 percent = 3; + + // Indicates the string used in the URI to exclusively reference this target. + string tag = 4; + + // Displays the target URI. + string uri = 5; +} + +// The type of instance allocation. +enum TrafficTargetAllocationType { + // Unspecified instance allocation type. + TRAFFIC_TARGET_ALLOCATION_TYPE_UNSPECIFIED = 0; + + // Allocates instances to the Service's latest ready Revision. + TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST = 1; + + // Allocates instances to a Revision by name. + TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION = 2; +} diff --git a/modules/sync/googleapis/cloud-run/cas/f9390172fdd70a213255367a3e4d0b9fc1e765415ca90e4c3b1deb4f6a37e34914781a4521f64955eddc6a0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 b/modules/sync/googleapis/cloud-run/cas/f9390172fdd70a213255367a3e4d0b9fc1e765415ca90e4c3b1deb4f6a37e34914781a4521f64955eddc6a0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 new file mode 100644 index 00000000..e041ed3d --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/f9390172fdd70a213255367a3e4d0b9fc1e765415ca90e4c3b1deb4f6a37e34914781a4521f64955eddc6a0028665a0d99fc32fae4f6e6731acbeb2b3ceaea92 @@ -0,0 +1,316 @@ +// Copyright 2025 Google LLC +// +// 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.cloud.run.v2; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/launch_stage.proto"; +import "google/api/resource.proto"; +import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/task_template.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "ExecutionProto"; +option java_package = "com.google.cloud.run.v2"; + +// Cloud Run Execution Control Plane API. +service Executions { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets information about an Execution. + rpc GetExecution(GetExecutionRequest) returns (Execution) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/jobs/*/executions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Executions from a Job. Results are sorted by creation time, + // descending. + rpc ListExecutions(ListExecutionsRequest) returns (ListExecutionsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/jobs/*}/executions" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes an Execution. + rpc DeleteExecution(DeleteExecutionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/jobs/*/executions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Execution" + metadata_type: "Execution" + }; + } + + // Cancels an Execution. + rpc CancelExecution(CancelExecutionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{name=projects/*/locations/*/jobs/*/executions/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Execution" + metadata_type: "Execution" + }; + } +} + +// Request message for obtaining a Execution by its full name. +message GetExecutionRequest { + // Required. The full name of the Execution. + // Format: + // `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, + // where `{project}` can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } + ]; +} + +// Request message for retrieving a list of Executions. +message ListExecutionsRequest { + // Required. The Execution from which the Executions should be listed. + // To list all Executions across Jobs, use "-" instead of Job name. + // Format: `projects/{project}/locations/{location}/jobs/{job}`, where + // `{project}` can be project id or number. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "run.googleapis.com/Execution" + } + ]; + + // Maximum number of Executions to return in this call. + int32 page_size = 2; + + // A page token received from a previous call to ListExecutions. + // All other parameters must match. + string page_token = 3; + + // If true, returns deleted (but unexpired) resources along with active ones. + bool show_deleted = 4; +} + +// Response message containing a list of Executions. +message ListExecutionsResponse { + // The resulting list of Executions. + repeated Execution executions = 1; + + // A token indicating there are more items than page_size. Use it in the next + // ListExecutions request to continue. + string next_page_token = 2; +} + +// Request message for deleting an Execution. +message DeleteExecutionRequest { + // Required. The name of the Execution to delete. + // Format: + // `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, + // where `{project}` can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } + ]; + + // Indicates that the request should be validated without actually + // deleting any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the resource. + // This may be used to detect modification conflict during updates. + string etag = 3; +} + +// Request message for deleting an Execution. +message CancelExecutionRequest { + // Required. The name of the Execution to cancel. + // Format: + // `projects/{project}/locations/{location}/jobs/{job}/executions/{execution}`, + // where `{project}` can be project id or number. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "run.googleapis.com/Execution" } + ]; + + // Indicates that the request should be validated without actually + // cancelling any resources. + bool validate_only = 2; + + // A system-generated fingerprint for this version of the resource. + // This may be used to detect modification conflict during updates. + string etag = 3; +} + +// Execution represents the configuration of a single execution. A execution an +// immutable resource that references a container image which is run to +// completion. +message Execution { + option (google.api.resource) = { + type: "run.googleapis.com/Execution" + pattern: "projects/{project}/locations/{location}/jobs/{job}/executions/{execution}" + style: DECLARATIVE_FRIENDLY + }; + + // Output only. The unique name of this Execution. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server assigned unique identifier for the Execution. The value + // is a UUID4 string and guaranteed to remain unchanged until the resource is + // deleted. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the authenticated creator. + string creator = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A number that monotonically increases every time the user + // modifies the desired state. + int64 generation = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that can be used to organize and + // categorize objects. User-provided labels are shared with Google's billing + // system, so they can be used to filter, or break down billing charges by + // team, component, environment, state, etc. For more information, visit + // https://cloud.google.com/resource-manager/docs/creating-managing-labels or + // https://cloud.google.com/run/docs/configuring/labels + map labels = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unstructured key value map that may + // be set by external tools to store and arbitrary metadata. + // They are not queryable and should be preserved + // when modifying objects. + map annotations = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the execution was acknowledged by the + // execution controller. It is not guaranteed to be set in happens-before + // order across separate operations. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the execution started to run. + // It is not guaranteed to be set in happens-before order across separate + // operations. + google.protobuf.Timestamp start_time = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents time when the execution was completed. It is not + // guaranteed to be set in happens-before order across separate operations. + google.protobuf.Timestamp completion_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last-modified time. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the deletion time. It is only + // populated as a response to a Delete request. + google.protobuf.Timestamp delete_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a deleted resource, the time after which it will be + // permamently deleted. It is only populated as a response to a Delete + // request. + google.protobuf.Timestamp expire_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The least stable launch stage needed to create this resource, as defined by + // [Google Cloud Platform Launch + // Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports + // `ALPHA`, `BETA`, and `GA`. + // + // Note that this value might not be what was used + // as input. For example, if ALPHA was provided as input in the parent + // resource, but only BETA and GA-level features are were, this field will be + // BETA. + google.api.LaunchStage launch_stage = 11; + + // Output only. The name of the parent Job. + string job = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "run.googleapis.com/Job" } + ]; + + // Output only. Specifies the maximum desired number of tasks the execution + // should run at any given time. Must be <= task_count. The actual number of + // tasks running in steady state will be less than this number when + // ((.spec.task_count - .status.successful) < .spec.parallelism), i.e. when + // the work left to do is less than max parallelism. + int32 parallelism = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Specifies the desired number of tasks the execution should + // run. Setting to 1 means that parallelism is limited to 1 and the success of + // that task signals the success of the execution. + int32 task_count = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The template used to create tasks for this execution. + TaskTemplate template = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether the resource's reconciliation is still in + // progress. See comments in `Job.reconciling` for additional information on + // reconciliation process in Cloud Run. + bool reconciling = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Condition of this Execution, containing its readiness + // status, and detailed error information in case it did not reach the desired + // state. + repeated Condition conditions = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The generation of this Execution. See comments in + // `reconciling` for additional information on reconciliation process in Cloud + // Run. + int64 observed_generation = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of actively running tasks. + int32 running_count = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of tasks which reached phase Succeeded. + int32 succeeded_count = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of tasks which reached phase Failed. + int32 failed_count = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of tasks which reached phase Cancelled. + int32 cancelled_count = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of tasks which have retried at least once. + int32 retried_count = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URI where logs for this execution can be found in Cloud + // Console. + string log_uri = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A system-generated fingerprint for this version of the + // resource. May be used to detect modification conflict during updates. + string etag = 99 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/modules/sync/googleapis/cloud-run/cas/faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 b/modules/sync/googleapis/cloud-run/cas/faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/modules/sync/googleapis/cloud-run/cas/faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/modules/sync/googleapis/cloud-run/state.json b/modules/sync/googleapis/cloud-run/state.json new file mode 100644 index 00000000..184edd0a --- /dev/null +++ b/modules/sync/googleapis/cloud-run/state.json @@ -0,0 +1,40 @@ +{ + "references": [ + { + "name": "bf2ce591fdd45d380342426ba64d3165ac504cdd", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "67782cb57b1fd81a4f49edef8243acb02843bf75", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "a7eef0a26c04fe8d6717e0f45b22ec945ca57d13", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "ded7ed1e4cce7c165c56a417572cebea9bc1d82c", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "160d9b37f202881fbf1aa1b52ff51be30202293f", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "c9ff4f1cd26f1fe63e6d1c11a198366b70ebdb84", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "943025a9f8f2902af19781e504eb80c7428f7836", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "8b6f8775fe18a5e6dd54916373f6948f116e2b71", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + }, + { + "name": "8cd3749f4b98f2eeeef511c16431979aeb3a6502", + "digest": "22c5d2400d9268a09ad3c6b811f4f40337cf489a3565194749ca2c376d32d47133a464763e183f43ad2c2bdf8f65a6011b6f03bc73f8b6ed789eef2730dce865" + } + ] +} \ No newline at end of file diff --git a/modules/sync/state.json b/modules/sync/state.json index 151bccca..38d659be 100644 --- a/modules/sync/state.json +++ b/modules/sync/state.json @@ -40,6 +40,10 @@ "module_name": "google/cel-spec", "latest_reference": "v0.25.1" }, + { + "module_name": "googleapis/cloud-run", + "latest_reference": "8cd3749f4b98f2eeeef511c16431979aeb3a6502" + }, { "module_name": "googleapis/googleapis", "latest_reference": "8cd3749f4b98f2eeeef511c16431979aeb3a6502"