From 866228ea605fcf8bb76b934ae93d12c5fff85587 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Tue, 9 May 2023 15:19:36 -0700 Subject: [PATCH] feat: add output field for the control plane IP address feat: add output field for the number of pooled instances docs: adjust documentation wording PiperOrigin-RevId: 530727488 --- .../cloud/workstations/v1/workstations.proto | 91 +++++++++++-------- .../workstations/v1/workstations_v1.yaml | 1 + 2 files changed, 56 insertions(+), 36 deletions(-) diff --git a/google/cloud/workstations/v1/workstations.proto b/google/cloud/workstations/v1/workstations.proto index 7425dd67ea0f6..b608215719508 100644 --- a/google/cloud/workstations/v1/workstations.proto +++ b/google/cloud/workstations/v1/workstations.proto @@ -106,7 +106,7 @@ service Workstations { option (google.api.method_signature) = "name"; } - // Returns all WorkstationConfigs in the specified cluster. + // Returns all workstation configurations in the specified cluster. rpc ListWorkstationConfigs(ListWorkstationConfigsRequest) returns (ListWorkstationConfigsResponse) { option (google.api.http) = { @@ -175,7 +175,7 @@ service Workstations { option (google.api.method_signature) = "name"; } - // Returns all Workstations using the specified config. + // Returns all Workstations using the specified workstation configuration. rpc ListWorkstations(ListWorkstationsRequest) returns (ListWorkstationsResponse) { option (google.api.http) = { @@ -184,8 +184,8 @@ service Workstations { option (google.api.method_signature) = "parent"; } - // Returns all Workstations using the specified config on which the caller has - // the "workstations.workstations.use" permission. + // Returns all workstations using the specified workstation configuration + // on which the caller has the "workstations.workstations.use" permission. rpc ListUsableWorkstations(ListUsableWorkstationsRequest) returns (ListUsableWorkstationsResponse) { option (google.api.http) = { @@ -343,7 +343,7 @@ message WorkstationCluster { [(google.api.field_behavior) = OUTPUT_ONLY]; // Checksum computed by the server. May be sent on update and delete requests - // to ensure that the client has an up-to-date value before proceeding. + // to make sure that the client has an up-to-date value before proceeding. string etag = 9; // Immutable. Name of the Compute Engine network in which instances associated @@ -355,6 +355,12 @@ message WorkstationCluster { // subnetwork specified for this cluster. string subnetwork = 11 [(google.api.field_behavior) = IMMUTABLE]; + // Output only. The private IP address of the control plane for this cluster. + // Workstation VMs need access to this IP address to work with the service, so + // make sure that your firewall rules allow egress from the workstation VMs to + // this address. + string control_plane_ip = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Configuration for private cluster. PrivateClusterConfig private_cluster_config = 12; @@ -403,10 +409,10 @@ message WorkstationConfig { // The name of a Compute Engine machine type. string machine_type = 1; - // Email address of the service account that will be used on VM instances - // used to support this config. If not set, VMs will run with a + // Email address of the service account used on VM instances + // used to support this configuration. If not set, VMs run with a // Google-managed service account. This service account must have - // permission to pull the specified container image, otherwise the image + // permission to pull the specified container image; otherwise, the image // must be publicly accessible. string service_account = 2; @@ -414,9 +420,13 @@ message WorkstationConfig { // Workstations. repeated string tags = 4; - // Number of instances to pool for faster workstation starup. + // Number of instances to pool for faster workstation startup. int32 pool_size = 5; + // Output only. Number of instances currently available in the pool for + // faster workstation startup. + int32 pooled_instances = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Whether instances have no public IP address. bool disable_public_ip_addresses = 6; @@ -493,7 +503,7 @@ message WorkstationConfig { // A Docker container. message Container { // Docker image defining the container. This image must be accessible by the - // config's service account. + // service account specified in the workstation configuration. string image = 1; // If set, overrides the default ENTRYPOINT specified by the image. @@ -502,7 +512,7 @@ message WorkstationConfig { // Arguments passed to the entrypoint. repeated string args = 3; - // Environment variables passed to the container. + // Environment variables passed to the container's entrypoint. map env = 4; // If set, overrides the default DIR specified by the image. @@ -515,18 +525,19 @@ message WorkstationConfig { // A customer-managed encryption key for the Compute Engine resources // of this workstation configuration. message CustomerEncryptionKey { - // The name of the Google Cloud KMS encryption key. For example, + // Immutable. The name of the Google Cloud KMS encryption key. For example, // `projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME`. - string kms_key = 1; + string kms_key = 1 [(google.api.field_behavior) = IMMUTABLE]; - // The service account to use with the specified + // Immutable. The service account to use with the specified // KMS key. We recommend that you use a separate service account // and follow KMS best practices. For more information, see // [Separation of // duties](https://cloud.google.com/kms/docs/separation-of-duties) and // `gcloud kms keys add-iam-policy-binding` // [`--member`](https://cloud.google.com/sdk/gcloud/reference/kms/keys/add-iam-policy-binding#--member). - string kms_key_service_account = 2; + string kms_key_service_account = 2 + [(google.api.field_behavior) = IMMUTABLE]; } // Full name of this resource. @@ -562,7 +573,7 @@ message WorkstationConfig { [(google.api.field_behavior) = OUTPUT_ONLY]; // Checksum computed by the server. May be sent on update and delete requests - // to ensure that the client has an up-to-date value before proceeding. + // to make sure that the client has an up-to-date value before proceeding. string etag = 9; // How long to wait before automatically stopping an instance that hasn't @@ -586,7 +597,7 @@ message WorkstationConfig { // when that workstation is started. Container container = 14; - // Encrypts resources of this workstation configuration using a + // Immutable. Encrypts resources of this workstation configuration using a // customer-managed encryption key. // // If specified, the boot disk of the Compute Engine instance and the @@ -602,7 +613,10 @@ message WorkstationConfig { // // If the encryption key is revoked, the workstation session will // automatically be stopped within 7 hours. - CustomerEncryptionKey encryption_key = 17; + // + // Immutable after the workstation configuration is created. + CustomerEncryptionKey encryption_key = 17 + [(google.api.field_behavior) = IMMUTABLE]; // Output only. Whether this resource is degraded, in which case it may // require user action to restore full functionality. See also the @@ -675,7 +689,7 @@ message Workstation { [(google.api.field_behavior) = OUTPUT_ONLY]; // Checksum computed by the server. May be sent on update and delete requests - // to ensure that the client has an up-to-date value before proceeding. + // to make sure that the client has an up-to-date value before proceeding. string etag = 9; // Output only. Current state of the workstation. @@ -786,7 +800,7 @@ message DeleteWorkstationClusterRequest { bool validate_only = 2; // If set, the request will be rejected if the latest version of the - // workstation cluster on the server does not have this etag. + // workstation cluster on the server does not have this ETag. string etag = 3; // If set, any workstation configurations and workstations in the @@ -876,7 +890,7 @@ message CreateWorkstationConfigRequest { } ]; - // Required. ID to use for the config. + // Required. ID to use for the workstation configuration. string workstation_config_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Config to create. @@ -894,7 +908,8 @@ message UpdateWorkstationConfigRequest { WorkstationConfig workstation_config = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Mask specifying which fields in the config should be updated. + // Required. Mask specifying which fields in the workstation configuration + // should be updated. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; @@ -902,14 +917,15 @@ message UpdateWorkstationConfigRequest { // apply it. bool validate_only = 3; - // If set, and the config is not found, a new config will be created. - // In this situation, update_mask is ignored. + // If set and the workstation configuration is not found, a new + // workstation configuration will be created. In this situation, + // update_mask is ignored. bool allow_missing = 4; } // Message for deleting a workstation configuration. message DeleteWorkstationConfigRequest { - // Required. Name of the config to delete. + // Required. Name of the workstation configuration to delete. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -921,12 +937,13 @@ message DeleteWorkstationConfigRequest { // apply it. bool validate_only = 2; - // If set, the request will be rejected if the latest version of the config on - // the server does not have this etag. + // If set, the request is rejected if the latest version of the + // workstation configuration on the server does not have this ETag. string etag = 3; - // If set, any Workstations in the config will also be deleted. Otherwise, - // the request will work only if the config has no workstations. + // If set, any workstations in the workstation configuration are also deleted. + // Otherwise, the request works only if the workstation configuration has + // no workstations. bool force = 4; } @@ -1027,7 +1044,8 @@ message UpdateWorkstationRequest { // Required. Workstation to update. Workstation workstation = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Mask specifying which fields in the config should be updated. + // Required. Mask specifying which fields in the workstation configuration + // should be updated. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; @@ -1035,8 +1053,9 @@ message UpdateWorkstationRequest { // apply it. bool validate_only = 3; - // If set, and the config is not found, a new config will be created. - // In this situation, update_mask is ignored. + // If set and the workstation configuration is not found, a new + // workstation configuration is created. In this situation, update_mask + // is ignored. bool allow_missing = 4; } @@ -1055,7 +1074,7 @@ message DeleteWorkstationRequest { bool validate_only = 2; // If set, the request will be rejected if the latest version of the - // workstation on the server does not have this etag. + // workstation on the server does not have this ETag. string etag = 3; } @@ -1074,7 +1093,7 @@ message StartWorkstationRequest { bool validate_only = 2; // If set, the request will be rejected if the latest version of the - // workstation on the server does not have this etag. + // workstation on the server does not have this ETag. string etag = 3; } @@ -1093,7 +1112,7 @@ message StopWorkstationRequest { bool validate_only = 2; // If set, the request will be rejected if the latest version of the - // workstation on the server does not have this etag. + // workstation on the server does not have this ETag. string etag = 3; } @@ -1127,7 +1146,7 @@ message GenerateAccessTokenRequest { message GenerateAccessTokenResponse { // The generated bearer access token. To use this token, include it in an // Authorization header of an HTTP request sent to the associated - // workstation's hostname, for example, `Authorization: Bearer + // workstation's hostname—for example, `Authorization: Bearer // `. string access_token = 1; diff --git a/google/cloud/workstations/v1/workstations_v1.yaml b/google/cloud/workstations/v1/workstations_v1.yaml index cf3847a763ac1..c0e0d68d8257d 100644 --- a/google/cloud/workstations/v1/workstations_v1.yaml +++ b/google/cloud/workstations/v1/workstations_v1.yaml @@ -13,6 +13,7 @@ types: - name: google.cloud.workstations.v1.OperationMetadata documentation: + summary: Allows administrators to create managed developer environments in the cloud. rules: - selector: google.cloud.location.Locations.GetLocation description: Gets information about a location.