diff --git a/ci/abi-dumps/google_cloud_cpp_compute_reservation_sub_blocks.expected.abi.dump.gz b/ci/abi-dumps/google_cloud_cpp_compute_reservation_sub_blocks.expected.abi.dump.gz new file mode 100644 index 0000000000000..f4592ac4b773c Binary files /dev/null and b/ci/abi-dumps/google_cloud_cpp_compute_reservation_sub_blocks.expected.abi.dump.gz differ diff --git a/ci/etc/expected_install_directories b/ci/etc/expected_install_directories index 973a7c4e25576..2eb366a482b30 100644 --- a/ci/etc/expected_install_directories +++ b/ci/etc/expected_install_directories @@ -528,6 +528,10 @@ ./include/google/cloud/compute/reservation_blocks/v1 ./include/google/cloud/compute/reservation_blocks/v1/internal ./include/google/cloud/compute/reservation_blocks/v1/mocks +./include/google/cloud/compute/reservation_sub_blocks +./include/google/cloud/compute/reservation_sub_blocks/v1 +./include/google/cloud/compute/reservation_sub_blocks/v1/internal +./include/google/cloud/compute/reservation_sub_blocks/v1/mocks ./include/google/cloud/compute/reservations ./include/google/cloud/compute/reservations/v1 ./include/google/cloud/compute/reservations/v1/internal diff --git a/generator/discovery/compute_public_google_rest_v1.json b/generator/discovery/compute_public_google_rest_v1.json index 8df02e9a8ab16..7a24ba19fb980 100644 --- a/generator/discovery/compute_public_google_rest_v1.json +++ b/generator/discovery/compute_public_google_rest_v1.json @@ -1,27 +1,95 @@ { - "revision": "20250511", - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/cloud-platform": { - "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." - }, - "https://www.googleapis.com/auth/compute": { - "description": "View and manage your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/compute.readonly": { - "description": "View your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/devstorage.full_control": { - "description": "Manage your data and permissions in Cloud Storage and see the email address for your Google Account" - }, - "https://www.googleapis.com/auth/devstorage.read_only": { - "description": "View your data in Google Cloud Storage" - }, - "https://www.googleapis.com/auth/devstorage.read_write": { - "description": "Manage your data in Cloud Storage and see the email address of your Google Account" - } - } + "ownerName": "Google", + "revision": "20250601", + "servicePath": "compute/v1/", + "basePath": "/compute/v1/", + "documentationLink": "https://cloud.google.com/compute/", + "description": "Creates and runs virtual machines on Google Cloud Platform. ", + "batchPath": "batch/compute/v1", + "id": "compute:v1", + "kind": "discovery#restDescription", + "baseUrl": "https://compute.googleapis.com/compute/v1/", + "discoveryVersion": "v1", + "parameters": { + "access_token": { + "type": "string", + "description": "OAuth access token.", + "location": "query" + }, + "alt": { + "type": "string", + "description": "Data format for response.", + "default": "json", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query" + }, + "callback": { + "type": "string", + "description": "JSONP", + "location": "query" + }, + "fields": { + "type": "string", + "description": "Selector specifying which fields to include in a partial response.", + "location": "query" + }, + "key": { + "type": "string", + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query" + }, + "oauth_token": { + "type": "string", + "description": "OAuth 2.0 token for the current user.", + "location": "query" + }, + "prettyPrint": { + "type": "boolean", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "location": "query" + }, + "quotaUser": { + "type": "string", + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query" + }, + "upload_protocol": { + "type": "string", + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query" + }, + "uploadType": { + "type": "string", + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query" + }, + "userIp": { + "type": "string", + "description": "Legacy name for parameter that has been superseded by `quotaUser`.", + "location": "query" + }, + "$.xgafv": { + "type": "string", + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query" } }, "schemas": { @@ -4150,6 +4218,36 @@ } } }, + "BulkZoneSetLabelsRequest": { + "id": "BulkZoneSetLabelsRequest", + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "BulkSetLabelsRequest" + } + } + } + }, + "BulkSetLabelsRequest": { + "id": "BulkSetLabelsRequest", + "type": "object", + "properties": { + "labels": { + "description": "The labels to set for this resource.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You may optionally provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", + "type": "string", + "format": "byte" + } + } + }, "DisksResizeRequest": { "id": "DisksResizeRequest", "type": "object", @@ -5069,6 +5167,49 @@ "items": { "type": "string" } + }, + "srcNetworkType": { + "description": "Network type of the traffic source. Allowed values are: - UNSPECIFIED - INTERNET - INTRA_VPC - NON_INTERNET - VPC_NETWORKS ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ] + }, + "srcNetworks": { + "description": "Networks of the traffic source. It can be either a full or partial url.", + "type": "array", + "items": { + "type": "string" + } + }, + "destNetworkType": { + "description": "Network type of the traffic destination. Allowed values are: - UNSPECIFIED - INTERNET - NON_INTERNET ", + "type": "string", + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ] } } }, @@ -7127,7 +7268,7 @@ } }, "metadata": { - "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.", + "description": "The metadata key/value pairs assigned to this instance. This includes metadata keys that were explicitly defined for the instance.", "$ref": "Metadata" }, "serviceAccounts": { @@ -9719,6 +9860,10 @@ "DENSE", "DEPLOYMENT_TYPE_UNSPECIFIED" ] + }, + "enableEmergentMaintenance": { + "description": "Indicates whether Compute Engine allows unplanned maintenance for your VMs; for example, to fix hardware errors.", + "type": "boolean" } } }, @@ -16987,7 +17132,7 @@ "type": "object", "properties": { "fastIPMove": { - "description": "Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it. Supported values are: - DISABLED: Fast IP Move is disabled. You can only use the haPolicy.leader API to update the leader. - \u003eGARP_RA: Provides a method to very quickly define a new network endpoint as the leader. This method is faster than updating the leader using the haPolicy.leader API. Fast IP move works as follows: The VM hosting the network endpoint that should become the new leader sends either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA) packet (IPv6). Google Cloud immediately but temporarily associates the forwarding rule IP address with that VM, and both new and in-flight packets are quickly delivered to that VM. Note the important properties of the Fast IP Move functionality: - The GARP/RA-initiated re-routing stays active for approximately 20 minutes. After triggering fast failover, you must also appropriately set the haPolicy.leader. - The new leader instance should continue to send GARP/RA packets periodically every 10 seconds until at least 10 minutes after updating the haPolicy.leader (but stop immediately if it is no longer the leader). - After triggering a fast failover, we recommend that you wait at least 3 seconds before sending another GARP/RA packet from a different VM instance to avoid race conditions. - Don't send GARP/RA packets from different VM instances at the same time. If multiple instances continue to send GARP/RA packets, traffic might be routed to different destinations in an alternating order. This condition ceases when a single instance issues a GARP/RA packet. - The GARP/RA request always takes priority over the leader API. Using the haPolicy.leader API to change the leader to a different instance will have no effect until the GARP/RA request becomes inactive. - The GARP/RA packets should follow the GARP/RA Packet Specifications.. - When multiple forwarding rules refer to a regional backend service, you need only send a GARP or RA packet for a single forwarding rule virtual IP. The virtual IPs for all forwarding rules targeting the same backend service will also be moved to the sender of the GARP or RA packet. The following are the Fast IP Move limitations (that is, when fastIPMove is not DISABLED): - Multiple forwarding rules cannot use the same IP address if one of them refers to a regional backend service with fastIPMove. - The regional backend service must set the network field, and all NEGs must belong to that network. However, individual NEGs can belong to different subnetworks of that network. - The maximum number of network endpoints across all backends of a backend service with fastIPMove is 64. - The maximum number of backend services with fastIPMove that can have the same network endpoint attached to one of its backends is 64. - The maximum number of backend services with fastIPMove in a VPC in a region is 64. - The network endpoints that are attached to a backend of a backend service with fastIPMove cannot resolve to Gen3+ machines for IPv6. - Traffic directed to the leader by a static route next hop will not be redirected to a new leader by fast failover. Such traffic will only be redirected once an haPolicy.leader update has taken effect. Only traffic to the forwarding rule's virtual IP will be redirected to a new leader by fast failover. haPolicy.fastIPMove can be set only at backend service creation time. Once set, it cannot be updated. By default, fastIpMove is set to DISABLED.", + "description": "Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it. Supported values are: - DISABLED: Fast IP Move is disabled. You can only use the haPolicy.leader API to update the leader. - \u003eGARP_RA: Provides a method to very quickly define a new network endpoint as the leader. This method is faster than updating the leader using the haPolicy.leader API. Fast IP move works as follows: The VM hosting the network endpoint that should become the new leader sends either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA) packet (IPv6). Google Cloud immediately but temporarily associates the forwarding rule IP address with that VM, and both new and in-flight packets are quickly delivered to that VM. Note the important properties of the Fast IP Move functionality: - The GARP/RA-initiated re-routing stays active for approximately 20 minutes. After triggering fast failover, you must also appropriately set the haPolicy.leader. - The new leader instance should continue to send GARP/RA packets periodically every 10 seconds until at least 10 minutes after updating the haPolicy.leader (but stop immediately if it is no longer the leader). - After triggering a fast failover, we recommend that you wait at least 3 seconds before sending another GARP/RA packet from a different VM instance to avoid race conditions. - Don't send GARP/RA packets from different VM instances at the same time. If multiple instances continue to send GARP/RA packets, traffic might be routed to different destinations in an alternating order. This condition ceases when a single instance issues a GARP/RA packet. - The GARP/RA request always takes priority over the leader API. Using the haPolicy.leader API to change the leader to a different instance will have no effect until the GARP/RA request becomes inactive. - The GARP/RA packets should follow the GARP/RA Packet Specifications.. - When multiple forwarding rules refer to a regional backend service, you need only send a GARP or RA packet for a single forwarding rule virtual IP. The virtual IPs for all forwarding rules targeting the same backend service will also be moved to the sender of the GARP or RA packet. The following are the Fast IP Move limitations (that is, when fastIPMove is not DISABLED): - Multiple forwarding rules cannot use the same IP address if one of them refers to a regional backend service with fastIPMove. - The regional backend service must set the network field, and all NEGs must belong to that network. However, individual NEGs can belong to different subnetworks of that network. - The maximum number of network endpoints across all backends of a backend service with fastIPMove is 32. - The maximum number of backend services with fastIPMove that can have the same network endpoint attached to one of its backends is 64. - The maximum number of backend services with fastIPMove in a VPC in a region is 64. - The network endpoints that are attached to a backend of a backend service with fastIPMove cannot resolve to Gen3+ machines for IPv6. - Traffic directed to the leader by a static route next hop will not be redirected to a new leader by fast failover. Such traffic will only be redirected once an haPolicy.leader update has taken effect. Only traffic to the forwarding rule's virtual IP will be redirected to a new leader by fast failover. haPolicy.fastIPMove can be set only at backend service creation time. Once set, it cannot be updated. By default, fastIpMove is set to DISABLED.", "type": "string", "enumDescriptions": [ "", @@ -22248,6 +22393,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, "loadBalancingScheme": { "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", "type": "string", @@ -29898,6 +30047,10 @@ "networkProfile": { "description": "A full or partial URL of the network profile to apply to this network. This field can be set only at resource creation time. For example, the following are valid URLs: - https://www.googleapis.com/compute/{api_version}/projects/{project_id}/global/networkProfiles/{network_profile_name} - projects/{project_id}/global/networkProfiles/{network_profile_name} ", "type": "string" + }, + "params": { + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", + "$ref": "NetworkParams" } } }, @@ -30036,6 +30189,20 @@ } } }, + "NetworkParams": { + "id": "NetworkParams", + "description": "Additional network parameters.", + "type": "object", + "properties": { + "resourceManagerTags": { + "description": "Tag keys/values directly bound to this resource. Tag keys and values have the same definition as resource manager tags. The field is allowed for INSERT only. The keys/values to set on the resource should be specified in either ID { : } or Namespaced format { : }. For example the following are valid inputs: * {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"} * {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"} Note: * Invalid combinations of ID & namespaced format is not supported. For instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "NetworksUpdatePeeringRequest": { "id": "NetworksUpdatePeeringRequest", "type": "object", @@ -35727,6 +35894,10 @@ "VM_ONLY" ] }, + "params": { + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.", + "$ref": "SubnetworkParams" + }, "systemReservedInternalIpv6Ranges": { "description": "Output only. [Output Only] The array of internal IPv6 network ranges reserved from the subnetwork's internal IPv6 range for system use.", "readOnly": true, @@ -35825,6 +35996,20 @@ } } }, + "SubnetworkParams": { + "id": "SubnetworkParams", + "description": "Additional subnetwork parameters.", + "type": "object", + "properties": { + "resourceManagerTags": { + "description": "Tag keys/values directly bound to this resource. Tag keys and values have the same definition as resource manager tags. The field is allowed for INSERT only. The keys/values to set on the resource should be specified in either ID { : } or Namespaced format { : }. For example the following are valid inputs: * {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"} * {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"} Note: * Invalid combinations of ID & namespaced format is not supported. For instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "SubnetworkAggregatedList": { "id": "SubnetworkAggregatedList", "type": "object", @@ -37259,6 +37444,16 @@ "physicalTopology": { "description": "[Output Only] The physical topology of the reservation block.", "$ref": "ReservationBlockPhysicalTopology" + }, + "reservationSubBlockCount": { + "description": "[Output Only] The number of reservation subBlocks associated with this reservation block.", + "type": "integer", + "format": "int32" + }, + "reservationSubBlockInUseCount": { + "description": "[Output Only] The number of in-use reservation subBlocks associated with this reservation block. If at least one VM is running on a subBlock, it is considered in-use.", + "type": "integer", + "format": "int32" } } }, @@ -37431,28 +37626,277 @@ } } }, - "ReservationsBlocksPerformMaintenanceRequest": { - "id": "ReservationsBlocksPerformMaintenanceRequest", - "type": "object", - "properties": { - "maintenanceScope": { - "description": "Specifies if all, running or unused hosts are in scope for this request.", - "type": "string", - "enumDescriptions": [ - "Trigger maintenance for all hosts belonging to this reservation irrespective of whether VMs are running on them or not.", - "Internal only", - "Trigger maintenance only on the hosts belonging to this reservation which have VMs running on them.", - "Trigger maintenance only on the hosts belonging to this reservation which do not have any VMs running on them. This is not allowed for Standard ExR" - ], - "enum": [ - "ALL", - "MAINTENANCE_SCOPE_UNSPECIFIED", - "RUNNING_VMS", - "UNUSED_CAPACITY" - ] - } - } - }, + "ReservationsBlocksPerformMaintenanceRequest": { + "id": "ReservationsBlocksPerformMaintenanceRequest", + "type": "object", + "properties": { + "maintenanceScope": { + "description": "Specifies if all, running or unused hosts are in scope for this request.", + "type": "string", + "enumDescriptions": [ + "Trigger maintenance for all hosts belonging to this reservation irrespective of whether VMs are running on them or not.", + "Internal only", + "Trigger maintenance only on the hosts belonging to this reservation which have VMs running on them.", + "Trigger maintenance only on the hosts belonging to this reservation which do not have any VMs running on them. This is not allowed for Standard ExR" + ], + "enum": [ + "ALL", + "MAINTENANCE_SCOPE_UNSPECIFIED", + "RUNNING_VMS", + "UNUSED_CAPACITY" + ] + } + } + }, + "ReservationSubBlocksGetResponse": { + "id": "ReservationSubBlocksGetResponse", + "type": "object", + "properties": { + "resource": { + "$ref": "ReservationSubBlock" + } + } + }, + "ReservationSubBlock": { + "id": "ReservationSubBlock", + "description": "Represents a reservation subBlock resource.", + "type": "object", + "properties": { + "kind": { + "description": "[Output Only] Type of the resource. Always compute#reservationSubBlock for reservation subBlocks.", + "default": "compute#reservationSubBlock", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string", + "format": "uint64" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "name": { + "description": "[Output Only] The name of this reservation subBlock generated by Google Compute Engine. The name must be 1-63 characters long, and comply with RFC1035 @pattern [a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "zone": { + "description": "[Output Only] Zone in which the reservation subBlock resides.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "count": { + "description": "[Output Only] The number of hosts that are allocated in this reservation subBlock.", + "type": "integer", + "format": "int32" + }, + "inUseCount": { + "description": "[Output Only] The number of instances that are currently in use on this reservation subBlock.", + "type": "integer", + "format": "int32" + }, + "status": { + "description": "[Output Only] Status of the reservation subBlock.", + "type": "string", + "enumDescriptions": [ + "Resources are being allocated for the reservation subBlock.", + "Reservation subBlock is currently being deleted.", + "", + "Reservation subBlock has allocated all its resources." + ], + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ] + }, + "physicalTopology": { + "description": "[Output Only] The physical topology of the reservation subBlock.", + "$ref": "ReservationSubBlockPhysicalTopology" + } + } + }, + "ReservationSubBlockPhysicalTopology": { + "id": "ReservationSubBlockPhysicalTopology", + "type": "object", + "properties": { + "cluster": { + "description": "The cluster name of the reservation subBlock.", + "type": "string" + }, + "block": { + "description": "The hash of the capacity block within the cluster.", + "type": "string" + }, + "subBlock": { + "description": "The hash of the capacity sub-block within the capacity block.", + "type": "string" + } + } + }, + "ReservationSubBlocksListResponse": { + "id": "ReservationSubBlocksListResponse", + "description": "A list of reservation subBlocks under a single reservation.", + "type": "object", + "properties": { + "kind": { + "description": "Type of the resource. Always compute#reservationSubBlock for a list of reservation subBlocks.", + "default": "compute#reservationSubBlock", + "type": "string" + }, + "id": { + "description": "Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of reservation subBlock resources.", + "type": "array", + "items": { + "$ref": "ReservationSubBlock" + } + }, + "nextPageToken": { + "description": "This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "Informational warning message.", + "type": "object", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "type": "string", + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g: regions.list).", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ] + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + } + } + } + } + } + } + }, "ResourcePolicyList": { "id": "ResourcePolicyList", "type": "object", @@ -37631,6 +38075,9 @@ "description": "Resource policy for disk consistency groups.", "$ref": "ResourcePolicyDiskConsistencyGroupPolicy" }, + "workloadPolicy": { + "$ref": "ResourcePolicyWorkloadPolicy" + }, "kind": { "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", "default": "compute#resourcePolicy", @@ -37897,6 +38344,10 @@ "COLLOCATED", "UNSPECIFIED_COLLOCATION" ] + }, + "gpuTopology": { + "description": "Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.", + "type": "string" } } }, @@ -37944,6 +38395,40 @@ "type": "object", "properties": {} }, + "ResourcePolicyWorkloadPolicy": { + "id": "ResourcePolicyWorkloadPolicy", + "description": "Represents the workload policy.", + "type": "object", + "properties": { + "type": { + "type": "string", + "enumDescriptions": [ + "VMs will be provisioned in such a way which provides high availability.", + "VMs will be provisioned in such a way which provides high throughput." + ], + "enum": [ + "HIGH_AVAILABILITY", + "HIGH_THROUGHPUT" + ] + }, + "maxTopologyDistance": { + "type": "string", + "enumDescriptions": [ + "VMs must be provisioned in the same block.", + "VMs must be provisioned in the same cluster.", + "VMs must be provisioned in the same subblock." + ], + "enum": [ + "BLOCK", + "CLUSTER", + "SUBBLOCK" + ] + }, + "acceleratorTopology": { + "type": "string" + } + } + }, "ResourcePolicyResourceStatus": { "id": "ResourcePolicyResourceStatus", "description": "Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this \"status\" field should mimic the structure of ResourcePolicy proto specification.", @@ -48927,7 +49412,7 @@ "type": "string" }, "replace": { - "description": "If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. ", + "description": "If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is true, unless a variable is present in headerValue, in which case the default value is false. .", "type": "boolean" } } @@ -51368,6 +51853,41 @@ } } }, + "name": "compute", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Cloud Storage and see the email address for your Google Account" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Cloud Storage and see the email address of your Google Account" + } + } + } + }, + "protocol": "rest", + "rootUrl": "https://compute.googleapis.com/", + "mtlsRootUrl": "https://compute.mtls.googleapis.com/", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "version": "v1", + "title": "Compute Engine API", + "ownerDomain": "google.com", "resources": { "globalOperations": { "methods": { @@ -53965,6 +54485,54 @@ ], "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation." }, + "bulkSetLabels": { + "id": "compute.disks.bulkSetLabels", + "path": "projects/{project}/zones/{zone}/disks/bulkSetLabels", + "flatPath": "projects/{project}/zones/{zone}/disks/bulkSetLabels", + "httpMethod": "POST", + "parameters": { + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "BulkZoneSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ], + "description": "Sets the labels on many disks at once. To learn more about labels, read the Labeling Resources documentation." + }, "delete": { "id": "compute.disks.delete", "path": "projects/{project}/zones/{zone}/disks/{disk}", @@ -81473,7 +82041,153 @@ }, "project": { "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkProfilesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves a list of network profiles available to the specified project." + }, + "get": { + "id": "compute.networkProfiles.get", + "path": "projects/{project}/global/networkProfiles/{networkProfile}", + "flatPath": "projects/{project}/global/networkProfiles/{networkProfile}", + "httpMethod": "GET", + "parameters": { + "networkProfile": { + "description": "Name of the network profile to return.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "networkProfile" + ], + "response": { + "$ref": "NetworkProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Returns the specified network profile." + } + } + }, + "reservationBlocks": { + "methods": { + "get": { + "id": "compute.reservationBlocks.get", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", + "httpMethod": "GET", + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "reservation": { + "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "reservationBlock": { + "description": "The name of the reservation block. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "parameterOrder": [ + "project", + "zone", + "reservation", + "reservationBlock" + ], + "response": { + "$ref": "ReservationBlocksGetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ], + "description": "Retrieves information about the specified reservation block." + }, + "list": { + "id": "compute.reservationBlocks.list", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", + "httpMethod": "GET", + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "default": "500", + "minimum": "0", + "location": "query", + "type": "integer", + "format": "uint32" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "reservation": { + "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -81482,37 +82196,60 @@ "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, "parameterOrder": [ - "project" + "project", + "zone", + "reservation" ], "response": { - "$ref": "NetworkProfilesListResponse" + "$ref": "ReservationBlocksListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Retrieves a list of network profiles available to the specified project." + "description": "Retrieves a list of reservation blocks under a single reservation." }, - "get": { - "id": "compute.networkProfiles.get", - "path": "projects/{project}/global/networkProfiles/{networkProfile}", - "flatPath": "projects/{project}/global/networkProfiles/{networkProfile}", - "httpMethod": "GET", + "performMaintenance": { + "id": "compute.reservationBlocks.performMaintenance", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", + "httpMethod": "POST", "parameters": { - "networkProfile": { - "description": "Name of the network profile to return.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "project": { + "description": "Project ID for this request.", "location": "path", "required": true, "type": "string" }, - "project": { - "description": "Project ID for this request.", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "reservation": { + "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "reservationBlock": { + "description": "The name of the reservation block. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -81520,42 +82257,46 @@ }, "parameterOrder": [ "project", - "networkProfile" + "zone", + "reservation", + "reservationBlock" ], + "request": { + "$ref": "ReservationsBlocksPerformMaintenanceRequest" + }, "response": { - "$ref": "NetworkProfile" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ], - "description": "Returns the specified network profile." + "description": "Allows customers to perform maintenance on a reservation block" } } }, - "reservationBlocks": { + "reservationSubBlocks": { "methods": { "get": { - "id": "compute.reservationBlocks.get", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", + "id": "compute.reservationSubBlocks.get", + "path": "projects/{project}/zones/{zone}/{parentName}/reservationSubBlocks/{reservationSubBlock}", + "flatPath": "projects/{project}/zones/{zone}/{parentName}/reservationSubBlocks/{reservationSubBlock}", "httpMethod": "GET", "parameters": { - "project": { - "description": "Project ID for this request.", + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of reservations/{reservation_name}/reservationBlocks/{reservation_block_name}", "location": "path", "required": true, "type": "string" }, - "reservation": { - "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", + "project": { + "description": "Project ID for this request.", "location": "path", "required": true, "type": "string" }, - "reservationBlock": { - "description": "The name of the reservation block. Name should conform to RFC1035 or be a resource ID.", + "reservationSubBlock": { + "description": "The name of the reservation subBlock. Name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -81570,23 +82311,23 @@ "parameterOrder": [ "project", "zone", - "reservation", - "reservationBlock" + "parentName", + "reservationSubBlock" ], "response": { - "$ref": "ReservationBlocksGetResponse" + "$ref": "ReservationSubBlocksGetResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Retrieves information about the specified reservation block." + "description": "Retrieves information about the specified reservation subBlock." }, "list": { - "id": "compute.reservationBlocks.list", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", + "id": "compute.reservationSubBlocks.list", + "path": "projects/{project}/zones/{zone}/{parentName}/reservationSubBlocks", + "flatPath": "projects/{project}/zones/{zone}/{parentName}/reservationSubBlocks", "httpMethod": "GET", "parameters": { "filter": { @@ -81612,14 +82353,14 @@ "location": "query", "type": "string" }, - "project": { - "description": "Project ID for this request.", + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of reservations/{reservation_name}/reservationBlocks/{reservation_block_name}", "location": "path", "required": true, "type": "string" }, - "reservation": { - "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", + "project": { + "description": "Project ID for this request.", "location": "path", "required": true, "type": "string" @@ -81639,71 +82380,17 @@ "parameterOrder": [ "project", "zone", - "reservation" + "parentName" ], "response": { - "$ref": "ReservationBlocksListResponse" + "$ref": "ReservationSubBlocksListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ], - "description": "Retrieves a list of reservation blocks under a single reservation." - }, - "performMaintenance": { - "id": "compute.reservationBlocks.performMaintenance", - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", - "httpMethod": "POST", - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "The name of the reservation. Name should conform to RFC1035 or be a resource ID.", - "location": "path", - "required": true, - "type": "string" - }, - "reservationBlock": { - "description": "The name of the reservation block. Name should conform to RFC1035 or be a resource ID.", - "location": "path", - "required": true, - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request. Zone name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - } - }, - "parameterOrder": [ - "project", - "zone", - "reservation", - "reservationBlock" - ], - "request": { - "$ref": "ReservationsBlocksPerformMaintenanceRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ], - "description": "Allows customers to perform maintenance on a reservation block" + "description": "Retrieves a list of reservation subBlocks under a single reservation." } } }, @@ -90962,108 +91649,5 @@ } } } - }, - "kind": "discovery#restDescription", - "servicePath": "compute/v1/", - "protocol": "rest", - "id": "compute:v1", - "version": "v1", - "description": "Creates and runs virtual machines on Google Cloud Platform. ", - "ownerDomain": "google.com", - "baseUrl": "https://compute.googleapis.com/compute/v1/", - "basePath": "/compute/v1/", - "mtlsRootUrl": "https://compute.mtls.googleapis.com/", - "parameters": { - "access_token": { - "type": "string", - "description": "OAuth access token.", - "location": "query" - }, - "alt": { - "type": "string", - "description": "Data format for response.", - "default": "json", - "enum": [ - "json", - "media", - "proto" - ], - "enumDescriptions": [ - "Responses with Content-Type of application/json", - "Media download with context-dependent Content-Type", - "Responses with Content-Type of application/x-protobuf" - ], - "location": "query" - }, - "callback": { - "type": "string", - "description": "JSONP", - "location": "query" - }, - "fields": { - "type": "string", - "description": "Selector specifying which fields to include in a partial response.", - "location": "query" - }, - "key": { - "type": "string", - "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", - "location": "query" - }, - "oauth_token": { - "type": "string", - "description": "OAuth 2.0 token for the current user.", - "location": "query" - }, - "prettyPrint": { - "type": "boolean", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "location": "query" - }, - "quotaUser": { - "type": "string", - "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", - "location": "query" - }, - "upload_protocol": { - "type": "string", - "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", - "location": "query" - }, - "uploadType": { - "type": "string", - "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", - "location": "query" - }, - "userIp": { - "type": "string", - "description": "Legacy name for parameter that has been superseded by `quotaUser`.", - "location": "query" - }, - "$.xgafv": { - "type": "string", - "description": "V1 error format.", - "enum": [ - "1", - "2" - ], - "enumDescriptions": [ - "v1 error format", - "v2 error format" - ], - "location": "query" - } - }, - "icons": { - "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", - "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" - }, - "name": "compute", - "batchPath": "batch/compute/v1", - "documentationLink": "https://cloud.google.com/compute/", - "title": "Compute Engine API", - "discoveryVersion": "v1", - "rootUrl": "https://compute.googleapis.com/", - "ownerName": "Google" + } } diff --git a/generator/generator_config.textproto b/generator/generator_config.textproto index 9b2ff9aa5844e..e1b511ff37187 100644 --- a/generator/generator_config.textproto +++ b/generator/generator_config.textproto @@ -1727,6 +1727,15 @@ discovery_products { generate_grpc_transport: false } + rest_services { + service_proto_path: "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto" + product_path: "google/cloud/compute/reservation_sub_blocks/v1" + initial_copyright_year: "2025" + retryable_status_codes: ["kUnavailable"] + generate_rest_transport: true + generate_grpc_transport: false + } + # update_discovery_doc.sh additions } diff --git a/google/cloud/compute/accelerator_types/v1/accelerator_types_proto_export.h b/google/cloud/compute/accelerator_types/v1/accelerator_types_proto_export.h index 97820bcf8c1cc..8f644e40f5b01 100644 --- a/google/cloud/compute/accelerator_types/v1/accelerator_types_proto_export.h +++ b/google/cloud/compute/accelerator_types/v1/accelerator_types_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ACCELERATOR_TYPES_V1_ACCELERATOR_TYPES_PROTO_EXPORT_H diff --git a/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h index 47af213330a25..bb0c441bf0197 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h @@ -1127,7 +1127,7 @@ class BackendBucketsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.backend_buckets.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/backend_buckets/v1/backend_buckets.proto#L483} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1162,7 +1162,7 @@ class BackendBucketsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.backend_buckets.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/backend_buckets/v1/backend_buckets.proto#L483} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/backend_buckets/v1/backend_buckets_proto_export.h b/google/cloud/compute/backend_buckets/v1/backend_buckets_proto_export.h index 990d0fb268bb7..30602e44b4413 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_proto_export.h +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_proto_export.h @@ -31,9 +31,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_BACKEND_BUCKETS_V1_BACKEND_BUCKETS_PROTO_EXPORT_H diff --git a/google/cloud/compute/backend_services/v1/backend_services_client.h b/google/cloud/compute/backend_services/v1/backend_services_client.h index 06b3acff7c61b..9499b66b71f2b 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_client.h +++ b/google/cloud/compute/backend_services/v1/backend_services_client.h @@ -1494,7 +1494,7 @@ class BackendServicesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.backend_services.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/backend_services/v1/backend_services.proto#L732} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1529,7 +1529,7 @@ class BackendServicesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.backend_services.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/backend_services/v1/backend_services.proto#L732} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/backend_services/v1/backend_services_proto_export.h b/google/cloud/compute/backend_services/v1/backend_services_proto_export.h index 8cef1fd66d7fe..28179d889f54c 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_proto_export.h +++ b/google/cloud/compute/backend_services/v1/backend_services_proto_export.h @@ -34,9 +34,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_BACKEND_SERVICES_V1_BACKEND_SERVICES_PROTO_EXPORT_H diff --git a/google/cloud/compute/disk_types/v1/disk_types_proto_export.h b/google/cloud/compute/disk_types/v1/disk_types_proto_export.h index 49b592b130fe3..ba257307a7cfe 100644 --- a/google/cloud/compute/disk_types/v1/disk_types_proto_export.h +++ b/google/cloud/compute/disk_types/v1/disk_types_proto_export.h @@ -26,7 +26,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_DISK_TYPES_V1_DISK_TYPES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include +#include #include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/disks/v1/disks_client.cc b/google/cloud/compute/disks/v1/disks_client.cc index fe7f0cb275f44..999fc83ca84f7 100644 --- a/google/cloud/compute/disks/v1/disks_client.cc +++ b/google/cloud/compute/disks/v1/disks_client.cc @@ -160,6 +160,58 @@ DisksClient::BulkInsert( return connection_->BulkInsert(operation); } +future> +DisksClient::BulkSetLabels( + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkZoneSetLabelsRequest const& + bulk_zone_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_bulk_zone_set_labels_request_resource() = + bulk_zone_set_labels_request_resource; + return connection_->BulkSetLabels(request); +} + +StatusOr DisksClient::BulkSetLabels( + NoAwaitTag, std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkZoneSetLabelsRequest const& + bulk_zone_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_bulk_zone_set_labels_request_resource() = + bulk_zone_set_labels_request_resource; + return connection_->BulkSetLabels(NoAwaitTag{}, request); +} + +future> +DisksClient::BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkSetLabels(request); +} + +StatusOr DisksClient::BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkSetLabels(NoAwaitTag{}, request); +} + +future> +DisksClient::BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkSetLabels(operation); +} + future> DisksClient::CreateSnapshot( std::string const& project, std::string const& zone, diff --git a/google/cloud/compute/disks/v1/disks_client.h b/google/cloud/compute/disks/v1/disks_client.h index 1e2c2e857c47b..9900761b35432 100644 --- a/google/cloud/compute/disks/v1/disks_client.h +++ b/google/cloud/compute/disks/v1/disks_client.h @@ -116,7 +116,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.AddResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L283} + /// [google.cloud.cpp.compute.disks.v1.AddResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L297} /// // clang-format on future> @@ -177,7 +177,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.AddResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L283} + /// [google.cloud.cpp.compute.disks.v1.AddResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L297} /// // clang-format on future> @@ -247,8 +247,8 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.AggregatedListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L320} - /// [google.cloud.cpp.compute.v1.DisksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_023.proto#L153} + /// [google.cloud.cpp.compute.disks.v1.AggregatedListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L334} + /// [google.cloud.cpp.compute.v1.DisksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_017.proto#L170} /// // clang-format on StreamRange< @@ -290,8 +290,8 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.AggregatedListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L320} - /// [google.cloud.cpp.compute.v1.DisksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_023.proto#L153} + /// [google.cloud.cpp.compute.disks.v1.AggregatedListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L334} + /// [google.cloud.cpp.compute.v1.DisksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_017.proto#L170} /// // clang-format on StreamRange< @@ -329,7 +329,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.BulkInsertRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L402} + /// [google.cloud.cpp.compute.disks.v1.BulkInsertRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L416} /// // clang-format on future> BulkInsert( @@ -386,7 +386,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.BulkInsertRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L402} + /// [google.cloud.cpp.compute.disks.v1.BulkInsertRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L416} /// // clang-format on future> BulkInsert( @@ -422,6 +422,131 @@ class DisksClient { google::cloud::cpp::compute::v1::Operation const& operation, Options opts = {}); + // clang-format off + /// + /// Sets the labels on many disks at once. To learn more about labels, read the + /// Labeling Resources documentation. + /// https://cloud.google.com/compute/docs/reference/rest/v1/disks/bulkSetLabels + /// + /// @param project Project ID for this request. + /// @param zone The name of the zone for this request. + /// @param bulk_zone_set_labels_request_resource The BulkZoneSetLabelsRequest for this request. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.cpp.compute.v1.Operation] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: http://cloud/compute/docs/api/how-tos/api-requests-responses#handling_api_responses + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.disks.v1.BulkSetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L449} + /// + // clang-format on + future> BulkSetLabels( + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkZoneSetLabelsRequest const& + bulk_zone_set_labels_request_resource, + Options opts = {}); + + // clang-format off + /// + /// @copybrief BulkSetLabels + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::cloud::cpp::compute::v1::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr BulkSetLabels( + NoAwaitTag, std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkZoneSetLabelsRequest const& + bulk_zone_set_labels_request_resource, + Options opts = {}); + + // clang-format off + /// + /// Sets the labels on many disks at once. To learn more about labels, read the + /// Labeling Resources documentation. + /// https://cloud.google.com/compute/docs/reference/rest/v1/disks/bulkSetLabels + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.cpp.compute.disks.v1.BulkSetLabelsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return A [`future`] that becomes satisfied when the LRO + /// ([Long Running Operation]) completes or the polling policy in effect + /// for this call is exhausted. The future is satisfied with an error if + /// the LRO completes with an error or the polling policy is exhausted. + /// In this case the [`StatusOr`] returned by the future contains the + /// error. If the LRO completes successfully the value of the future + /// contains the LRO's result. For this RPC the result is a + /// [google.cloud.cpp.compute.v1.Operation] proto message. + /// The C++ class representing this message is created by Protobuf, using + /// the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [Long Running Operation]: http://cloud/compute/docs/api/how-tos/api-requests-responses#handling_api_responses + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.disks.v1.BulkSetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L449} + /// + // clang-format on + future> BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief BulkSetLabels + /// + /// Specifying the [`NoAwaitTag`] immediately returns the + /// [`google::cloud::cpp::compute::v1::Operation`] that corresponds to the Long Running + /// Operation that has been started. No polling for operation status occurs. + /// + /// [`NoAwaitTag`]: @ref google::cloud::NoAwaitTag + /// + // clang-format on + StatusOr BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// @copybrief BulkSetLabels + /// + /// This method accepts a `google::cloud::cpp::compute::v1::Operation` that corresponds + /// to a previously started Long Running Operation (LRO) and polls the status + /// of the LRO in the background. + /// + // clang-format on + future> BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a snapshot of a specified persistent disk. For regular snapshot @@ -454,7 +579,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.CreateSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L435} + /// [google.cloud.cpp.compute.disks.v1.CreateSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L486} /// // clang-format on future> CreateSnapshot( @@ -514,7 +639,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.CreateSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L435} + /// [google.cloud.cpp.compute.disks.v1.CreateSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L486} /// // clang-format on future> CreateSnapshot( @@ -583,7 +708,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.DeleteDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L475} + /// [google.cloud.cpp.compute.disks.v1.DeleteDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L526} /// // clang-format on future> DeleteDisk( @@ -639,7 +764,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.DeleteDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L475} + /// [google.cloud.cpp.compute.disks.v1.DeleteDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L526} /// // clang-format on future> DeleteDisk( @@ -696,7 +821,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.GetDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L507} + /// [google.cloud.cpp.compute.disks.v1.GetDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L558} /// [google.cloud.cpp.compute.v1.Disk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_014.proto#L49} /// // clang-format on @@ -728,7 +853,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.GetDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L507} + /// [google.cloud.cpp.compute.disks.v1.GetDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L558} /// [google.cloud.cpp.compute.v1.Disk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_014.proto#L49} /// // clang-format on @@ -758,7 +883,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.GetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L520} + /// [google.cloud.cpp.compute.disks.v1.GetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L571} /// [google.cloud.cpp.compute.v1.Policy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_007.proto#L178} /// // clang-format on @@ -791,7 +916,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.GetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L520} + /// [google.cloud.cpp.compute.disks.v1.GetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L571} /// [google.cloud.cpp.compute.v1.Policy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_007.proto#L178} /// // clang-format on @@ -832,7 +957,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.InsertDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L538} + /// [google.cloud.cpp.compute.disks.v1.InsertDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L589} /// // clang-format on future> InsertDisk( @@ -891,7 +1016,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.InsertDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L538} + /// [google.cloud.cpp.compute.disks.v1.InsertDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L589} /// // clang-format on future> InsertDisk( @@ -956,7 +1081,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L574} + /// [google.cloud.cpp.compute.disks.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L625} /// [google.cloud.cpp.compute.v1.Disk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_014.proto#L49} /// // clang-format on @@ -996,7 +1121,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L574} + /// [google.cloud.cpp.compute.disks.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L625} /// [google.cloud.cpp.compute.v1.Disk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_014.proto#L49} /// // clang-format on @@ -1033,7 +1158,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.RemoveResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L645} + /// [google.cloud.cpp.compute.disks.v1.RemoveResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L696} /// // clang-format on future> @@ -1093,7 +1218,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.RemoveResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L645} + /// [google.cloud.cpp.compute.disks.v1.RemoveResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L696} /// // clang-format on future> @@ -1162,7 +1287,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.ResizeRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L682} + /// [google.cloud.cpp.compute.disks.v1.ResizeRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L733} /// // clang-format on future> Resize( @@ -1222,7 +1347,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.ResizeRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L682} + /// [google.cloud.cpp.compute.disks.v1.ResizeRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L733} /// // clang-format on future> Resize( @@ -1281,7 +1406,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.SetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L718} + /// [google.cloud.cpp.compute.disks.v1.SetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L769} /// [google.cloud.cpp.compute.v1.Policy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_007.proto#L178} /// // clang-format on @@ -1317,7 +1442,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.SetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L718} + /// [google.cloud.cpp.compute.disks.v1.SetIamPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L769} /// [google.cloud.cpp.compute.v1.Policy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_007.proto#L178} /// // clang-format on @@ -1356,7 +1481,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.SetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L736} + /// [google.cloud.cpp.compute.disks.v1.SetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L787} /// // clang-format on future> SetLabels( @@ -1416,7 +1541,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.SetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L736} + /// [google.cloud.cpp.compute.disks.v1.SetLabelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L787} /// // clang-format on future> SetLabels( @@ -1481,7 +1606,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StartAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L773} + /// [google.cloud.cpp.compute.disks.v1.StartAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L824} /// // clang-format on future> @@ -1541,7 +1666,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StartAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L773} + /// [google.cloud.cpp.compute.disks.v1.StartAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L824} /// // clang-format on future> @@ -1609,7 +1734,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StopAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L810} + /// [google.cloud.cpp.compute.disks.v1.StopAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L861} /// // clang-format on future> @@ -1663,7 +1788,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StopAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L810} + /// [google.cloud.cpp.compute.disks.v1.StopAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L861} /// // clang-format on future> @@ -1733,7 +1858,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StopGroupAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L842} + /// [google.cloud.cpp.compute.disks.v1.StopGroupAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L893} /// // clang-format on future> @@ -1794,7 +1919,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.StopGroupAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L842} + /// [google.cloud.cpp.compute.disks.v1.StopGroupAsyncReplicationRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L893} /// // clang-format on future> @@ -1855,8 +1980,8 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L877} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L928} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1891,8 +2016,8 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L877} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L928} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1933,7 +2058,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.UpdateDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L895} + /// [google.cloud.cpp.compute.disks.v1.UpdateDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L946} /// // clang-format on future> UpdateDisk( @@ -1992,7 +2117,7 @@ class DisksClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.disks.v1.UpdateDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L895} + /// [google.cloud.cpp.compute.disks.v1.UpdateDiskRequest]: @cloud_cpp_reference_link{google/cloud/compute/disks/v1/disks.proto#L946} /// // clang-format on future> UpdateDisk( diff --git a/google/cloud/compute/disks/v1/disks_connection.cc b/google/cloud/compute/disks/v1/disks_connection.cc index 75c37b71740f7..9bb6c7435ae0b 100644 --- a/google/cloud/compute/disks/v1/disks_connection.cc +++ b/google/cloud/compute/disks/v1/disks_connection.cc @@ -93,6 +93,30 @@ DisksConnection::BulkInsert(google::cloud::cpp::compute::v1::Operation const&) { Status(StatusCode::kUnimplemented, "not implemented")); } +future> +DisksConnection::BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr +DisksConnection::BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const&) { diff --git a/google/cloud/compute/disks/v1/disks_connection.h b/google/cloud/compute/disks/v1/disks_connection.h index 4edbe281d22af..52e4036d8e657 100644 --- a/google/cloud/compute/disks/v1/disks_connection.h +++ b/google/cloud/compute/disks/v1/disks_connection.h @@ -213,6 +213,19 @@ class DisksConnection { virtual future> BulkInsert(google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> + BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request); + + virtual StatusOr BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request); + + virtual future> + BulkSetLabels(google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& diff --git a/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.cc b/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.cc index 8a7acb1e8ca58..22570441a98a8 100644 --- a/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.cc +++ b/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.cc @@ -49,6 +49,11 @@ Idempotency DisksConnectionIdempotencyPolicy::BulkInsert( return Idempotency::kNonIdempotent; } +Idempotency DisksConnectionIdempotencyPolicy::BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const&) { + return Idempotency::kNonIdempotent; +} + Idempotency DisksConnectionIdempotencyPolicy::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const&) { return Idempotency::kNonIdempotent; diff --git a/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.h b/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.h index a539f5eb52a11..e340a7e299230 100644 --- a/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.h +++ b/google/cloud/compute/disks/v1/disks_connection_idempotency_policy.h @@ -47,6 +47,10 @@ class DisksConnectionIdempotencyPolicy { virtual google::cloud::Idempotency BulkInsert( google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request); + virtual google::cloud::Idempotency BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request); + virtual google::cloud::Idempotency CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request); diff --git a/google/cloud/compute/disks/v1/disks_proto_export.h b/google/cloud/compute/disks/v1/disks_proto_export.h index 14dc19bdedaef..f5f402cb141c3 100644 --- a/google/cloud/compute/disks/v1/disks_proto_export.h +++ b/google/cloud/compute/disks/v1/disks_proto_export.h @@ -29,13 +29,13 @@ #include #include #include -#include -#include +#include +#include #include -#include -#include -#include +#include +#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_DISKS_V1_DISKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc index 7ae5766bf7747..ca9dfa5e8f090 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc +++ b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc @@ -344,6 +344,139 @@ DisksRestConnectionImpl::BulkInsert( }); } +future> +DisksRestConnectionImpl::BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return stub->AsyncBulkSetLabels(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkSetLabels(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +DisksRestConnectionImpl::BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkSetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return stub_->BulkSetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h index df0aef43ec349..867340946d65c 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h +++ b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h @@ -81,6 +81,18 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { future> BulkInsert( google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + StatusOr BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + future> BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request) override; diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.cc b/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.cc index 2e2a6693def60..6c6d7cc05d797 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.cc +++ b/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.cc @@ -114,6 +114,40 @@ DisksRestLogging::BulkInsert( rest_context, options, request, __func__, tracing_options_); } +future> +DisksRestLogging::AsyncBulkSetLabels( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return child_->AsyncBulkSetLabels(cq, std::move(rest_context), + std::move(options), request); + }, + cq, std::move(rest_context), std::move(options), request, __func__, + tracing_options_); +} + +StatusOr +DisksRestLogging::BulkSetLabels( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + return child_->BulkSetLabels(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + future> DisksRestLogging::AsyncCreateSnapshot( CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.h b/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.h index 99da01f0911b9..347ca0b28687b 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.h +++ b/google/cloud/compute/disks/v1/internal/disks_rest_logging_decorator.h @@ -76,6 +76,20 @@ class DisksRestLogging : public DisksRestStub { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) override; + future> + AsyncBulkSetLabels( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + StatusOr BulkSetLabels( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + future> AsyncCreateSnapshot( google::cloud::CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.cc b/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.cc index 56b742f28e6cd..807de2f35a467 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.cc +++ b/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.cc @@ -87,6 +87,27 @@ DisksRestMetadata::BulkInsert( return child_->BulkInsert(rest_context, options, request); } +future> +DisksRestMetadata::AsyncBulkSetLabels( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + SetMetadata(*rest_context, *options); + return child_->AsyncBulkSetLabels(cq, std::move(rest_context), + std::move(options), request); +} + +StatusOr +DisksRestMetadata::BulkSetLabels( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + SetMetadata(rest_context, options); + return child_->BulkSetLabels(rest_context, options, request); +} + future> DisksRestMetadata::AsyncCreateSnapshot( CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.h b/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.h index 84556a65f96eb..807c5881b0b15 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.h +++ b/google/cloud/compute/disks/v1/internal/disks_rest_metadata_decorator.h @@ -74,6 +74,20 @@ class DisksRestMetadata : public DisksRestStub { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) override; + google::cloud::future> + AsyncBulkSetLabels( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + StatusOr BulkSetLabels( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + google::cloud::future> AsyncCreateSnapshot( google::cloud::CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_stub.cc b/google/cloud/compute/disks/v1/internal/disks_rest_stub.cc index 622b2c5b27fe0..f7ef6066e38e1 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_stub.cc +++ b/google/cloud/compute/disks/v1/internal/disks_rest_stub.cc @@ -189,6 +189,66 @@ DefaultDisksRestStub::BulkInsert( std::move(query_params)); } +future> +DefaultDisksRestStub::AsyncBulkSetLabels( + CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + promise> p; + future> f = + p.get_future(); + std::thread t{ + [](auto p, auto service, auto request, auto rest_context, auto options) { + std::vector> query_params; + query_params.push_back({"request_id", request.request_id()}); + query_params.push_back({"resource", request.resource()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + p.set_value( + rest_internal::Post( + *service, *rest_context, + request.bulk_zone_set_labels_request_resource(), false, + absl::StrCat("/", "compute", "/", + rest_internal::DetermineApiVersion("v1", *options), + "/", "projects", "/", request.project(), "/", + "zones", "/", request.zone(), "/", "disks", "/", + "bulkSetLabels"), + std::move(query_params))); + }, + std::move(p), + service_, + request, + std::move(rest_context), + std::move(options)}; + return f.then([t = std::move(t), cq](auto f) mutable { + cq.RunAsync([t = std::move(t)]() mutable { t.join(); }); + return f.get(); + }); +} + +StatusOr +DefaultDisksRestStub::BulkSetLabels( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + std::vector> query_params; + query_params.push_back({"request_id", request.request_id()}); + query_params.push_back({"resource", request.resource()}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Post( + *service_, rest_context, request.bulk_zone_set_labels_request_resource(), + false, + absl::StrCat("/", "compute", "/", + rest_internal::DetermineApiVersion("v1", options), "/", + "projects", "/", request.project(), "/", "zones", "/", + request.zone(), "/", "disks", "/", "bulkSetLabels"), + std::move(query_params)); +} + future> DefaultDisksRestStub::AsyncCreateSnapshot( CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_stub.h b/google/cloud/compute/disks/v1/internal/disks_rest_stub.h index f73fd823a7769..226ec07a61fcc 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_stub.h +++ b/google/cloud/compute/disks/v1/internal/disks_rest_stub.h @@ -73,6 +73,20 @@ class DisksRestStub { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) = 0; + virtual future> + AsyncBulkSetLabels( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) = 0; + + virtual StatusOr BulkSetLabels( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) = 0; + virtual future> AsyncCreateSnapshot( google::cloud::CompletionQueue& cq, @@ -304,6 +318,20 @@ class DefaultDisksRestStub : public DisksRestStub { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) override; + future> + AsyncBulkSetLabels( + google::cloud::CompletionQueue& cq, + std::unique_ptr rest_context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + StatusOr BulkSetLabels( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + future> AsyncCreateSnapshot( google::cloud::CompletionQueue& cq, diff --git a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc index bef69b9bf439c..4071184a022ab 100644 --- a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc +++ b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc @@ -108,6 +108,36 @@ DisksTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(operation)); } +future> +DisksTracingConnection::BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::BulkSetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BulkSetLabels(request)); +} + +StatusOr +DisksTracingConnection::BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::BulkSetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->BulkSetLabels(NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::BulkSetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BulkSetLabels(operation)); +} + future> DisksTracingConnection::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& diff --git a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h index fbb83112a6371..d3b50df9aa47a 100644 --- a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h +++ b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h @@ -71,6 +71,18 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { future> BulkInsert( google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkSetLabels( + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + StatusOr BulkSetLabels( + NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request) override; + + future> BulkSetLabels( + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request) override; diff --git a/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h b/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h index a4a5578e09905..930ec396d69f3 100644 --- a/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h +++ b/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h @@ -137,6 +137,49 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { (google::cloud::cpp::compute::v1::Operation const& operation), (override)); + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// BulkSetLabels(Matcher(_))) + /// @endcode + MOCK_METHOD( + future>, + BulkSetLabels, + (google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// EXPECT_CALL(*mock, BulkSetLabels(_, _)) + /// @endcode + MOCK_METHOD( + StatusOr, BulkSetLabels, + (NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkSetLabelsRequest const& + request), + (override)); + + /// To disambiguate calls, use: + /// + /// @code + /// using ::testing::_; + /// using ::testing::Matcher; + /// EXPECT_CALL(*mock, + /// BulkSetLabels(Matcher(_))) + /// @endcode + MOCK_METHOD(future>, + BulkSetLabels, + (google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + /// To disambiguate calls, use: /// /// @code diff --git a/google/cloud/compute/doc/environment-variables.dox b/google/cloud/compute/doc/environment-variables.dox index 46cd5e2dce5e3..721dbc1a020e0 100644 --- a/google/cloud/compute/doc/environment-variables.dox +++ b/google/cloud/compute/doc/environment-variables.dox @@ -326,6 +326,10 @@ environment variables are convenient when troubleshooting problems. `EndpointOption` (which defaults to "compute.googleapis.com") used by `MakeReservationBlocksConnection()`. +- `GOOGLE_CLOUD_CPP_RESERVATION_SUB_BLOCKS_ENDPOINT=...` overrides the + `EndpointOption` (which defaults to "compute.googleapis.com") + used by `MakeReservationSubBlocksConnection()`. + - `GOOGLE_CLOUD_CPP_RESOURCE_POLICIES_ENDPOINT=...` overrides the `EndpointOption` (which defaults to "compute.googleapis.com") used by `MakeResourcePoliciesConnection()`. diff --git a/google/cloud/compute/doc/main.dox b/google/cloud/compute/doc/main.dox index bf1d142d4bc15..d0485b47d27a0 100644 --- a/google/cloud/compute/doc/main.dox +++ b/google/cloud/compute/doc/main.dox @@ -109,6 +109,7 @@ application. - [\c compute_region_zones_v1::RegionZonesClient](@ref google::cloud::compute_region_zones_v1::RegionZonesClient) - [\c compute_regions_v1::RegionsClient](@ref google::cloud::compute_regions_v1::RegionsClient) - [\c compute_reservation_blocks_v1::ReservationBlocksClient](@ref google::cloud::compute_reservation_blocks_v1::ReservationBlocksClient) +- [\c compute_reservation_sub_blocks_v1::ReservationSubBlocksClient](@ref google::cloud::compute_reservation_sub_blocks_v1::ReservationSubBlocksClient) - [\c compute_reservations_v1::ReservationsClient](@ref google::cloud::compute_reservations_v1::ReservationsClient) - [\c compute_resource_policies_v1::ResourcePoliciesClient](@ref google::cloud::compute_resource_policies_v1::ResourcePoliciesClient) - [\c compute_routers_v1::RoutersClient](@ref google::cloud::compute_routers_v1::RoutersClient) diff --git a/google/cloud/compute/doc/override-authentication.dox b/google/cloud/compute/doc/override-authentication.dox index c6841ca027205..6bd7ddb45d859 100644 --- a/google/cloud/compute/doc/override-authentication.dox +++ b/google/cloud/compute/doc/override-authentication.dox @@ -91,6 +91,7 @@ Follow these links to find examples for other \c *Client classes: - [\c compute_region_zones_v1::RegionZonesClient](@ref compute_region_zones_v1::RegionZonesClient-service-account-snippet) - [\c compute_regions_v1::RegionsClient](@ref compute_regions_v1::RegionsClient-service-account-snippet) - [\c compute_reservation_blocks_v1::ReservationBlocksClient](@ref compute_reservation_blocks_v1::ReservationBlocksClient-service-account-snippet) +- [\c compute_reservation_sub_blocks_v1::ReservationSubBlocksClient](@ref compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-service-account-snippet) - [\c compute_reservations_v1::ReservationsClient](@ref compute_reservations_v1::ReservationsClient-service-account-snippet) - [\c compute_resource_policies_v1::ResourcePoliciesClient](@ref compute_resource_policies_v1::ResourcePoliciesClient-service-account-snippet) - [\c compute_routers_v1::RoutersClient](@ref compute_routers_v1::RoutersClient-service-account-snippet) @@ -602,6 +603,12 @@ guide for more details. */ +/*! @page compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-service-account-snippet Override compute_reservation_sub_blocks_v1::ReservationSubBlocksClient Authentication Defaults + +@snippet google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc with-service-account + +*/ + /*! @page compute_reservations_v1::ReservationsClient-service-account-snippet Override compute_reservations_v1::ReservationsClient Authentication Defaults @snippet google/cloud/compute/reservations/v1/samples/reservations_client_samples.cc with-service-account diff --git a/google/cloud/compute/doc/override-endpoint.dox b/google/cloud/compute/doc/override-endpoint.dox index 0b989059693fc..b3868c4f3c930 100644 --- a/google/cloud/compute/doc/override-endpoint.dox +++ b/google/cloud/compute/doc/override-endpoint.dox @@ -91,6 +91,7 @@ Follow these links to find examples for other \c *Client classes: - [\c compute_region_zones_v1::RegionZonesClient](@ref compute_region_zones_v1::RegionZonesClient-endpoint-snippet) - [\c compute_regions_v1::RegionsClient](@ref compute_regions_v1::RegionsClient-endpoint-snippet) - [\c compute_reservation_blocks_v1::ReservationBlocksClient](@ref compute_reservation_blocks_v1::ReservationBlocksClient-endpoint-snippet) +- [\c compute_reservation_sub_blocks_v1::ReservationSubBlocksClient](@ref compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-endpoint-snippet) - [\c compute_reservations_v1::ReservationsClient](@ref compute_reservations_v1::ReservationsClient-endpoint-snippet) - [\c compute_resource_policies_v1::ResourcePoliciesClient](@ref compute_resource_policies_v1::ResourcePoliciesClient-endpoint-snippet) - [\c compute_routers_v1::RoutersClient](@ref compute_routers_v1::RoutersClient-endpoint-snippet) @@ -592,6 +593,12 @@ Follow these links to find examples for other \c *Client classes: */ +/*! @page compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-endpoint-snippet Override compute_reservation_sub_blocks_v1::ReservationSubBlocksClient Endpoint Configuration + +@snippet google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc set-client-endpoint + +*/ + /*! @page compute_reservations_v1::ReservationsClient-endpoint-snippet Override compute_reservations_v1::ReservationsClient Endpoint Configuration @snippet google/cloud/compute/reservations/v1/samples/reservations_client_samples.cc set-client-endpoint diff --git a/google/cloud/compute/doc/override-retry-policies.dox b/google/cloud/compute/doc/override-retry-policies.dox index 0775928b54823..61921c48aafbb 100644 --- a/google/cloud/compute/doc/override-retry-policies.dox +++ b/google/cloud/compute/doc/override-retry-policies.dox @@ -157,6 +157,7 @@ Follow these links to find examples for other \c *Client classes: - [\c compute_region_zones_v1::RegionZonesClient](@ref compute_region_zones_v1::RegionZonesClient-retry-snippet) - [\c compute_regions_v1::RegionsClient](@ref compute_regions_v1::RegionsClient-retry-snippet) - [\c compute_reservation_blocks_v1::ReservationBlocksClient](@ref compute_reservation_blocks_v1::ReservationBlocksClient-retry-snippet) +- [\c compute_reservation_sub_blocks_v1::ReservationSubBlocksClient](@ref compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-retry-snippet) - [\c compute_reservations_v1::ReservationsClient](@ref compute_reservations_v1::ReservationsClient-retry-snippet) - [\c compute_resource_policies_v1::ResourcePoliciesClient](@ref compute_resource_policies_v1::ResourcePoliciesClient-retry-snippet) - [\c compute_routers_v1::RoutersClient](@ref compute_routers_v1::RoutersClient-retry-snippet) @@ -1134,6 +1135,18 @@ Assuming you have created a custom idempotency policy. Such as: */ +/*! @page compute_reservation_sub_blocks_v1::ReservationSubBlocksClient-retry-snippet Override compute_reservation_sub_blocks_v1::ReservationSubBlocksClient Retry Policies + +This shows how to override the retry policies for compute_reservation_sub_blocks_v1::ReservationSubBlocksClient: + +@snippet google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc set-retry-policy + +Assuming you have created a custom idempotency policy. Such as: + +@snippet google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc custom-idempotency-policy + +*/ + /*! @page compute_reservations_v1::ReservationsClient-retry-snippet Override compute_reservations_v1::ReservationsClient Retry Policies This shows how to override the retry policies for compute_reservations_v1::ReservationsClient: diff --git a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h index 5b10a16718f8b..b5c0a1cc04527 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h @@ -629,7 +629,7 @@ class ExternalVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.external_vpn_gateways.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto#L271} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -664,7 +664,7 @@ class ExternalVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.external_vpn_gateways.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto#L271} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_proto_export.h b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_proto_export.h index 4af20d7a49835..2ba9fa472f001 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_proto_export.h +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_proto_export.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_EXTERNAL_VPN_GATEWAYS_V1_EXTERNAL_VPN_GATEWAYS_PROTO_EXPORT_H diff --git a/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h index 658b545db9f6c..8af112bbd5f5d 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h @@ -1625,7 +1625,7 @@ class FirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/firewall_policies/v1/firewall_policies.proto#L614} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1660,7 +1660,7 @@ class FirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/firewall_policies/v1/firewall_policies.proto#L614} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/firewall_policies/v1/firewall_policies_proto_export.h b/google/cloud/compute/firewall_policies/v1/firewall_policies_proto_export.h index 898c090962462..e49fe9dbb1be2 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_proto_export.h +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_proto_export.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_FIREWALL_POLICIES_V1_FIREWALL_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_proto_export.h b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_proto_export.h index 35bf57139ca00..fa3a5ca0fdf04 100644 --- a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_proto_export.h +++ b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_proto_export.h @@ -31,7 +31,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_FORWARDING_RULES_V1_FORWARDING_RULES_PROTO_EXPORT_H diff --git a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_proto_export.h b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_proto_export.h index 0813f4b3b98fd..ae5666e4aaac8 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_proto_export.h +++ b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_FORWARDING_RULES_V1_GLOBAL_FORWARDING_RULES_PROTO_EXPORT_H diff --git a/google/cloud/compute/image_family_views/v1/image_family_views_proto_export.h b/google/cloud/compute/image_family_views/v1/image_family_views_proto_export.h index f22929661b2bc..0a7e7b3e1b323 100644 --- a/google/cloud/compute/image_family_views/v1/image_family_views_proto_export.h +++ b/google/cloud/compute/image_family_views/v1/image_family_views_proto_export.h @@ -26,8 +26,8 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_IMAGE_FAMILY_VIEWS_V1_IMAGE_FAMILY_VIEWS_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include -#include +#include +#include #include #include #include diff --git a/google/cloud/compute/images/v1/images_client.h b/google/cloud/compute/images/v1/images_client.h index cbd00ac5f7dd7..fbc5de28737d0 100644 --- a/google/cloud/compute/images/v1/images_client.h +++ b/google/cloud/compute/images/v1/images_client.h @@ -1053,7 +1053,7 @@ class ImagesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.images.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/images/v1/images.proto#L444} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1088,7 +1088,7 @@ class ImagesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.images.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/images/v1/images.proto#L444} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/images/v1/images_proto_export.h b/google/cloud/compute/images/v1/images_proto_export.h index 9018906f3eec5..fe8b9fa1bfb19 100644 --- a/google/cloud/compute/images/v1/images_proto_export.h +++ b/google/cloud/compute/images/v1/images_proto_export.h @@ -28,15 +28,15 @@ // IWYU pragma: begin_exports #include #include -#include -#include +#include +#include #include #include #include #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_IMAGES_V1_IMAGES_PROTO_EXPORT_H diff --git a/google/cloud/compute/instance_templates/v1/instance_templates_client.h b/google/cloud/compute/instance_templates/v1/instance_templates_client.h index 17b7a4838108b..933ca846657c7 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_client.h +++ b/google/cloud/compute/instance_templates/v1/instance_templates_client.h @@ -721,7 +721,7 @@ class InstanceTemplatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instance_templates.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instance_templates/v1/instance_templates.proto#L387} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -756,7 +756,7 @@ class InstanceTemplatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instance_templates.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instance_templates/v1/instance_templates.proto#L387} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/instance_templates/v1/instance_templates_proto_export.h b/google/cloud/compute/instance_templates/v1/instance_templates_proto_export.h index a75d56234712d..e2affab0876e4 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_proto_export.h +++ b/google/cloud/compute/instance_templates/v1/instance_templates_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include @@ -38,7 +38,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_TEMPLATES_V1_INSTANCE_TEMPLATES_PROTO_EXPORT_H diff --git a/google/cloud/compute/instances/v1/instances_client.h b/google/cloud/compute/instances/v1/instances_client.h index 1cf0deccef32f..d5d4577785289 100644 --- a/google/cloud/compute/instances/v1/instances_client.h +++ b/google/cloud/compute/instances/v1/instances_client.h @@ -379,7 +379,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.AggregatedListInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L774} - /// [google.cloud.cpp.compute.v1.InstancesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L751} + /// [google.cloud.cpp.compute.v1.InstancesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L751} /// // clang-format on StreamRange GetInstance( @@ -1114,7 +1114,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetInstanceRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1099} - /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L93} + /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L93} /// // clang-format on StatusOr GetInstance( @@ -1145,7 +1145,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetEffectiveFirewallsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1043} - /// [google.cloud.cpp.compute.v1.InstancesGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L681} + /// [google.cloud.cpp.compute.v1.InstancesGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L681} /// // clang-format on StatusOr< @@ -1180,7 +1180,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetEffectiveFirewallsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1043} - /// [google.cloud.cpp.compute.v1.InstancesGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L681} + /// [google.cloud.cpp.compute.v1.InstancesGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L681} /// // clang-format on StatusOr< @@ -1211,7 +1211,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetGuestAttributesRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1061} - /// [google.cloud.cpp.compute.v1.GuestAttributes]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L51} + /// [google.cloud.cpp.compute.v1.GuestAttributes]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L51} /// // clang-format on StatusOr GetGuestAttributes( @@ -1243,7 +1243,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetGuestAttributesRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1061} - /// [google.cloud.cpp.compute.v1.GuestAttributes]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L51} + /// [google.cloud.cpp.compute.v1.GuestAttributes]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L51} /// // clang-format on StatusOr GetGuestAttributes( @@ -1337,7 +1337,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetScreenshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1113} - /// [google.cloud.cpp.compute.v1.Screenshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L974} + /// [google.cloud.cpp.compute.v1.Screenshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L974} /// // clang-format on StatusOr GetScreenshot( @@ -1369,7 +1369,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetScreenshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1113} - /// [google.cloud.cpp.compute.v1.Screenshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L974} + /// [google.cloud.cpp.compute.v1.Screenshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L974} /// // clang-format on StatusOr GetScreenshot( @@ -1399,7 +1399,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetSerialPortOutputRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1127} - /// [google.cloud.cpp.compute.v1.SerialPortOutput]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L984} + /// [google.cloud.cpp.compute.v1.SerialPortOutput]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L984} /// // clang-format on StatusOr @@ -1431,7 +1431,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetSerialPortOutputRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1127} - /// [google.cloud.cpp.compute.v1.SerialPortOutput]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L984} + /// [google.cloud.cpp.compute.v1.SerialPortOutput]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L984} /// // clang-format on StatusOr @@ -1461,7 +1461,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetShieldedInstanceIdentityRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1160} - /// [google.cloud.cpp.compute.v1.ShieldedInstanceIdentity]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L1010} + /// [google.cloud.cpp.compute.v1.ShieldedInstanceIdentity]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L1010} /// // clang-format on StatusOr @@ -1494,7 +1494,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.GetShieldedInstanceIdentityRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1160} - /// [google.cloud.cpp.compute.v1.ShieldedInstanceIdentity]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L1010} + /// [google.cloud.cpp.compute.v1.ShieldedInstanceIdentity]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L1010} /// // clang-format on StatusOr @@ -1656,7 +1656,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.ListInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1226} - /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L93} + /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L93} /// // clang-format on StreamRange ListInstances( @@ -1696,7 +1696,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.ListInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1226} - /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L93} + /// [google.cloud.cpp.compute.v1.Instance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L93} /// // clang-format on StreamRange ListInstances( @@ -1738,7 +1738,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.ListReferrersRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1297} - /// [google.cloud.cpp.compute.v1.Reference]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L909} + /// [google.cloud.cpp.compute.v1.Reference]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L909} /// // clang-format on StreamRange ListReferrers( @@ -1782,7 +1782,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.ListReferrersRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L1297} - /// [google.cloud.cpp.compute.v1.Reference]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_021.proto#L909} + /// [google.cloud.cpp.compute.v1.Reference]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_022.proto#L909} /// // clang-format on StreamRange ListReferrers( @@ -4844,7 +4844,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L2259} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -4880,7 +4880,7 @@ class InstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instances.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instances/v1/instances.proto#L2259} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/instances/v1/instances_proto_export.h b/google/cloud/compute/instances/v1/instances_proto_export.h index a5912c8181e29..e6e1496fb52b2 100644 --- a/google/cloud/compute/instances/v1/instances_proto_export.h +++ b/google/cloud/compute/instances/v1/instances_proto_export.h @@ -31,17 +31,17 @@ #include #include #include -#include #include +#include #include #include #include #include #include #include -#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCES_V1_INSTANCES_PROTO_EXPORT_H diff --git a/google/cloud/compute/instant_snapshots/v1/instant_snapshots_client.h b/google/cloud/compute/instant_snapshots/v1/instant_snapshots_client.h index c6cd75925b30f..d47a7e1a27ab9 100644 --- a/google/cloud/compute/instant_snapshots/v1/instant_snapshots_client.h +++ b/google/cloud/compute/instant_snapshots/v1/instant_snapshots_client.h @@ -853,7 +853,7 @@ class InstantSnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instant_snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -889,7 +889,7 @@ class InstantSnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.instant_snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/instant_snapshots/v1/instant_snapshots_proto_export.h b/google/cloud/compute/instant_snapshots/v1/instant_snapshots_proto_export.h index 2b908d9247b43..e0673545f4607 100644 --- a/google/cloud/compute/instant_snapshots/v1/instant_snapshots_proto_export.h +++ b/google/cloud/compute/instant_snapshots/v1/instant_snapshots_proto_export.h @@ -31,9 +31,9 @@ #include #include #include -#include -#include +#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANT_SNAPSHOTS_V1_INSTANT_SNAPSHOTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_client.h b/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_client.h index 9fe87d4e5733f..16d44c42c734c 100644 --- a/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_client.h +++ b/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_client.h @@ -845,7 +845,7 @@ class InterconnectAttachmentGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.interconnect_attachment_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto#L379} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -880,7 +880,7 @@ class InterconnectAttachmentGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.interconnect_attachment_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto#L379} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_proto_export.h b/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_proto_export.h index 8feb6d6c72965..225b1cdf2d962 100644 --- a/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_proto_export.h +++ b/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups_proto_export.h @@ -31,7 +31,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECT_ATTACHMENT_GROUPS_V1_INTERCONNECT_ATTACHMENT_GROUPS_PROTO_EXPORT_H diff --git a/google/cloud/compute/interconnect_groups/v1/interconnect_groups_client.h b/google/cloud/compute/interconnect_groups/v1/interconnect_groups_client.h index e527131454e4d..bbbc345b3e106 100644 --- a/google/cloud/compute/interconnect_groups/v1/interconnect_groups_client.h +++ b/google/cloud/compute/interconnect_groups/v1/interconnect_groups_client.h @@ -950,7 +950,7 @@ class InterconnectGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.interconnect_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto#L394} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -985,7 +985,7 @@ class InterconnectGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.interconnect_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto#L394} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/interconnect_groups/v1/interconnect_groups_proto_export.h b/google/cloud/compute/interconnect_groups/v1/interconnect_groups_proto_export.h index a5b56c80ca18e..39caadcc54c9b 100644 --- a/google/cloud/compute/interconnect_groups/v1/interconnect_groups_proto_export.h +++ b/google/cloud/compute/interconnect_groups/v1/interconnect_groups_proto_export.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECT_GROUPS_V1_INTERCONNECT_GROUPS_PROTO_EXPORT_H diff --git a/google/cloud/compute/license_codes/v1/license_codes_client.h b/google/cloud/compute/license_codes/v1/license_codes_client.h index 54c0d8597310f..5871662395958 100644 --- a/google/cloud/compute/license_codes/v1/license_codes_client.h +++ b/google/cloud/compute/license_codes/v1/license_codes_client.h @@ -177,7 +177,7 @@ class LicenseCodesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.license_codes.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/license_codes/v1/license_codes.proto#L79} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -214,7 +214,7 @@ class LicenseCodesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.license_codes.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/license_codes/v1/license_codes.proto#L79} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/license_codes/v1/license_codes_proto_export.h b/google/cloud/compute/license_codes/v1/license_codes_proto_export.h index 779c9407975e7..e07269cad06f3 100644 --- a/google/cloud/compute/license_codes/v1/license_codes_proto_export.h +++ b/google/cloud/compute/license_codes/v1/license_codes_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_LICENSE_CODES_V1_LICENSE_CODES_PROTO_EXPORT_H diff --git a/google/cloud/compute/licenses/v1/licenses_client.h b/google/cloud/compute/licenses/v1/licenses_client.h index c16d222398cb8..484964081b644 100644 --- a/google/cloud/compute/licenses/v1/licenses_client.h +++ b/google/cloud/compute/licenses/v1/licenses_client.h @@ -639,7 +639,7 @@ class LicensesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.licenses.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/licenses/v1/licenses.proto#L319} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -676,7 +676,7 @@ class LicensesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.licenses.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/licenses/v1/licenses.proto#L319} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/licenses/v1/licenses_proto_export.h b/google/cloud/compute/licenses/v1/licenses_proto_export.h index 89c1f1b910fe4..f352e6e3a94ab 100644 --- a/google/cloud/compute/licenses/v1/licenses_proto_export.h +++ b/google/cloud/compute/licenses/v1/licenses_proto_export.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_LICENSES_V1_LICENSES_PROTO_EXPORT_H diff --git a/google/cloud/compute/machine_images/v1/machine_images_client.h b/google/cloud/compute/machine_images/v1/machine_images_client.h index 63371e06f8b83..4897d96e3335f 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_client.h +++ b/google/cloud/compute/machine_images/v1/machine_images_client.h @@ -754,7 +754,7 @@ class MachineImagesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.machine_images.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/machine_images/v1/machine_images.proto#L328} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -789,7 +789,7 @@ class MachineImagesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.machine_images.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/machine_images/v1/machine_images.proto#L328} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/machine_images/v1/machine_images_proto_export.h b/google/cloud/compute/machine_images/v1/machine_images_proto_export.h index 9b7011fb9c15d..96cec2713fe50 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_proto_export.h +++ b/google/cloud/compute/machine_images/v1/machine_images_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include @@ -38,7 +38,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_MACHINE_IMAGES_V1_MACHINE_IMAGES_PROTO_EXPORT_H diff --git a/google/cloud/compute/machine_types/v1/machine_types_proto_export.h b/google/cloud/compute/machine_types/v1/machine_types_proto_export.h index 5bbc65d58d1ca..f7167dbbce4c4 100644 --- a/google/cloud/compute/machine_types/v1/machine_types_proto_export.h +++ b/google/cloud/compute/machine_types/v1/machine_types_proto_export.h @@ -26,7 +26,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_MACHINE_TYPES_V1_MACHINE_TYPES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include +#include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/network_attachments/v1/network_attachments_client.h b/google/cloud/compute/network_attachments/v1/network_attachments_client.h index 7800fa3b1ced9..d06327d00dbb1 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_client.h +++ b/google/cloud/compute/network_attachments/v1/network_attachments_client.h @@ -854,7 +854,7 @@ class NetworkAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_attachments.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_attachments/v1/network_attachments.proto#L467} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -890,7 +890,7 @@ class NetworkAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_attachments.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_attachments/v1/network_attachments.proto#L467} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/network_attachments/v1/network_attachments_proto_export.h b/google/cloud/compute/network_attachments/v1/network_attachments_proto_export.h index 22a0e991d6adf..f7696c5058233 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_proto_export.h +++ b/google/cloud/compute/network_attachments/v1/network_attachments_proto_export.h @@ -31,7 +31,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_ATTACHMENTS_V1_NETWORK_ATTACHMENTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h index 9b5f8447891ea..4c8e4c4fa782f 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h @@ -966,7 +966,7 @@ class NetworkEndpointGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_endpoint_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto#L571} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1002,7 +1002,7 @@ class NetworkEndpointGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_endpoint_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto#L571} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_proto_export.h b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_proto_export.h index 1a66341aaa8f2..1f4d84ed118cf 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_proto_export.h +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_ENDPOINT_GROUPS_V1_NETWORK_ENDPOINT_GROUPS_PROTO_EXPORT_H diff --git a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h index 476348584ecc4..e273476eb156c 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h @@ -2126,7 +2126,7 @@ class NetworkFirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto#L909} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -2161,7 +2161,7 @@ class NetworkFirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.network_firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto#L909} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_proto_export.h b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_proto_export.h index 7a4512e0e58a1..42358007f98d8 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_proto_export.h +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_proto_export.h @@ -33,7 +33,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_FIREWALL_POLICIES_V1_NETWORK_FIREWALL_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/networks/v1/networks_client.h b/google/cloud/compute/networks/v1/networks_client.h index 72f15d5727d58..4d2cc4578a81f 100644 --- a/google/cloud/compute/networks/v1/networks_client.h +++ b/google/cloud/compute/networks/v1/networks_client.h @@ -408,7 +408,7 @@ class NetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.networks.v1.GetEffectiveFirewallsRequest]: @cloud_cpp_reference_link{google/cloud/compute/networks/v1/networks.proto#L229} - /// [google.cloud.cpp.compute.v1.NetworksGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_030.proto#L514} + /// [google.cloud.cpp.compute.v1.NetworksGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_030.proto#L532} /// // clang-format on StatusOr< @@ -441,7 +441,7 @@ class NetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.networks.v1.GetEffectiveFirewallsRequest]: @cloud_cpp_reference_link{google/cloud/compute/networks/v1/networks.proto#L229} - /// [google.cloud.cpp.compute.v1.NetworksGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_030.proto#L514} + /// [google.cloud.cpp.compute.v1.NetworksGetEffectiveFirewallsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_030.proto#L532} /// // clang-format on StatusOr< diff --git a/google/cloud/compute/networks/v1/networks_proto_export.h b/google/cloud/compute/networks/v1/networks_proto_export.h index 3df69f3f5d14e..2dd2c118a950c 100644 --- a/google/cloud/compute/networks/v1/networks_proto_export.h +++ b/google/cloud/compute/networks/v1/networks_proto_export.h @@ -33,8 +33,8 @@ #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORKS_V1_NETWORKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/node_groups/v1/node_groups_client.h b/google/cloud/compute/node_groups/v1/node_groups_client.h index d94a2ad7bf38a..78a2664163760 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_client.h +++ b/google/cloud/compute/node_groups/v1/node_groups_client.h @@ -1556,7 +1556,7 @@ class NodeGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.node_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/node_groups/v1/node_groups.proto#L806} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1592,7 +1592,7 @@ class NodeGroupsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.node_groups.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/node_groups/v1/node_groups.proto#L806} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/node_groups/v1/node_groups_proto_export.h b/google/cloud/compute/node_groups/v1/node_groups_proto_export.h index a29c2677fd097..ed1b911a8940d 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_proto_export.h +++ b/google/cloud/compute/node_groups/v1/node_groups_proto_export.h @@ -33,10 +33,10 @@ #include #include #include -#include -#include +#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_GROUPS_V1_NODE_GROUPS_PROTO_EXPORT_H diff --git a/google/cloud/compute/node_templates/v1/node_templates_client.h b/google/cloud/compute/node_templates/v1/node_templates_client.h index 560727fa2e71f..1f0ff09841bdb 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_client.h +++ b/google/cloud/compute/node_templates/v1/node_templates_client.h @@ -710,7 +710,7 @@ class NodeTemplatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.node_templates.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/node_templates/v1/node_templates.proto#L411} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -746,7 +746,7 @@ class NodeTemplatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.node_templates.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/node_templates/v1/node_templates.proto#L411} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/node_templates/v1/node_templates_proto_export.h b/google/cloud/compute/node_templates/v1/node_templates_proto_export.h index 7accbc0f13d9c..36f798ee32d71 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_proto_export.h +++ b/google/cloud/compute/node_templates/v1/node_templates_proto_export.h @@ -33,7 +33,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_TEMPLATES_V1_NODE_TEMPLATES_PROTO_EXPORT_H diff --git a/google/cloud/compute/node_types/v1/node_types_proto_export.h b/google/cloud/compute/node_types/v1/node_types_proto_export.h index ed3e7799404e0..2f8af99f8c0f9 100644 --- a/google/cloud/compute/node_types/v1/node_types_proto_export.h +++ b/google/cloud/compute/node_types/v1/node_types_proto_export.h @@ -26,7 +26,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_TYPES_V1_NODE_TYPES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include +#include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h index 91ba66c7e73ee..c533a615c836b 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h @@ -716,7 +716,7 @@ class PacketMirroringsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.packet_mirrorings.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto#L400} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -752,7 +752,7 @@ class PacketMirroringsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.packet_mirrorings.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto#L400} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_proto_export.h b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_proto_export.h index eac8aa30ee2dd..01f2f2a4b78ad 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_proto_export.h +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_proto_export.h @@ -28,7 +28,7 @@ // IWYU pragma: begin_exports #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_PACKET_MIRRORINGS_V1_PACKET_MIRRORINGS_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h index 1420489a374ee..e138cb1655972 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h @@ -1049,7 +1049,7 @@ class RegionBackendServicesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_backend_services.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_backend_services/v1/region_backend_services.proto#L556} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1085,7 +1085,7 @@ class RegionBackendServicesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_backend_services.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_backend_services/v1/region_backend_services.proto#L556} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/region_backend_services/v1/region_backend_services_proto_export.h b/google/cloud/compute/region_backend_services/v1/region_backend_services_proto_export.h index 492d877cdb745..2478f4420fb94 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_proto_export.h +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_proto_export.h @@ -33,8 +33,8 @@ #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_BACKEND_SERVICES_V1_REGION_BACKEND_SERVICES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_commitments/v1/region_commitments_client.h b/google/cloud/compute/region_commitments/v1/region_commitments_client.h index 86738e640e6b5..c5406f6f2f20b 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_client.h +++ b/google/cloud/compute/region_commitments/v1/region_commitments_client.h @@ -120,7 +120,7 @@ class RegionCommitmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_commitments.v1.AggregatedListRegionCommitmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_commitments/v1/region_commitments.proto#L102} - /// [google.cloud.cpp.compute.v1.CommitmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_018.proto#L433} + /// [google.cloud.cpp.compute.v1.CommitmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L433} /// // clang-format on StreamRange GetCommitment( @@ -228,7 +228,7 @@ class RegionCommitmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_commitments.v1.GetCommitmentRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_commitments/v1/region_commitments.proto#L184} - /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_018.proto#L31} + /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L31} /// // clang-format on StatusOr GetCommitment( @@ -389,7 +389,7 @@ class RegionCommitmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_commitments.v1.ListRegionCommitmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_commitments/v1/region_commitments.proto#L232} - /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_018.proto#L31} + /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L31} /// // clang-format on StreamRange @@ -430,7 +430,7 @@ class RegionCommitmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_commitments.v1.ListRegionCommitmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_commitments/v1/region_commitments.proto#L232} - /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_018.proto#L31} + /// [google.cloud.cpp.compute.v1.Commitment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L31} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_commitments/v1/region_commitments_proto_export.h b/google/cloud/compute/region_commitments/v1/region_commitments_proto_export.h index 0147efb5d7514..02853679510f2 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_proto_export.h +++ b/google/cloud/compute/region_commitments/v1/region_commitments_proto_export.h @@ -29,11 +29,11 @@ #include #include #include -#include +#include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_COMMITMENTS_V1_REGION_COMMITMENTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_disk_types/v1/region_disk_types_proto_export.h b/google/cloud/compute/region_disk_types/v1/region_disk_types_proto_export.h index 3da015d496c3a..76c63148a8b62 100644 --- a/google/cloud/compute/region_disk_types/v1/region_disk_types_proto_export.h +++ b/google/cloud/compute/region_disk_types/v1/region_disk_types_proto_export.h @@ -26,7 +26,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_DISK_TYPES_V1_REGION_DISK_TYPES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include +#include #include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/region_disks/v1/region_disks_client.h b/google/cloud/compute/region_disks/v1/region_disks_client.h index 8202c0cabe4fa..e424823157013 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_client.h +++ b/google/cloud/compute/region_disks/v1/region_disks_client.h @@ -1783,7 +1783,7 @@ class RegionDisksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_disks/v1/region_disks.proto#L782} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1819,7 +1819,7 @@ class RegionDisksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_disks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_disks/v1/region_disks.proto#L782} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/region_disks/v1/region_disks_proto_export.h b/google/cloud/compute/region_disks/v1/region_disks_proto_export.h index d24a46e0575b2..82e6b73feea98 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_proto_export.h +++ b/google/cloud/compute/region_disks/v1/region_disks_proto_export.h @@ -29,13 +29,13 @@ #include #include #include -#include +#include #include #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_DISKS_V1_REGION_DISKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_proto_export.h b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_proto_export.h index e1bda6090738d..f0edd7469c75d 100644 --- a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_proto_export.h +++ b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_proto_export.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/google/cloud/compute/region_instances/v1/region_instances_proto_export.h b/google/cloud/compute/region_instances/v1/region_instances_proto_export.h index 99ff69048cf0c..7ef9fc52b6d02 100644 --- a/google/cloud/compute/region_instances/v1/region_instances_proto_export.h +++ b/google/cloud/compute/region_instances/v1/region_instances_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_client.h b/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_client.h index 6d4f3338721c8..cbd8becf05e5b 100644 --- a/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_client.h +++ b/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_client.h @@ -773,7 +773,7 @@ class RegionInstantSnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_instant_snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto#L376} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -809,7 +809,7 @@ class RegionInstantSnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_instant_snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto#L376} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_proto_export.h b/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_proto_export.h index eefcf8993a095..9fffbbb1d664a 100644 --- a/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_proto_export.h +++ b/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots_proto_export.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_INSTANT_SNAPSHOTS_V1_REGION_INSTANT_SNAPSHOTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h index 05b16627a8647..c1f9e08d70d49 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h @@ -1692,7 +1692,7 @@ class RegionNetworkFirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_network_firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto#L765} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1728,7 +1728,7 @@ class RegionNetworkFirewallPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_network_firewall_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto#L765} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_proto_export.h b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_proto_export.h index 005792733faa5..080803d93fa6a 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_proto_export.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_proto_export.h @@ -34,7 +34,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_NETWORK_FIREWALL_POLICIES_V1_REGION_NETWORK_FIREWALL_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h index d57c5881bf22a..6214adf5ba77a 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h @@ -360,7 +360,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.GetSecurityPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L247} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StatusOr GetSecurityPolicy( @@ -392,7 +392,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.GetSecurityPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L247} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StatusOr GetSecurityPolicy( @@ -422,7 +422,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.GetRuleRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L229} - /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L371} + /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L371} /// // clang-format on StatusOr GetRule( @@ -454,7 +454,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.GetRuleRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L229} - /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L371} + /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L371} /// // clang-format on StatusOr GetRule( @@ -619,7 +619,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.ListRegionSecurityPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L298} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StreamRange @@ -661,7 +661,7 @@ class RegionSecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_security_policies.v1.ListRegionSecurityPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_security_policies/v1/region_security_policies.proto#L298} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_security_policies/v1/region_security_policies_proto_export.h b/google/cloud/compute/region_security_policies/v1/region_security_policies_proto_export.h index e7283a72b16ff..32dce40c47df9 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_proto_export.h +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_proto_export.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SECURITY_POLICIES_V1_REGION_SECURITY_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h index 94ca769bd636a..6bfc68675a202 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h @@ -234,7 +234,7 @@ class RegionSslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_certificates.v1.GetSslCertificateRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto#L122} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StatusOr GetSslCertificate( @@ -267,7 +267,7 @@ class RegionSslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_certificates.v1.GetSslCertificateRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto#L122} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StatusOr GetSslCertificate( @@ -432,7 +432,7 @@ class RegionSslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_certificates.v1.ListRegionSslCertificatesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto#L170} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StreamRange @@ -474,7 +474,7 @@ class RegionSslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_certificates.v1.ListRegionSslCertificatesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto#L170} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_proto_export.h b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_proto_export.h index d3e2d5bed1f4c..c69c5f831c727 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_proto_export.h +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SSL_CERTIFICATES_V1_REGION_SSL_CERTIFICATES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h index 6e2674223ac06..7ae7298329d5f 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h @@ -235,7 +235,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.GetSslPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L147} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StatusOr GetSslPolicy( @@ -267,7 +267,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.GetSslPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L147} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StatusOr GetSslPolicy( @@ -429,7 +429,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.ListRegionSslPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L268} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StreamRange ListRegionSslPolicies( @@ -470,7 +470,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.ListRegionSslPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L268} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StreamRange ListRegionSslPolicies( @@ -500,7 +500,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.ListAvailableFeaturesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L196} - /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L132} + /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L132} /// // clang-format on StatusOr< @@ -534,7 +534,7 @@ class RegionSslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_ssl_policies.v1.ListAvailableFeaturesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto#L196} - /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L132} + /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L132} /// // clang-format on StatusOr< diff --git a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_proto_export.h b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_proto_export.h index b671edd8cd022..d839a4f024f42 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_proto_export.h +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SSL_POLICIES_V1_REGION_SSL_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h index e2eafbce84db2..a59ff1954f9b6 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h @@ -235,7 +235,7 @@ class RegionTargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_http_proxies.v1.GetTargetHttpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto#L135} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StatusOr GetTargetHttpProxy( @@ -267,7 +267,7 @@ class RegionTargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_http_proxies.v1.GetTargetHttpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto#L135} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StatusOr GetTargetHttpProxy( @@ -433,7 +433,7 @@ class RegionTargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_http_proxies.v1.ListRegionTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto#L183} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StreamRange @@ -475,7 +475,7 @@ class RegionTargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_http_proxies.v1.ListRegionTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto#L183} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_proto_export.h b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_proto_export.h index 4dd887d1190ed..754ff87456051 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_proto_export.h +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_HTTP_PROXIES_V1_REGION_TARGET_HTTP_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h index f19e161c27646..d6589ad06eb75 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h @@ -236,7 +236,7 @@ class RegionTargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_https_proxies.v1.GetTargetHttpsProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto#L164} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StatusOr @@ -268,7 +268,7 @@ class RegionTargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_https_proxies.v1.GetTargetHttpsProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto#L164} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StatusOr @@ -435,7 +435,7 @@ class RegionTargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_https_proxies.v1.ListRegionTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto#L212} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StreamRange @@ -477,7 +477,7 @@ class RegionTargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_https_proxies.v1.ListRegionTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto#L212} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_proto_export.h b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_proto_export.h index 5b6fde63da4e0..b4c347234702c 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_proto_export.h +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_proto_export.h @@ -28,8 +28,8 @@ // IWYU pragma: begin_exports #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_HTTPS_PROXIES_V1_REGION_TARGET_HTTPS_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h index e3a55701214dc..662ca9be58440 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h @@ -233,7 +233,7 @@ class RegionTargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_tcp_proxies.v1.GetTargetTcpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto#L121} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StatusOr GetTargetTcpProxy( @@ -265,7 +265,7 @@ class RegionTargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_tcp_proxies.v1.GetTargetTcpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto#L121} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StatusOr GetTargetTcpProxy( @@ -430,7 +430,7 @@ class RegionTargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_tcp_proxies.v1.ListRegionTargetTcpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto#L169} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StreamRange @@ -472,7 +472,7 @@ class RegionTargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_target_tcp_proxies.v1.ListRegionTargetTcpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto#L169} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StreamRange diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_proto_export.h b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_proto_export.h index 2b0b5e447813c..e7ab0d5cbacdc 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_proto_export.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_TCP_PROXIES_V1_REGION_TARGET_TCP_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h index 614ea18c80148..279be0d92d68d 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h @@ -228,7 +228,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.GetUrlMapRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L155} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StatusOr GetUrlMap( @@ -260,7 +260,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.GetUrlMapRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L155} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StatusOr GetUrlMap( @@ -422,7 +422,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.ListRegionUrlMapsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L195} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StreamRange ListRegionUrlMaps( @@ -463,7 +463,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.ListRegionUrlMapsRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L195} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StreamRange ListRegionUrlMaps( @@ -750,7 +750,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.ValidateRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L325} - /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L1144} + /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L1145} /// // clang-format on StatusOr Validate( @@ -787,7 +787,7 @@ class RegionUrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_url_maps.v1.ValidateRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_url_maps/v1/region_url_maps.proto#L325} - /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L1144} + /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L1145} /// // clang-format on StatusOr Validate( diff --git a/google/cloud/compute/region_url_maps/v1/region_url_maps_proto_export.h b/google/cloud/compute/region_url_maps/v1/region_url_maps_proto_export.h index 425dcdf1badc2..692fd4ee85601 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_proto_export.h +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include #include #include #include diff --git a/google/cloud/compute/region_zones/v1/region_zones_client.h b/google/cloud/compute/region_zones/v1/region_zones_client.h index 905053df6cc1b..e7e8105d007bd 100644 --- a/google/cloud/compute/region_zones/v1/region_zones_client.h +++ b/google/cloud/compute/region_zones/v1/region_zones_client.h @@ -117,7 +117,7 @@ class RegionZonesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_zones.v1.ListRegionZonesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_zones/v1/region_zones.proto#L51} - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// // clang-format on StreamRange ListRegionZones( @@ -158,7 +158,7 @@ class RegionZonesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.region_zones.v1.ListRegionZonesRequest]: @cloud_cpp_reference_link{google/cloud/compute/region_zones/v1/region_zones.proto#L51} - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// // clang-format on StreamRange ListRegionZones( diff --git a/google/cloud/compute/region_zones/v1/region_zones_proto_export.h b/google/cloud/compute/region_zones/v1/region_zones_proto_export.h index 4cfcef1dbaad2..313674342836f 100644 --- a/google/cloud/compute/region_zones/v1/region_zones_proto_export.h +++ b/google/cloud/compute/region_zones/v1/region_zones_proto_export.h @@ -26,8 +26,8 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_ZONES_V1_REGION_ZONES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_ZONES_V1_REGION_ZONES_PROTO_EXPORT_H diff --git a/google/cloud/compute/regions/v1/regions_proto_export.h b/google/cloud/compute/regions/v1/regions_proto_export.h index 2351907446324..8419a142d3838 100644 --- a/google/cloud/compute/regions/v1/regions_proto_export.h +++ b/google/cloud/compute/regions/v1/regions_proto_export.h @@ -26,7 +26,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGIONS_V1_REGIONS_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include +#include #include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/reservation_blocks/v1/reservation_blocks_client.h b/google/cloud/compute/reservation_blocks/v1/reservation_blocks_client.h index c4f4dbb59a380..bec9c7959de7f 100644 --- a/google/cloud/compute/reservation_blocks/v1/reservation_blocks_client.h +++ b/google/cloud/compute/reservation_blocks/v1/reservation_blocks_client.h @@ -113,7 +113,7 @@ class ReservationBlocksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.reservation_blocks.v1.GetReservationBlocksGetResponseRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto#L76} - /// [google.cloud.cpp.compute.v1.ReservationBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_112.proto#L85} + /// [google.cloud.cpp.compute.v1.ReservationBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_112.proto#L96} /// // clang-format on StatusOr @@ -148,7 +148,7 @@ class ReservationBlocksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.reservation_blocks.v1.GetReservationBlocksGetResponseRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto#L76} - /// [google.cloud.cpp.compute.v1.ReservationBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_112.proto#L85} + /// [google.cloud.cpp.compute.v1.ReservationBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_112.proto#L96} /// // clang-format on StatusOr diff --git a/google/cloud/compute/reservation_blocks/v1/reservation_blocks_proto_export.h b/google/cloud/compute/reservation_blocks/v1/reservation_blocks_proto_export.h index cbfe57eb7272a..28e1cddaf8079 100644 --- a/google/cloud/compute/reservation_blocks/v1/reservation_blocks_proto_export.h +++ b/google/cloud/compute/reservation_blocks/v1/reservation_blocks_proto_export.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_BLOCKS_V1_RESERVATION_BLOCKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.cc new file mode 100644 index 0000000000000..ffa66d7f9e4ad --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.cc @@ -0,0 +1,75 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h" +#include "google/cloud/internal/populate_common_options.h" +#include "google/cloud/internal/populate_grpc_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +namespace { +auto constexpr kBackoffScaling = 2.0; +} // namespace + +Options ReservationSubBlocksDefaultOptions(Options options) { + options = internal::PopulateCommonOptions( + std::move(options), "GOOGLE_CLOUD_CPP_RESERVATION_SUB_BLOCKS_ENDPOINT", + "", "GOOGLE_CLOUD_CPP_RESERVATION_SUB_BLOCKS_AUTHORITY", + "compute.googleapis.com"); + options = internal::PopulateGrpcOptions(std::move(options)); + if (!options.has()) { + options.set( + compute_reservation_sub_blocks_v1:: + ReservationSubBlocksLimitedTimeRetryPolicy(std::chrono::minutes(30)) + .clone()); + } + if (!options.has()) { + options.set( + ExponentialBackoffPolicy( + std::chrono::seconds(0), std::chrono::seconds(1), + std::chrono::minutes(5), kBackoffScaling, kBackoffScaling) + .clone()); + } + if (!options + .has()) { + options.set( + compute_reservation_sub_blocks_v1:: + MakeDefaultReservationSubBlocksConnectionIdempotencyPolicy()); + } + + return options; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h new file mode 100644 index 0000000000000..bdba9c42ee1d6 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h @@ -0,0 +1,38 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_OPTION_DEFAULTS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_OPTION_DEFAULTS_H + +#include "google/cloud/options.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +Options ReservationSubBlocksDefaultOptions(Options options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_OPTION_DEFAULTS_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.cc new file mode 100644 index 0000000000000..828c885cc2603 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.cc @@ -0,0 +1,106 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_retry_loop.h" +#include "google/cloud/rest_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +ReservationSubBlocksRestConnectionImpl::ReservationSubBlocksRestConnectionImpl( + std::unique_ptr background, + std::shared_ptr + stub, + Options options) + : background_(std::move(background)), + stub_(std::move(stub)), + options_(internal::MergeOptions( + std::move(options), ReservationSubBlocksConnection::options())) {} + +StatusOr +ReservationSubBlocksRestConnectionImpl::GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetReservationSubBlocksGetResponse(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + return stub_->GetReservationSubBlocksGetResponse(rest_context, options, + request); + }, + *current, request, __func__); +} + +StreamRange +ReservationSubBlocksRestConnectionImpl::ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = + idempotency_policy(*current)->ListReservationSubBlocks(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksRetryPolicy>( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) { + return stub->ListReservationSubBlocks(rest_context, options, + request); + }, + options, r, function_name); + }, + [](google::cloud::cpp::compute::v1::ReservationSubBlocksListResponse r) { + std::vector + result(r.items().size()); + auto& messages = *r.mutable_items(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.h new file mode 100644 index 0000000000000..e2df1f24c8bd6 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.h @@ -0,0 +1,103 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_CONNECTION_IMPL_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_CONNECTION_IMPL_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_retry_traits.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class ReservationSubBlocksRestConnectionImpl + : public compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection { + public: + ~ReservationSubBlocksRestConnectionImpl() override = default; + + ReservationSubBlocksRestConnectionImpl( + std::unique_ptr background, + std::shared_ptr + stub, + Options options); + + Options options() override { return options_; } + + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) override; + + StreamRange + ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request) override; + + private: + static std::unique_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksRetryPolicy> + retry_policy(Options const& options) { + return options + .get() + ->clone(); + } + + static std::unique_ptr backoff_policy(Options const& options) { + return options + .get() + ->clone(); + } + + static std::unique_ptr + idempotency_policy(Options const& options) { + return options + .get() + ->clone(); + } + + std::unique_ptr background_; + std::shared_ptr< + compute_reservation_sub_blocks_v1_internal::ReservationSubBlocksRestStub> + stub_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_CONNECTION_IMPL_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.cc new file mode 100644 index 0000000000000..c5626776e83d0 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.cc @@ -0,0 +1,70 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.h" +#include "google/cloud/internal/log_wrapper.h" +#include "google/cloud/status_or.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +ReservationSubBlocksRestLogging::ReservationSubBlocksRestLogging( + std::shared_ptr child, + TracingOptions tracing_options, std::set components) + : child_(std::move(child)), + tracing_options_(std::move(tracing_options)), + components_(std::move(components)) {} + +StatusOr +ReservationSubBlocksRestLogging::GetReservationSubBlocksGetResponse( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + return child_->GetReservationSubBlocksGetResponse(rest_context, options, + request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +StatusOr +ReservationSubBlocksRestLogging::ListReservationSubBlocks( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) { + return child_->ListReservationSubBlocks(rest_context, options, request); + }, + rest_context, options, request, __func__, tracing_options_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.h new file mode 100644 index 0000000000000..0583afc63ff54 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.h @@ -0,0 +1,70 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_LOGGING_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_LOGGING_DECORATOR_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/future.h" +#include "google/cloud/internal/rest_context.h" +#include "google/cloud/tracing_options.h" +#include "google/cloud/version.h" +#include +#include +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class ReservationSubBlocksRestLogging : public ReservationSubBlocksRestStub { + public: + ~ReservationSubBlocksRestLogging() override = default; + ReservationSubBlocksRestLogging( + std::shared_ptr child, + TracingOptions tracing_options, std::set components); + + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) override; + + StatusOr + ListReservationSubBlocks( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) override; + + private: + std::shared_ptr child_; + TracingOptions tracing_options_; + std::set components_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_LOGGING_DECORATOR_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.cc new file mode 100644 index 0000000000000..85b95822088e9 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.cc @@ -0,0 +1,72 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.h" +#include "google/cloud/internal/absl_str_cat_quiet.h" +#include "google/cloud/internal/api_client_header.h" +#include "google/cloud/internal/rest_set_metadata.h" +#include "google/cloud/status_or.h" +#include "absl/strings/str_format.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +ReservationSubBlocksRestMetadata::ReservationSubBlocksRestMetadata( + std::shared_ptr child, + std::string api_client_header) + : child_(std::move(child)), + api_client_header_( + api_client_header.empty() + ? google::cloud::internal::GeneratedLibClientHeader() + : std::move(api_client_header)) {} + +StatusOr +ReservationSubBlocksRestMetadata::GetReservationSubBlocksGetResponse( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + SetMetadata(rest_context, options); + return child_->GetReservationSubBlocksGetResponse(rest_context, options, + request); +} + +StatusOr +ReservationSubBlocksRestMetadata::ListReservationSubBlocks( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) { + SetMetadata(rest_context, options); + return child_->ListReservationSubBlocks(rest_context, options, request); +} + +void ReservationSubBlocksRestMetadata::SetMetadata( + rest_internal::RestContext& rest_context, Options const& options, + std::vector const& params) { + google::cloud::rest_internal::SetMetadata(rest_context, options, params, + api_client_header_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.h new file mode 100644 index 0000000000000..380d16e1f3a83 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.h @@ -0,0 +1,71 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_METADATA_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_METADATA_DECORATOR_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/future.h" +#include "google/cloud/rest_options.h" +#include "google/cloud/version.h" +#include +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class ReservationSubBlocksRestMetadata : public ReservationSubBlocksRestStub { + public: + ~ReservationSubBlocksRestMetadata() override = default; + explicit ReservationSubBlocksRestMetadata( + std::shared_ptr child, + std::string api_client_header = ""); + + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) override; + + StatusOr + ListReservationSubBlocks( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) override; + + private: + void SetMetadata(rest_internal::RestContext& rest_context, + Options const& options, + std::vector const& params = {}); + + std::shared_ptr child_; + std::string api_client_header_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_METADATA_DECORATOR_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.cc new file mode 100644 index 0000000000000..5bdaa067fae12 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.cc @@ -0,0 +1,93 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/common_options.h" +#include "google/cloud/internal/absl_str_cat_quiet.h" +#include "google/cloud/internal/rest_stub_helpers.h" +#include "google/cloud/status_or.h" +#include +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +DefaultReservationSubBlocksRestStub::DefaultReservationSubBlocksRestStub( + Options options) + : service_(rest_internal::MakePooledRestClient( + options.get(), options)), + options_(std::move(options)) {} + +DefaultReservationSubBlocksRestStub::DefaultReservationSubBlocksRestStub( + std::shared_ptr service, Options options) + : service_(std::move(service)), options_(std::move(options)) {} + +StatusOr +DefaultReservationSubBlocksRestStub::GetReservationSubBlocksGetResponse( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + std::vector> query_params; + return rest_internal::Get< + google::cloud::cpp::compute::v1::ReservationSubBlocksGetResponse>( + *service_, rest_context, request, false, + absl::StrCat("/", "compute", "/", + rest_internal::DetermineApiVersion("v1", options), "/", + "projects", "/", request.project(), "/", "zones", "/", + request.zone(), "/", request.parent_name(), "/", + "reservationSubBlocks", "/", + request.reservation_sub_block()), + std::move(query_params)); +} + +StatusOr +DefaultReservationSubBlocksRestStub::ListReservationSubBlocks( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) { + std::vector> query_params; + query_params.push_back({"filter", request.filter()}); + query_params.push_back( + {"max_results", std::to_string(request.max_results())}); + query_params.push_back({"order_by", request.order_by()}); + query_params.push_back({"page_token", request.page_token()}); + query_params.push_back({"return_partial_success", + (request.return_partial_success() ? "1" : "0")}); + query_params = + rest_internal::TrimEmptyQueryParameters(std::move(query_params)); + return rest_internal::Get< + google::cloud::cpp::compute::v1::ReservationSubBlocksListResponse>( + *service_, rest_context, request, false, + absl::StrCat("/", "compute", "/", + rest_internal::DetermineApiVersion("v1", options), "/", + "projects", "/", request.project(), "/", "zones", "/", + request.zone(), "/", request.parent_name(), "/", + "reservationSubBlocks"), + std::move(query_params)); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h new file mode 100644 index 0000000000000..dcbf778613d27 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h @@ -0,0 +1,90 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_H + +#include "google/cloud/completion_queue.h" +#include "google/cloud/internal/rest_client.h" +#include "google/cloud/internal/rest_context.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class ReservationSubBlocksRestStub { + public: + virtual ~ReservationSubBlocksRestStub() = default; + + virtual StatusOr< + google::cloud::cpp::compute::v1::ReservationSubBlocksGetResponse> + GetReservationSubBlocksGetResponse( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) = 0; + + virtual StatusOr< + google::cloud::cpp::compute::v1::ReservationSubBlocksListResponse> + ListReservationSubBlocks( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) = 0; +}; + +class DefaultReservationSubBlocksRestStub + : public ReservationSubBlocksRestStub { + public: + ~DefaultReservationSubBlocksRestStub() override = default; + + explicit DefaultReservationSubBlocksRestStub(Options options); + DefaultReservationSubBlocksRestStub( + std::shared_ptr service, Options options); + + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) override; + + StatusOr + ListReservationSubBlocks( + google::cloud::rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest const& request) override; + + private: + std::shared_ptr service_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.cc new file mode 100644 index 0000000000000..827eb362b5a9e --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.cc @@ -0,0 +1,57 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/common_options.h" +#include "google/cloud/internal/algorithm.h" +#include "google/cloud/internal/populate_rest_options.h" +#include "google/cloud/log.h" +#include "google/cloud/options.h" +#include "google/cloud/rest_options.h" +#include "absl/strings/match.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr +CreateDefaultReservationSubBlocksRestStub(Options const& options) { + auto opts = internal::PopulateRestOptions(options); + std::shared_ptr stub = + std::make_shared(std::move(opts)); + stub = std::make_shared(std::move(stub)); + if (internal::Contains(options.get(), "rpc")) { + GCP_LOG(INFO) << "Enabled logging for REST rpc calls"; + stub = std::make_shared( + std::move(stub), options.get(), + options.get()); + } + return stub; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h new file mode 100644 index 0000000000000..0f4c3852259b4 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h @@ -0,0 +1,41 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_FACTORY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_FACTORY_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr +CreateDefaultReservationSubBlocksRestStub(Options const& options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_REST_STUB_FACTORY_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_retry_traits.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_retry_traits.h new file mode 100644 index 0000000000000..8f42ff2f854be --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_retry_traits.h @@ -0,0 +1,44 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_RETRY_TRAITS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_RETRY_TRAITS_H + +#include "google/cloud/status.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// Define the gRPC status code semantics for retrying requests. +struct ReservationSubBlocksRetryTraits { + static bool IsPermanentFailure(google::cloud::Status const& status) { + return status.code() != StatusCode::kOk && + status.code() != StatusCode::kUnavailable; + } +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_RETRY_TRAITS_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_sources.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_sources.cc new file mode 100644 index 0000000000000..c36e44ef8c613 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_sources.cc @@ -0,0 +1,32 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +// NOLINTBEGIN(bugprone-suspicious-include) +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_logging_decorator.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_metadata_decorator.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.cc" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.cc" +// NOLINTEND(bugprone-suspicious-include) diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.cc b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.cc new file mode 100644 index 0000000000000..4a155cb612158 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.cc @@ -0,0 +1,85 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h" +#include "google/cloud/internal/opentelemetry.h" +#include "google/cloud/internal/traced_stream_range.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +#ifdef GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + +ReservationSubBlocksTracingConnection::ReservationSubBlocksTracingConnection( + std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> + child) + : child_(std::move(child)) {} + +StatusOr +ReservationSubBlocksTracingConnection::GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) { + auto span = internal::MakeSpan( + "compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection::" + "GetReservationSubBlocksGetResponse"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, + child_->GetReservationSubBlocksGetResponse(request)); +} + +StreamRange +ReservationSubBlocksTracingConnection::ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request) { + auto span = internal::MakeSpan( + "compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection::" + "ListReservationSubBlocks"); + internal::OTelScope scope(span); + auto sr = child_->ListReservationSubBlocks(std::move(request)); + return internal::MakeTracedStreamRange< + google::cloud::cpp::compute::v1::ReservationSubBlock>(std::move(span), + std::move(sr)); +} + +#endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + +std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> +MakeReservationSubBlocksTracingConnection( + std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> + conn) { +#ifdef GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + if (internal::TracingEnabled(conn->options())) { + conn = std::make_shared( + std::move(conn)); + } +#endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + return conn; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h new file mode 100644 index 0000000000000..633507cc2d7a0 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h @@ -0,0 +1,82 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_TRACING_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_TRACING_CONNECTION_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +#ifdef GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + +class ReservationSubBlocksTracingConnection + : public compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection { + public: + ~ReservationSubBlocksTracingConnection() override = default; + + explicit ReservationSubBlocksTracingConnection( + std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> + child); + + Options options() override { return child_->options(); } + + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request) override; + + StreamRange + ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request) override; + + private: + std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> + child_; +}; + +#endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY + +/** + * Conditionally applies the tracing decorator to the given connection. + * + * The connection is only decorated if tracing is enabled (as determined by the + * connection's options). + */ +std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> +MakeReservationSubBlocksTracingConnection( + std::shared_ptr< + compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection> + conn); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_INTERNAL_RESERVATION_SUB_BLOCKS_TRACING_CONNECTION_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/mocks/mock_reservation_sub_blocks_connection.h b/google/cloud/compute/reservation_sub_blocks/v1/mocks/mock_reservation_sub_blocks_connection.h new file mode 100644 index 0000000000000..2d637cb7684b1 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/mocks/mock_reservation_sub_blocks_connection.h @@ -0,0 +1,72 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_MOCKS_MOCK_RESERVATION_SUB_BLOCKS_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_MOCKS_MOCK_RESERVATION_SUB_BLOCKS_CONNECTION_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1_mocks { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * A class to mock `ReservationSubBlocksConnection`. + * + * Application developers may want to test their code with simulated responses, + * including errors, from an object of type `ReservationSubBlocksClient`. To do + * so, construct an object of type `ReservationSubBlocksClient` with an instance + * of this class. Then use the Google Test framework functions to program the + * behavior of this mock. + * + * @see [This example][bq-mock] for how to test your application with GoogleTest. + * While the example showcases types from the BigQuery library, the underlying + * principles apply for any pair of `*Client` and `*Connection`. + * + * [bq-mock]: @cloud_cpp_docs_link{bigquery,bigquery-read-mock} + */ +class MockReservationSubBlocksConnection + : public compute_reservation_sub_blocks_v1::ReservationSubBlocksConnection { + public: + MOCK_METHOD(Options, options, (), (override)); + + MOCK_METHOD( + StatusOr< + google::cloud::cpp::compute::v1::ReservationSubBlocksGetResponse>, + GetReservationSubBlocksGetResponse, + (google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request), + (override)); + + MOCK_METHOD( + (StreamRange), + ListReservationSubBlocks, + (google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request), + (override)); +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1_mocks +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_MOCKS_MOCK_RESERVATION_SUB_BLOCKS_CONNECTION_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.cc b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.cc new file mode 100644 index 0000000000000..fe25dc2e83361 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.cc @@ -0,0 +1,85 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +ReservationSubBlocksClient::ReservationSubBlocksClient( + std::shared_ptr connection, Options opts) + : connection_(std::move(connection)), + options_( + internal::MergeOptions(std::move(opts), connection_->options())) {} +ReservationSubBlocksClient::~ReservationSubBlocksClient() = default; + +StatusOr +ReservationSubBlocksClient::GetReservationSubBlocksGetResponse( + std::string const& project, std::string const& zone, + std::string const& parent_name, std::string const& reservation_sub_block, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_parent_name(parent_name); + request.set_reservation_sub_block(reservation_sub_block); + return connection_->GetReservationSubBlocksGetResponse(request); +} + +StatusOr +ReservationSubBlocksClient::GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetReservationSubBlocksGetResponse(request); +} + +StreamRange +ReservationSubBlocksClient::ListReservationSubBlocks( + std::string const& project, std::string const& zone, + std::string const& parent_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_parent_name(parent_name); + return connection_->ListReservationSubBlocks(request); +} + +StreamRange +ReservationSubBlocksClient::ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListReservationSubBlocks(std::move(request)); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.h new file mode 100644 index 0000000000000..07afd9e3999f5 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.h @@ -0,0 +1,252 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CLIENT_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CLIENT_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.h" +#include "google/cloud/future.h" +#include "google/cloud/options.h" +#include "google/cloud/polling_policy.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// +/// Service for the reservationSubBlocks resource. +/// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks +/// +/// @par Equality +/// +/// Instances of this class created via copy-construction or copy-assignment +/// always compare equal. Instances created with equal +/// `std::shared_ptr<*Connection>` objects compare equal. Objects that compare +/// equal share the same underlying resources. +/// +/// @par Performance +/// +/// Creating a new instance of this class is a relatively expensive operation, +/// new objects establish new connections to the service. In contrast, +/// copy-construction, move-construction, and the corresponding assignment +/// operations are relatively efficient as the copies share all underlying +/// resources. +/// +/// @par Thread Safety +/// +/// Concurrent access to different instances of this class, even if they compare +/// equal, is guaranteed to work. Two or more threads operating on the same +/// instance of this class is not guaranteed to work. Since copy-construction +/// and move-construction is a relatively efficient operation, consider using +/// such a copy when using this class from multiple threads. +/// +class ReservationSubBlocksClient { + public: + explicit ReservationSubBlocksClient( + std::shared_ptr connection, + Options opts = {}); + ~ReservationSubBlocksClient(); + + ///@{ + /// @name Copy and move support + ReservationSubBlocksClient(ReservationSubBlocksClient const&) = default; + ReservationSubBlocksClient& operator=(ReservationSubBlocksClient const&) = + default; + ReservationSubBlocksClient(ReservationSubBlocksClient&&) = default; + ReservationSubBlocksClient& operator=(ReservationSubBlocksClient&&) = default; + ///@} + + ///@{ + /// @name Equality + friend bool operator==(ReservationSubBlocksClient const& a, + ReservationSubBlocksClient const& b) { + return a.connection_ == b.connection_; + } + friend bool operator!=(ReservationSubBlocksClient const& a, + ReservationSubBlocksClient const& b) { + return !(a == b); + } + ///@} + + // clang-format off + /// + /// Retrieves information about the specified reservation subBlock. + /// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/get + /// + /// @param project Project ID for this request. + /// @param zone Name of the zone for this request. Zone name should conform to RFC1035. + /// @param parent_name The name of the parent reservation and parent block. In the format of + /// reservations/{reservation_name}/reservationBlocks/{reservation_block_name} + /// @param reservation_sub_block The name of the reservation subBlock. Name should conform to RFC1035 or be + /// a resource ID. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.cpp.compute.v1.ReservationSubBlocksGetResponse]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.GetReservationSubBlocksGetResponseRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto#L62} + /// [google.cloud.cpp.compute.v1.ReservationSubBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L82} + /// + // clang-format on + StatusOr + GetReservationSubBlocksGetResponse(std::string const& project, + std::string const& zone, + std::string const& parent_name, + std::string const& reservation_sub_block, + Options opts = {}); + + // clang-format off + /// + /// Retrieves information about the specified reservation subBlock. + /// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/get + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.GetReservationSubBlocksGetResponseRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.cpp.compute.v1.ReservationSubBlocksGetResponse]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.GetReservationSubBlocksGetResponseRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto#L62} + /// [google.cloud.cpp.compute.v1.ReservationSubBlocksGetResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L82} + /// + // clang-format on + StatusOr + GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Retrieves a list of reservation subBlocks under a single reservation. + /// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/list + /// + /// @param project Project ID for this request. + /// @param zone Name of the zone for this request. Zone name should conform to RFC1035. + /// @param parent_name The name of the parent reservation and parent block. In the format of + /// reservations/{reservation_name}/reservationBlocks/{reservation_block_name} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.cpp.compute.v1.ReservationSubBlock], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.ListReservationSubBlocksRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto#L84} + /// [google.cloud.cpp.compute.v1.ReservationSubBlock]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L25} + /// + // clang-format on + StreamRange + ListReservationSubBlocks(std::string const& project, std::string const& zone, + std::string const& parent_name, Options opts = {}); + + // clang-format off + /// + /// Retrieves a list of reservation subBlocks under a single reservation. + /// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/list + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.ListReservationSubBlocksRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.cpp.compute.v1.ReservationSubBlock], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.cpp.compute.reservation_sub_blocks.v1.ListReservationSubBlocksRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto#L84} + /// [google.cloud.cpp.compute.v1.ReservationSubBlock]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L25} + /// + // clang-format on + StreamRange + ListReservationSubBlocks(google::cloud::cpp::compute::reservation_sub_blocks:: + v1::ListReservationSubBlocksRequest request, + Options opts = {}); + + private: + std::shared_ptr connection_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CLIENT_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.cc b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.cc new file mode 100644 index 0000000000000..faa0f832af3ee --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.cc @@ -0,0 +1,58 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/unified_grpc_credentials.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +ReservationSubBlocksConnection::~ReservationSubBlocksConnection() = default; + +StatusOr +ReservationSubBlocksConnection::GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StreamRange +ReservationSubBlocksConnection::ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h new file mode 100644 index 0000000000000..bbfc4aecc4db9 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h @@ -0,0 +1,209 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_retry_traits.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// The retry policy for `ReservationSubBlocksConnection`. +class ReservationSubBlocksRetryPolicy : public ::google::cloud::RetryPolicy { + public: + /// Creates a new instance of the policy, reset to the initial state. + virtual std::unique_ptr clone() const = 0; +}; + +/** + * A retry policy for `ReservationSubBlocksConnection` based on counting errors. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - More than a prescribed number of transient failures is detected. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class ReservationSubBlocksLimitedErrorCountRetryPolicy + : public ReservationSubBlocksRetryPolicy { + public: + /** + * Create an instance that tolerates up to @p maximum_failures transient + * errors. + * + * @note Disable the retry loop by providing an instance of this policy with + * @p maximum_failures == 0. + */ + explicit ReservationSubBlocksLimitedErrorCountRetryPolicy( + int maximum_failures) + : impl_(maximum_failures) {} + + ReservationSubBlocksLimitedErrorCountRetryPolicy( + ReservationSubBlocksLimitedErrorCountRetryPolicy&& rhs) noexcept + : ReservationSubBlocksLimitedErrorCountRetryPolicy( + rhs.maximum_failures()) {} + ReservationSubBlocksLimitedErrorCountRetryPolicy( + ReservationSubBlocksLimitedErrorCountRetryPolicy const& rhs) noexcept + : ReservationSubBlocksLimitedErrorCountRetryPolicy( + rhs.maximum_failures()) {} + + int maximum_failures() const { return impl_.maximum_failures(); } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique( + maximum_failures()); + } + + // This is provided only for backwards compatibility. + using BaseType = ReservationSubBlocksRetryPolicy; + + private: + google::cloud::internal::LimitedErrorCountRetryPolicy< + compute_reservation_sub_blocks_v1_internal:: + ReservationSubBlocksRetryTraits> + impl_; +}; + +/** + * A retry policy for `ReservationSubBlocksConnection` based on elapsed time. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - The elapsed time in the retry loop exceeds a prescribed duration. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class ReservationSubBlocksLimitedTimeRetryPolicy + : public ReservationSubBlocksRetryPolicy { + public: + /** + * Constructor given a `std::chrono::duration<>` object. + * + * @tparam DurationRep a placeholder to match the `Rep` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the underlying + * arithmetic type used to store the number of ticks. For our purposes it + * is simply a formal parameter. + * @tparam DurationPeriod a placeholder to match the `Period` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the length of the + * tick in seconds, expressed as a `std::ratio<>`. For our purposes it is + * simply a formal parameter. + * @param maximum_duration the maximum time allowed before the policy expires. + * While the application can express this time in any units they desire, + * the class truncates to milliseconds. + * + * @see https://en.cppreference.com/w/cpp/chrono/duration for more information + * about `std::chrono::duration`. + */ + template + explicit ReservationSubBlocksLimitedTimeRetryPolicy( + std::chrono::duration maximum_duration) + : impl_(maximum_duration) {} + + ReservationSubBlocksLimitedTimeRetryPolicy( + ReservationSubBlocksLimitedTimeRetryPolicy&& rhs) noexcept + : ReservationSubBlocksLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + ReservationSubBlocksLimitedTimeRetryPolicy( + ReservationSubBlocksLimitedTimeRetryPolicy const& rhs) noexcept + : ReservationSubBlocksLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + + std::chrono::milliseconds maximum_duration() const { + return impl_.maximum_duration(); + } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique( + maximum_duration()); + } + + // This is provided only for backwards compatibility. + using BaseType = ReservationSubBlocksRetryPolicy; + + private: + google::cloud::internal::LimitedTimeRetryPolicy< + compute_reservation_sub_blocks_v1_internal:: + ReservationSubBlocksRetryTraits> + impl_; +}; + +/** + * The `ReservationSubBlocksConnection` object for `ReservationSubBlocksClient`. + * + * This interface defines virtual methods for each of the user-facing overload + * sets in `ReservationSubBlocksClient`. This allows users to inject custom + * behavior (e.g., with a Google Mock object) when writing tests that use + * objects of type `ReservationSubBlocksClient`. + * + * To create a concrete instance, see `MakeReservationSubBlocksConnection()`. + * + * For mocking, see + * `compute_reservation_sub_blocks_v1_mocks::MockReservationSubBlocksConnection`. + */ +class ReservationSubBlocksConnection { + public: + virtual ~ReservationSubBlocksConnection() = 0; + + virtual Options options() { return Options{}; } + + virtual StatusOr< + google::cloud::cpp::compute::v1::ReservationSubBlocksGetResponse> + GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request); + + virtual StreamRange + ListReservationSubBlocks(google::cloud::cpp::compute::reservation_sub_blocks:: + v1::ListReservationSubBlocksRequest request); +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.cc b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.cc new file mode 100644 index 0000000000000..b130f0c5cdeee --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.cc @@ -0,0 +1,61 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +using ::google::cloud::Idempotency; + +ReservationSubBlocksConnectionIdempotencyPolicy:: + ~ReservationSubBlocksConnectionIdempotencyPolicy() = default; + +std::unique_ptr +ReservationSubBlocksConnectionIdempotencyPolicy::clone() const { + return std::make_unique( + *this); +} + +Idempotency ReservationSubBlocksConnectionIdempotencyPolicy:: + GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency +ReservationSubBlocksConnectionIdempotencyPolicy::ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +std::unique_ptr +MakeDefaultReservationSubBlocksConnectionIdempotencyPolicy() { + return std::make_unique(); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h new file mode 100644 index 0000000000000..99069bb8746fa --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h @@ -0,0 +1,58 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_IDEMPOTENCY_POLICY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_IDEMPOTENCY_POLICY_H + +#include "google/cloud/idempotency.h" +#include "google/cloud/version.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class ReservationSubBlocksConnectionIdempotencyPolicy { + public: + virtual ~ReservationSubBlocksConnectionIdempotencyPolicy(); + + /// Create a new copy of this object. + virtual std::unique_ptr + clone() const; + + virtual google::cloud::Idempotency GetReservationSubBlocksGetResponse( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + GetReservationSubBlocksGetResponseRequest const& request); + + virtual google::cloud::Idempotency ListReservationSubBlocks( + google::cloud::cpp::compute::reservation_sub_blocks::v1:: + ListReservationSubBlocksRequest request); +}; + +std::unique_ptr +MakeDefaultReservationSubBlocksConnectionIdempotencyPolicy(); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_CONNECTION_IDEMPOTENCY_POLICY_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h new file mode 100644 index 0000000000000..ce227ddd0d431 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h @@ -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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_OPTIONS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_OPTIONS_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * Use with `google::cloud::Options` to configure the retry policy. + * + * @ingroup google-cloud-compute-options + */ +struct ReservationSubBlocksRetryPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure the backoff policy. + * + * @ingroup google-cloud-compute-options + */ +struct ReservationSubBlocksBackoffPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure which operations are retried. + * + * @ingroup google-cloud-compute-options + */ +struct ReservationSubBlocksConnectionIdempotencyPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * The options applicable to ReservationSubBlocks. + * + * @ingroup google-cloud-compute-options + */ +using ReservationSubBlocksPolicyOptionList = + OptionList; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_OPTIONS_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_proto_export.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_proto_export.h new file mode 100644 index 0000000000000..74b24fe462cf8 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_proto_export.h @@ -0,0 +1,32 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. + +// The contents of internal/common_xxx.proto files are subject to change, and it +// is not recommended to include their respective headers directly. Including +// the .pb.h file transitively provides all the necessary proto +// definitions. However, it is not IWYU friendly. Including this header file +// uses IWYU pragmas to export the internal/common_xxx.pb.h files as an +// IWYU-friendly alternative. + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_PROTO_EXPORT_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_PROTO_EXPORT_H + +// IWYU pragma: begin_exports +#include +// IWYU pragma: end_exports + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.cc b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.cc new file mode 100644 index 0000000000000..c1c6acad0b415 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.cc @@ -0,0 +1,61 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_option_defaults.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_connection_impl.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_rest_stub_factory.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/internal/reservation_sub_blocks_tracing_connection.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/rest_background_threads_impl.h" +#include "google/cloud/internal/rest_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr +MakeReservationSubBlocksConnectionRest(Options options) { + internal::CheckExpectedOptions( + options, __func__); + options = compute_reservation_sub_blocks_v1_internal:: + ReservationSubBlocksDefaultOptions(std::move(options)); + auto background = std::make_unique< + rest_internal::AutomaticallyCreatedRestBackgroundThreads>(); + auto stub = compute_reservation_sub_blocks_v1_internal:: + CreateDefaultReservationSubBlocksRestStub(options); + return compute_reservation_sub_blocks_v1_internal:: + MakeReservationSubBlocksTracingConnection( + std::make_shared( + std::move(background), std::move(stub), std::move(options))); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.h b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.h new file mode 100644 index 0000000000000..c28d537421628 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_rest_connection.h @@ -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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_REST_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_REST_CONNECTION_H + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace compute_reservation_sub_blocks_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * A factory function to construct an object of type + * `ReservationSubBlocksConnection` that uses REST over HTTP as transport in + * lieu of gRPC. REST transport should only be used for services that do not + * support gRPC or if the existing network configuration precludes using gRPC. + * + * The returned connection object should not be used directly; instead it + * should be passed as an argument to the constructor of + * ReservationSubBlocksClient. + * + * The optional @p options argument may be used to configure aspects of the + * returned `ReservationSubBlocksConnection`. Expected options are any of the + * types in the following option lists: + * + * - `google::cloud::CommonOptionList` + * - `google::cloud::RestOptionList` + * - `google::cloud::UnifiedCredentialsOptionList` + * - + * `google::cloud::compute_reservation_sub_blocks_v1::ReservationSubBlocksPolicyOptionList` + * + * @note Unexpected options will be ignored. To log unexpected options instead, + * set `GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes` in the environment. + * + * @param options (optional) Configure the `ReservationSubBlocksConnection` + * created by this function. + */ +std::shared_ptr +MakeReservationSubBlocksConnectionRest(Options options = {}); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace compute_reservation_sub_blocks_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATION_SUB_BLOCKS_V1_RESERVATION_SUB_BLOCKS_REST_CONNECTION_H diff --git a/google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc b/google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc new file mode 100644 index 0000000000000..24810cde49b37 --- /dev/null +++ b/google/cloud/compute/reservation_sub_blocks/v1/samples/reservation_sub_blocks_client_samples.cc @@ -0,0 +1,169 @@ +// 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: +// google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto + +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_client.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_connection_idempotency_policy.h" +#include "google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks_options.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/getenv.h" +#include "google/cloud/testing_util/example_driver.h" +#include +#include +#include +#include + +// clang-format off +// main-dox-marker: compute_reservation_sub_blocks_v1::ReservationSubBlocksClient +// clang-format on +namespace { + +void SetClientEndpoint(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-endpoint"}; + } + //! [set-client-endpoint] + // This configuration is common with Private Google Access: + // https://cloud.google.com/vpc/docs/private-google-access + auto options = google::cloud::Options{}.set( + "private.googleapis.com"); + auto vpc_client = google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksClient( + google::cloud::compute_reservation_sub_blocks_v1:: + MakeReservationSubBlocksConnectionRest(options)); + //! [set-client-endpoint] +} + +//! [custom-idempotency-policy] +class CustomIdempotencyPolicy + : public google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksConnectionIdempotencyPolicy { + public: + ~CustomIdempotencyPolicy() override = default; + std::unique_ptr + clone() const override { + return std::make_unique(*this); + } + // Override inherited functions to define as needed. +}; +//! [custom-idempotency-policy] + +void SetRetryPolicy(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-retry-policy"}; + } + //! [set-retry-policy] + auto options = + google::cloud::Options{} + .set( + CustomIdempotencyPolicy().clone()) + .set( + google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksLimitedErrorCountRetryPolicy(3) + .clone()) + .set( + google::cloud::ExponentialBackoffPolicy( + /*initial_delay=*/std::chrono::milliseconds(200), + /*maximum_delay=*/std::chrono::seconds(45), + /*scaling=*/2.0) + .clone()); + auto connection = google::cloud::compute_reservation_sub_blocks_v1:: + MakeReservationSubBlocksConnectionRest(options); + + // c1 and c2 share the same retry policies + auto c1 = google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksClient(connection); + auto c2 = google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksClient(connection); + + // You can override any of the policies in a new client. This new client + // will share the policies from c1 (or c2) *except* for the retry policy. + auto c3 = google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksClient( + connection, + google::cloud::Options{} + .set( + google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksLimitedTimeRetryPolicy( + std::chrono::minutes(5)) + .clone())); + + // You can also override the policies in a single call: + // c3.SomeRpc(..., google::cloud::Options{} + // .set( + // google::cloud::compute_reservation_sub_blocks_v1::ReservationSubBlocksLimitedErrorCountRetryPolicy(10).clone())); + //! [set-retry-policy] +} + +void WithServiceAccount(std::vector const& argv) { + if (argv.size() != 1 || argv[0] == "--help") { + throw google::cloud::testing_util::Usage{"with-service-account "}; + } + //! [with-service-account] + [](std::string const& keyfile) { + auto is = std::ifstream(keyfile); + is.exceptions(std::ios::badbit); // Minimal error handling in examples + auto contents = std::string(std::istreambuf_iterator(is.rdbuf()), {}); + auto options = + google::cloud::Options{}.set( + google::cloud::MakeServiceAccountCredentials(contents)); + return google::cloud::compute_reservation_sub_blocks_v1:: + ReservationSubBlocksClient( + google::cloud::compute_reservation_sub_blocks_v1:: + MakeReservationSubBlocksConnectionRest(options)); + } + //! [with-service-account] + (argv.at(0)); +} + +void AutoRun(std::vector const& argv) { + namespace examples = ::google::cloud::testing_util; + using ::google::cloud::internal::GetEnv; + if (!argv.empty()) throw examples::Usage{"auto"}; + examples::CheckEnvironmentVariablesAreSet( + {"GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE"}); + auto const keyfile = + GetEnv("GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE").value(); + + std::cout << "\nRunning SetClientEndpoint() example" << std::endl; + SetClientEndpoint({}); + + std::cout << "\nRunning SetRetryPolicy() example" << std::endl; + SetRetryPolicy({}); + + std::cout << "\nRunning WithServiceAccount() example" << std::endl; + WithServiceAccount({keyfile}); +} + +} // namespace + +int main(int argc, char* argv[]) { // NOLINT(bugprone-exception-escape) + google::cloud::testing_util::Example example({ + {"set-client-endpoint", SetClientEndpoint}, + {"set-retry-policy", SetRetryPolicy}, + {"with-service-account", WithServiceAccount}, + {"auto", AutoRun}, + }); + return example.Run(argc, argv); +} diff --git a/google/cloud/compute/reservations/v1/reservations_client.h b/google/cloud/compute/reservations/v1/reservations_client.h index 7f9e2c5d74818..19187713543cc 100644 --- a/google/cloud/compute/reservations/v1/reservations_client.h +++ b/google/cloud/compute/reservations/v1/reservations_client.h @@ -967,7 +967,7 @@ class ReservationsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.reservations.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservations/v1/reservations.proto#L523} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1003,7 +1003,7 @@ class ReservationsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.reservations.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/reservations/v1/reservations.proto#L523} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/reservations/v1/reservations_proto_export.h b/google/cloud/compute/reservations/v1/reservations_proto_export.h index ca958d9e2e7e1..0aab2b4a48d5b 100644 --- a/google/cloud/compute/reservations/v1/reservations_proto_export.h +++ b/google/cloud/compute/reservations/v1/reservations_proto_export.h @@ -34,10 +34,10 @@ #include #include #include -#include -#include +#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATIONS_V1_RESERVATIONS_PROTO_EXPORT_H diff --git a/google/cloud/compute/resource_policies/v1/resource_policies_client.h b/google/cloud/compute/resource_policies/v1/resource_policies_client.h index 7d6e00a057388..99983becc615a 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_client.h +++ b/google/cloud/compute/resource_policies/v1/resource_policies_client.h @@ -120,7 +120,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.AggregatedListResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L151} - /// [google.cloud.cpp.compute.v1.ResourcePoliciesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L24} + /// [google.cloud.cpp.compute.v1.ResourcePoliciesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L24} /// // clang-format on StreamRange GetResourcePolicy( @@ -347,7 +347,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.GetResourcePolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L285} - /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L120} + /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L120} /// // clang-format on StatusOr GetResourcePolicy( @@ -574,7 +574,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.ListResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L333} - /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L120} + /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L120} /// // clang-format on StreamRange @@ -616,7 +616,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.ListResourcePoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L333} - /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_113.proto#L120} + /// [google.cloud.cpp.compute.v1.ResourcePolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L120} /// // clang-format on StreamRange @@ -844,7 +844,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -880,7 +880,7 @@ class ResourcePoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.resource_policies.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/resource_policies/v1/resource_policies.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/resource_policies/v1/resource_policies_proto_export.h b/google/cloud/compute/resource_policies/v1/resource_policies_proto_export.h index 48b39364a0e0a..d777ef12168d6 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_proto_export.h +++ b/google/cloud/compute/resource_policies/v1/resource_policies_proto_export.h @@ -30,8 +30,8 @@ #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESOURCE_POLICIES_V1_RESOURCE_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/routers/v1/routers_proto_export.h b/google/cloud/compute/routers/v1/routers_proto_export.h index 6153679569b92..65f6365b77db2 100644 --- a/google/cloud/compute/routers/v1/routers_proto_export.h +++ b/google/cloud/compute/routers/v1/routers_proto_export.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ROUTERS_V1_ROUTERS_PROTO_EXPORT_H diff --git a/google/cloud/compute/routes/v1/routes_client.h b/google/cloud/compute/routes/v1/routes_client.h index 7be7460a2c333..82fa46cb19af7 100644 --- a/google/cloud/compute/routes/v1/routes_client.h +++ b/google/cloud/compute/routes/v1/routes_client.h @@ -223,7 +223,7 @@ class RoutesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.routes.v1.GetRouteRequest]: @cloud_cpp_reference_link{google/cloud/compute/routes/v1/routes.proto#L112} - /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L27} + /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_115.proto#L27} /// // clang-format on StatusOr GetRoute( @@ -254,7 +254,7 @@ class RoutesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.routes.v1.GetRouteRequest]: @cloud_cpp_reference_link{google/cloud/compute/routes/v1/routes.proto#L112} - /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L27} + /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_115.proto#L27} /// // clang-format on StatusOr GetRoute( @@ -412,7 +412,7 @@ class RoutesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.routes.v1.ListRoutesRequest]: @cloud_cpp_reference_link{google/cloud/compute/routes/v1/routes.proto#L149} - /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L27} + /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_115.proto#L27} /// // clang-format on StreamRange ListRoutes( @@ -452,7 +452,7 @@ class RoutesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.routes.v1.ListRoutesRequest]: @cloud_cpp_reference_link{google/cloud/compute/routes/v1/routes.proto#L149} - /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_114.proto#L27} + /// [google.cloud.cpp.compute.v1.Route]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_115.proto#L27} /// // clang-format on StreamRange ListRoutes( diff --git a/google/cloud/compute/routes/v1/routes_proto_export.h b/google/cloud/compute/routes/v1/routes_proto_export.h index 8f2f326f6f2eb..679ed38680a44 100644 --- a/google/cloud/compute/routes/v1/routes_proto_export.h +++ b/google/cloud/compute/routes/v1/routes_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ROUTES_V1_ROUTES_PROTO_EXPORT_H diff --git a/google/cloud/compute/security_policies/v1/security_policies_client.h b/google/cloud/compute/security_policies/v1/security_policies_client.h index 98e14e6cb7e1e..783af613eeaf4 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_client.h +++ b/google/cloud/compute/security_policies/v1/security_policies_client.h @@ -437,7 +437,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.GetSecurityPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L334} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StatusOr GetSecurityPolicy( @@ -469,7 +469,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.GetSecurityPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L334} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StatusOr GetSecurityPolicy( @@ -498,7 +498,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.GetRuleRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L320} - /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L371} + /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L371} /// // clang-format on StatusOr GetRule( @@ -530,7 +530,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.GetRuleRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L320} - /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L371} + /// [google.cloud.cpp.compute.v1.SecurityPolicyRule]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L371} /// // clang-format on StatusOr GetRule( @@ -692,7 +692,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.ListSecurityPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L442} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StreamRange @@ -732,7 +732,7 @@ class SecurityPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.security_policies.v1.ListSecurityPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/security_policies/v1/security_policies.proto#L442} - /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_116.proto#L29} + /// [google.cloud.cpp.compute.v1.SecurityPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_117.proto#L29} /// // clang-format on StreamRange diff --git a/google/cloud/compute/security_policies/v1/security_policies_proto_export.h b/google/cloud/compute/security_policies/v1/security_policies_proto_export.h index 21d5acc5e9b08..cde97bec3a0d1 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_proto_export.h +++ b/google/cloud/compute/security_policies/v1/security_policies_proto_export.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SECURITY_POLICIES_V1_SECURITY_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/service_attachments/v1/service_attachments_client.h b/google/cloud/compute/service_attachments/v1/service_attachments_client.h index 88809b39fd70d..f8c60231ea018 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_client.h +++ b/google/cloud/compute/service_attachments/v1/service_attachments_client.h @@ -121,7 +121,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.AggregatedListServiceAttachmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L153} - /// [google.cloud.cpp.compute.v1.ServiceAttachmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L411} + /// [google.cloud.cpp.compute.v1.ServiceAttachmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L411} /// // clang-format on StreamRange< @@ -166,7 +166,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.AggregatedListServiceAttachmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L153} - /// [google.cloud.cpp.compute.v1.ServiceAttachmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L411} + /// [google.cloud.cpp.compute.v1.ServiceAttachmentsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L411} /// // clang-format on StreamRange< @@ -320,7 +320,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.GetServiceAttachmentRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L287} - /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L28} + /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L28} /// // clang-format on StatusOr @@ -353,7 +353,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.GetServiceAttachmentRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L287} - /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L28} + /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L28} /// // clang-format on StatusOr @@ -582,7 +582,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.ListServiceAttachmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L335} - /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L28} + /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L28} /// // clang-format on StreamRange @@ -623,7 +623,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.ListServiceAttachmentsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L335} - /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_118.proto#L28} + /// [google.cloud.cpp.compute.v1.ServiceAttachment]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_119.proto#L28} /// // clang-format on StreamRange @@ -855,7 +855,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -891,7 +891,7 @@ class ServiceAttachmentsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.service_attachments.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/service_attachments/v1/service_attachments.proto#L465} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/service_attachments/v1/service_attachments_proto_export.h b/google/cloud/compute/service_attachments/v1/service_attachments_proto_export.h index 45d957cb4ff22..4362da45ed9c1 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_proto_export.h +++ b/google/cloud/compute/service_attachments/v1/service_attachments_proto_export.h @@ -30,8 +30,8 @@ #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SERVICE_ATTACHMENTS_V1_SERVICE_ATTACHMENTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/service_dirs.bzl b/google/cloud/compute/service_dirs.bzl index 36562f4fabeba..f11f616837e52 100644 --- a/google/cloud/compute/service_dirs.bzl +++ b/google/cloud/compute/service_dirs.bzl @@ -17,6 +17,7 @@ """Automatically generated unit tests list - DO NOT EDIT.""" service_dirs = [ + "reservation_sub_blocks/v1/", "accelerator_types/v1/", "addresses/v1/", "autoscalers/v1/", diff --git a/google/cloud/compute/service_dirs.cmake b/google/cloud/compute/service_dirs.cmake index 07cddb44b2501..8c659b7445cb3 100644 --- a/google/cloud/compute/service_dirs.cmake +++ b/google/cloud/compute/service_dirs.cmake @@ -91,6 +91,7 @@ set(service_dirs "region_zones/v1/" "regions/v1/" "reservation_blocks/v1/" + "reservation_sub_blocks/v1/" "reservations/v1/" "resource_policies/v1/" "routers/v1/" diff --git a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h index 4cd46259f5046..4e7f4e65cee53 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h @@ -108,7 +108,7 @@ class SnapshotSettingsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshot_settings.v1.GetSnapshotSettingsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto#L65} - /// [google.cloud.cpp.compute.v1.SnapshotSettings]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_123.proto#L24} + /// [google.cloud.cpp.compute.v1.SnapshotSettings]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L24} /// // clang-format on StatusOr @@ -139,7 +139,7 @@ class SnapshotSettingsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshot_settings.v1.GetSnapshotSettingsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto#L65} - /// [google.cloud.cpp.compute.v1.SnapshotSettings]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_123.proto#L24} + /// [google.cloud.cpp.compute.v1.SnapshotSettings]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L24} /// // clang-format on StatusOr diff --git a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_proto_export.h b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_proto_export.h index 9bf450fdada71..9a227ae25ed1c 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_proto_export.h +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SNAPSHOT_SETTINGS_V1_SNAPSHOT_SETTINGS_PROTO_EXPORT_H diff --git a/google/cloud/compute/snapshots/v1/snapshots_client.h b/google/cloud/compute/snapshots/v1/snapshots_client.h index 30536a3544b4c..26c5cf4080797 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_client.h +++ b/google/cloud/compute/snapshots/v1/snapshots_client.h @@ -233,7 +233,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.GetSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L189} - /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_121.proto#L29} + /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_122.proto#L29} /// // clang-format on StatusOr GetSnapshot( @@ -265,7 +265,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.GetSnapshotRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L189} - /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_121.proto#L29} + /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_122.proto#L29} /// // clang-format on StatusOr GetSnapshot( @@ -492,7 +492,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.ListSnapshotsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L226} - /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_121.proto#L29} + /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_122.proto#L29} /// // clang-format on StreamRange ListSnapshots( @@ -533,7 +533,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.ListSnapshotsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L226} - /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_121.proto#L29} + /// [google.cloud.cpp.compute.v1.Snapshot]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_122.proto#L29} /// // clang-format on StreamRange ListSnapshots( @@ -753,7 +753,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L329} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -788,7 +788,7 @@ class SnapshotsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.snapshots.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/snapshots/v1/snapshots.proto#L329} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/snapshots/v1/snapshots_proto_export.h b/google/cloud/compute/snapshots/v1/snapshots_proto_export.h index 0f96a46ec5579..98dc0d88f86ed 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_proto_export.h +++ b/google/cloud/compute/snapshots/v1/snapshots_proto_export.h @@ -28,13 +28,13 @@ // IWYU pragma: begin_exports #include #include -#include +#include #include #include #include -#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SNAPSHOTS_V1_SNAPSHOTS_PROTO_EXPORT_H diff --git a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h index a388f556c806b..cea45cebfa576 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h @@ -119,7 +119,7 @@ class SslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_certificates.v1.AggregatedListSslCertificatesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto#L100} - /// [google.cloud.cpp.compute.v1.SslCertificatesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L137} + /// [google.cloud.cpp.compute.v1.SslCertificatesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_126.proto#L137} /// // clang-format on StreamRange GetSslCertificate( @@ -344,7 +344,7 @@ class SslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_certificates.v1.GetSslCertificateRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto#L208} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StatusOr GetSslCertificate( @@ -507,7 +507,7 @@ class SslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_certificates.v1.ListSslCertificatesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto#L245} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StreamRange @@ -548,7 +548,7 @@ class SslCertificatesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_certificates.v1.ListSslCertificatesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto#L245} - /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_124.proto#L39} + /// [google.cloud.cpp.compute.v1.SslCertificate]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_125.proto#L39} /// // clang-format on StreamRange diff --git a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_proto_export.h b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_proto_export.h index bdb33ede8ed69..8617dcd826d85 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_proto_export.h +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SSL_CERTIFICATES_V1_SSL_CERTIFICATES_PROTO_EXPORT_H diff --git a/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h index 2c9481ea2b61e..af7b1b4c5a23e 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h @@ -119,7 +119,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.AggregatedListSslPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L125} - /// [google.cloud.cpp.compute.v1.SslPoliciesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_126.proto#L139} + /// [google.cloud.cpp.compute.v1.SslPoliciesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L139} /// // clang-format on StreamRange GetSslPolicy( @@ -348,7 +348,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.GetSslPolicyRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L234} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StatusOr GetSslPolicy( @@ -506,7 +506,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.ListSslPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L340} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StreamRange ListSslPolicies( @@ -547,7 +547,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.ListSslPoliciesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L340} - /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L140} + /// [google.cloud.cpp.compute.v1.SslPolicy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L140} /// // clang-format on StreamRange ListSslPolicies( @@ -576,7 +576,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.ListAvailableFeaturesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L272} - /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L132} + /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L132} /// // clang-format on StatusOr< @@ -609,7 +609,7 @@ class SslPoliciesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.ssl_policies.v1.ListAvailableFeaturesRequest]: @cloud_cpp_reference_link{google/cloud/compute/ssl_policies/v1/ssl_policies.proto#L272} - /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_127.proto#L132} + /// [google.cloud.cpp.compute.v1.SslPoliciesListAvailableFeaturesResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_128.proto#L132} /// // clang-format on StatusOr< diff --git a/google/cloud/compute/ssl_policies/v1/ssl_policies_proto_export.h b/google/cloud/compute/ssl_policies/v1/ssl_policies_proto_export.h index 25c9b05f0ece8..e36745595086c 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_proto_export.h +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SSL_POLICIES_V1_SSL_POLICIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h index 5cc43e1a5dd64..d7c7923f3ba61 100644 --- a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h +++ b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h @@ -119,7 +119,7 @@ class StoragePoolTypesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pool_types.v1.AggregatedListStoragePoolTypesRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto#L72} - /// [google.cloud.cpp.compute.v1.StoragePoolTypesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L308} + /// [google.cloud.cpp.compute.v1.StoragePoolTypesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L308} /// // clang-format on StreamRange GetStoragePoolType( @@ -226,7 +226,7 @@ class StoragePoolTypesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pool_types.v1.GetStoragePoolTypeRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto#L154} - /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L26} + /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L26} /// // clang-format on StatusOr GetStoragePoolType( @@ -264,7 +264,7 @@ class StoragePoolTypesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pool_types.v1.ListStoragePoolTypesRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto#L168} - /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L26} + /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L26} /// // clang-format on StreamRange @@ -305,7 +305,7 @@ class StoragePoolTypesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pool_types.v1.ListStoragePoolTypesRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto#L168} - /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L26} + /// [google.cloud.cpp.compute.v1.StoragePoolType]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L26} /// // clang-format on StreamRange diff --git a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_proto_export.h b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_proto_export.h index 06c06269ed075..7f9cb4c64f9fa 100644 --- a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_proto_export.h +++ b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_proto_export.h @@ -26,8 +26,8 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_STORAGE_POOL_TYPES_V1_STORAGE_POOL_TYPES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_STORAGE_POOL_TYPES_V1_STORAGE_POOL_TYPES_PROTO_EXPORT_H diff --git a/google/cloud/compute/storage_pools/v1/storage_pools_client.h b/google/cloud/compute/storage_pools/v1/storage_pools_client.h index 9479f125a8dca..2644ef95d5eb9 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_client.h +++ b/google/cloud/compute/storage_pools/v1/storage_pools_client.h @@ -118,7 +118,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.AggregatedListStoragePoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L167} - /// [google.cloud.cpp.compute.v1.StoragePoolsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L560} + /// [google.cloud.cpp.compute.v1.StoragePoolsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L560} /// // clang-format on StreamRange GetStoragePool( @@ -350,7 +350,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.GetStoragePoolRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L300} - /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L25} + /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L25} /// // clang-format on StatusOr GetStoragePool( @@ -576,7 +576,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.ListStoragePoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L422} - /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L25} + /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L25} /// // clang-format on StreamRange ListStoragePools( @@ -616,7 +616,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.ListStoragePoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L422} - /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L25} + /// [google.cloud.cpp.compute.v1.StoragePool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L25} /// // clang-format on StreamRange ListStoragePools( @@ -655,7 +655,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L347} - /// [google.cloud.cpp.compute.v1.StoragePoolDisk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L239} + /// [google.cloud.cpp.compute.v1.StoragePoolDisk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L239} /// // clang-format on StreamRange ListDisks( @@ -696,7 +696,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.ListDisksRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L347} - /// [google.cloud.cpp.compute.v1.StoragePoolDisk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_129.proto#L239} + /// [google.cloud.cpp.compute.v1.StoragePoolDisk]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_130.proto#L239} /// // clang-format on StreamRange ListDisks( @@ -794,7 +794,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L511} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -830,7 +830,7 @@ class StoragePoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.storage_pools.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/storage_pools/v1/storage_pools.proto#L511} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/storage_pools/v1/storage_pools_proto_export.h b/google/cloud/compute/storage_pools/v1/storage_pools_proto_export.h index 2b9506b8e1d9c..bab2aade712ba 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_proto_export.h +++ b/google/cloud/compute/storage_pools/v1/storage_pools_proto_export.h @@ -29,9 +29,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_STORAGE_POOLS_V1_STORAGE_POOLS_PROTO_EXPORT_H diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_client.h b/google/cloud/compute/subnetworks/v1/subnetworks_client.h index f11573c76a401..995f78163390a 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_client.h +++ b/google/cloud/compute/subnetworks/v1/subnetworks_client.h @@ -118,7 +118,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.AggregatedListSubnetworksRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L189} - /// [google.cloud.cpp.compute.v1.SubnetworksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L516} + /// [google.cloud.cpp.compute.v1.SubnetworksScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L534} /// // clang-format on StreamRange GetSubnetwork( @@ -470,7 +470,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.GetSubnetworkRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L361} - /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L28} + /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L28} /// // clang-format on StatusOr GetSubnetwork( @@ -695,7 +695,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.ListSubnetworksRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L409} - /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L28} + /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L28} /// // clang-format on StreamRange ListSubnetworks( @@ -735,7 +735,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.ListSubnetworksRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L409} - /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L28} + /// [google.cloud.cpp.compute.v1.Subnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L28} /// // clang-format on StreamRange ListSubnetworks( @@ -772,7 +772,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.ListUsableRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L481} - /// [google.cloud.cpp.compute.v1.UsableSubnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L704} + /// [google.cloud.cpp.compute.v1.UsableSubnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L722} /// // clang-format on StreamRange ListUsable( @@ -812,7 +812,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.ListUsableRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L481} - /// [google.cloud.cpp.compute.v1.UsableSubnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_131.proto#L704} + /// [google.cloud.cpp.compute.v1.UsableSubnetwork]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L722} /// // clang-format on StreamRange ListUsable( @@ -1172,7 +1172,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L655} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr @@ -1208,7 +1208,7 @@ class SubnetworksClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.subnetworks.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/subnetworks/v1/subnetworks.proto#L655} - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// // clang-format on StatusOr diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_proto_export.h b/google/cloud/compute/subnetworks/v1/subnetworks_proto_export.h index 8ce773a7b2664..79ef2f919f9d1 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_proto_export.h +++ b/google/cloud/compute/subnetworks/v1/subnetworks_proto_export.h @@ -30,8 +30,8 @@ #include #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SUBNETWORKS_V1_SUBNETWORKS_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h index 07b4c8e6d483d..9c33e1d9dda7c 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h @@ -229,7 +229,7 @@ class TargetGrpcProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_grpc_proxies.v1.GetTargetGrpcProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto#L127} - /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L29} + /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L29} /// // clang-format on StatusOr GetTargetGrpcProxy( @@ -261,7 +261,7 @@ class TargetGrpcProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_grpc_proxies.v1.GetTargetGrpcProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto#L127} - /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L29} + /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L29} /// // clang-format on StatusOr GetTargetGrpcProxy( @@ -423,7 +423,7 @@ class TargetGrpcProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_grpc_proxies.v1.ListTargetGrpcProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto#L164} - /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L29} + /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L29} /// // clang-format on StreamRange @@ -463,7 +463,7 @@ class TargetGrpcProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_grpc_proxies.v1.ListTargetGrpcProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto#L164} - /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_132.proto#L29} + /// [google.cloud.cpp.compute.v1.TargetGrpcProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L29} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_proto_export.h b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_proto_export.h index 561b337b96dfc..f965bef8456c7 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_proto_export.h +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_proto_export.h @@ -27,7 +27,7 @@ // IWYU pragma: begin_exports #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_GRPC_PROXIES_V1_TARGET_GRPC_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h index 2f24cb4150300..725d1b2a03ee4 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h @@ -120,7 +120,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.AggregatedListTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L129} - /// [google.cloud.cpp.compute.v1.TargetHttpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L26} + /// [google.cloud.cpp.compute.v1.TargetHttpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L26} /// // clang-format on StreamRange< @@ -165,7 +165,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.AggregatedListTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L129} - /// [google.cloud.cpp.compute.v1.TargetHttpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_133.proto#L26} + /// [google.cloud.cpp.compute.v1.TargetHttpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L26} /// // clang-format on StreamRange< @@ -317,7 +317,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.GetTargetHttpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L237} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StatusOr GetTargetHttpProxy( @@ -349,7 +349,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.GetTargetHttpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L237} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StatusOr GetTargetHttpProxy( @@ -512,7 +512,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.ListTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L274} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StreamRange @@ -553,7 +553,7 @@ class TargetHttpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_http_proxies.v1.ListTargetHttpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto#L274} - /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_134.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L36} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_proto_export.h b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_proto_export.h index 7fbc0be7a40c0..4226998faa807 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_proto_export.h +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_proto_export.h @@ -27,9 +27,9 @@ // IWYU pragma: begin_exports #include -#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_HTTP_PROXIES_V1_TARGET_HTTP_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h index cde863fdf79c5..4b343fe3d01fa 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h @@ -122,7 +122,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.AggregatedListTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L186} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L26} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L26} /// // clang-format on StreamRange< @@ -167,7 +167,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.AggregatedListTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L186} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_135.proto#L26} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L26} /// // clang-format on StreamRange< @@ -319,7 +319,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.GetTargetHttpsProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L294} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StatusOr @@ -351,7 +351,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.GetTargetHttpsProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L294} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StatusOr @@ -515,7 +515,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.ListTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L331} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StreamRange @@ -556,7 +556,7 @@ class TargetHttpsProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_https_proxies.v1.ListTargetHttpsProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto#L331} - /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_136.proto#L36} + /// [google.cloud.cpp.compute.v1.TargetHttpsProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L36} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_proto_export.h b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_proto_export.h index 2ffdfab548c53..ec551c842c66a 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_proto_export.h +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_proto_export.h @@ -27,10 +27,10 @@ // IWYU pragma: begin_exports #include -#include -#include +#include #include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_HTTPS_PROXIES_V1_TARGET_HTTPS_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_instances/v1/target_instances_client.h b/google/cloud/compute/target_instances/v1/target_instances_client.h index 0f1398622221a..bfd35ace07702 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_client.h +++ b/google/cloud/compute/target_instances/v1/target_instances_client.h @@ -119,7 +119,7 @@ class TargetInstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_instances.v1.AggregatedListTargetInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_instances/v1/target_instances.proto#L115} - /// [google.cloud.cpp.compute.v1.TargetInstancesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L304} + /// [google.cloud.cpp.compute.v1.TargetInstancesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L304} /// // clang-format on StreamRange GetTargetInstance( @@ -346,7 +346,7 @@ class TargetInstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_instances.v1.GetTargetInstanceRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_instances/v1/target_instances.proto#L230} - /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L28} /// // clang-format on StatusOr GetTargetInstance( @@ -511,7 +511,7 @@ class TargetInstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_instances.v1.ListTargetInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_instances/v1/target_instances.proto#L277} - /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L28} /// // clang-format on StreamRange @@ -553,7 +553,7 @@ class TargetInstancesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_instances.v1.ListTargetInstancesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_instances/v1/target_instances.proto#L277} - /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_137.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetInstance]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L28} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_instances/v1/target_instances_proto_export.h b/google/cloud/compute/target_instances/v1/target_instances_proto_export.h index b1555b9ced9b6..e40b4a44d80ee 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_proto_export.h +++ b/google/cloud/compute/target_instances/v1/target_instances_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_INSTANCES_V1_TARGET_INSTANCES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_pools/v1/target_pools_client.h b/google/cloud/compute/target_pools/v1/target_pools_client.h index a2277a0dbb17d..a1dbbb45bc6d7 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_client.h +++ b/google/cloud/compute/target_pools/v1/target_pools_client.h @@ -370,7 +370,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.AggregatedListTargetPoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L270} - /// [google.cloud.cpp.compute.v1.TargetPoolsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L398} + /// [google.cloud.cpp.compute.v1.TargetPoolsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L398} /// // clang-format on StreamRange GetTargetPool( @@ -594,7 +594,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.GetTargetPoolRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L404} - /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L32} + /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L32} /// // clang-format on StatusOr GetTargetPool( @@ -626,7 +626,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.GetHealthRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L385} - /// [google.cloud.cpp.compute.v1.TargetPoolInstanceHealth]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L251} + /// [google.cloud.cpp.compute.v1.TargetPoolInstanceHealth]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L251} /// // clang-format on StatusOr GetHealth( @@ -662,7 +662,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.GetHealthRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L385} - /// [google.cloud.cpp.compute.v1.TargetPoolInstanceHealth]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L251} + /// [google.cloud.cpp.compute.v1.TargetPoolInstanceHealth]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L251} /// // clang-format on StatusOr GetHealth( @@ -824,7 +824,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.ListTargetPoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L452} - /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L32} + /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L32} /// // clang-format on StreamRange ListTargetPools( @@ -865,7 +865,7 @@ class TargetPoolsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_pools.v1.ListTargetPoolsRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_pools/v1/target_pools.proto#L452} - /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_138.proto#L32} + /// [google.cloud.cpp.compute.v1.TargetPool]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_139.proto#L32} /// // clang-format on StreamRange ListTargetPools( diff --git a/google/cloud/compute/target_pools/v1/target_pools_proto_export.h b/google/cloud/compute/target_pools/v1/target_pools_proto_export.h index e0be071854c96..5372cb74bd4dd 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_proto_export.h +++ b/google/cloud/compute/target_pools/v1/target_pools_proto_export.h @@ -30,9 +30,9 @@ #include #include #include -#include -#include +#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_POOLS_V1_TARGET_POOLS_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h index 878692223f25b..02760e06703a8 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h @@ -228,7 +228,7 @@ class TargetSslProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_ssl_proxies.v1.GetTargetSslProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto#L182} - /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_140.proto#L55} + /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_141.proto#L55} /// // clang-format on StatusOr GetTargetSslProxy( @@ -260,7 +260,7 @@ class TargetSslProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_ssl_proxies.v1.GetTargetSslProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto#L182} - /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_140.proto#L55} + /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_141.proto#L55} /// // clang-format on StatusOr GetTargetSslProxy( @@ -423,7 +423,7 @@ class TargetSslProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_ssl_proxies.v1.ListTargetSslProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto#L219} - /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_140.proto#L55} + /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_141.proto#L55} /// // clang-format on StreamRange @@ -464,7 +464,7 @@ class TargetSslProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_ssl_proxies.v1.ListTargetSslProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto#L219} - /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_140.proto#L55} + /// [google.cloud.cpp.compute.v1.TargetSslProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_141.proto#L55} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_proto_export.h b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_proto_export.h index bc937f9ecabd8..3684ffdecce99 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_proto_export.h +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_SSL_PROXIES_V1_TARGET_SSL_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h index 07754cf1079d7..949fbb0c58535 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h @@ -120,7 +120,7 @@ class TargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_tcp_proxies.v1.AggregatedListTargetTcpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto#L126} - /// [google.cloud.cpp.compute.v1.TargetTcpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_141.proto#L26} + /// [google.cloud.cpp.compute.v1.TargetTcpProxiesScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L26} /// // clang-format on StreamRange GetTargetTcpProxy( @@ -345,7 +345,7 @@ class TargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_tcp_proxies.v1.GetTargetTcpProxyRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto#L234} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StatusOr GetTargetTcpProxy( @@ -508,7 +508,7 @@ class TargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_tcp_proxies.v1.ListTargetTcpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto#L271} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StreamRange @@ -549,7 +549,7 @@ class TargetTcpProxiesClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_tcp_proxies.v1.ListTargetTcpProxiesRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto#L271} - /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_142.proto#L28} + /// [google.cloud.cpp.compute.v1.TargetTcpProxy]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L28} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_proto_export.h b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_proto_export.h index 2d0a0abf0763a..0ad9170d5f09c 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_proto_export.h +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include #include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_TCP_PROXIES_V1_TARGET_TCP_PROXIES_PROTO_EXPORT_H diff --git a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h index 48282f02c4f99..1dc466eb2582a 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h @@ -120,7 +120,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.AggregatedListTargetVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L115} - /// [google.cloud.cpp.compute.v1.TargetVpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L317} + /// [google.cloud.cpp.compute.v1.TargetVpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L317} /// // clang-format on StreamRange< @@ -165,7 +165,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.AggregatedListTargetVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L115} - /// [google.cloud.cpp.compute.v1.TargetVpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L317} + /// [google.cloud.cpp.compute.v1.TargetVpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L317} /// // clang-format on StreamRange< @@ -319,7 +319,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.GetTargetVpnGatewayRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L230} - /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L27} + /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L27} /// // clang-format on StatusOr @@ -351,7 +351,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.GetTargetVpnGatewayRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L230} - /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L27} + /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L27} /// // clang-format on StatusOr @@ -517,7 +517,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.ListTargetVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L278} - /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L27} + /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L27} /// // clang-format on StreamRange @@ -559,7 +559,7 @@ class TargetVpnGatewaysClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.target_vpn_gateways.v1.ListTargetVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto#L278} - /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_143.proto#L27} + /// [google.cloud.cpp.compute.v1.TargetVpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L27} /// // clang-format on StreamRange diff --git a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_proto_export.h b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_proto_export.h index 814f9a4ae5b49..a940d03ac1396 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_proto_export.h +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_proto_export.h @@ -28,7 +28,7 @@ // IWYU pragma: begin_exports #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_VPN_GATEWAYS_V1_TARGET_VPN_GATEWAYS_PROTO_EXPORT_H diff --git a/google/cloud/compute/url_maps/v1/url_maps_client.h b/google/cloud/compute/url_maps/v1/url_maps_client.h index 6b3639401b11b..85415d25bbef8 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_client.h +++ b/google/cloud/compute/url_maps/v1/url_maps_client.h @@ -117,7 +117,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.AggregatedListUrlMapsRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L154} - /// [google.cloud.cpp.compute.v1.UrlMapsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_017.proto#L153} + /// [google.cloud.cpp.compute.v1.UrlMapsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_018.proto#L153} /// // clang-format on StreamRange GetUrlMap( @@ -341,7 +341,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.GetUrlMapRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L262} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StatusOr GetUrlMap( @@ -627,7 +627,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.ListUrlMapsRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L329} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StreamRange ListUrlMaps( @@ -667,7 +667,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.ListUrlMapsRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L329} - /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L852} + /// [google.cloud.cpp.compute.v1.UrlMap]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L853} /// // clang-format on StreamRange ListUrlMaps( @@ -946,7 +946,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.ValidateRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L457} - /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L1144} + /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L1145} /// // clang-format on StatusOr Validate( @@ -982,7 +982,7 @@ class UrlMapsClient { /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status /// [google.cloud.cpp.compute.url_maps.v1.ValidateRequest]: @cloud_cpp_reference_link{google/cloud/compute/url_maps/v1/url_maps.proto#L457} - /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_019.proto#L1144} + /// [google.cloud.cpp.compute.v1.UrlMapsValidateResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_020.proto#L1145} /// // clang-format on StatusOr Validate( diff --git a/google/cloud/compute/url_maps/v1/url_maps_proto_export.h b/google/cloud/compute/url_maps/v1/url_maps_proto_export.h index 1dee30011c464..973a78197771f 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_proto_export.h +++ b/google/cloud/compute/url_maps/v1/url_maps_proto_export.h @@ -27,8 +27,8 @@ // IWYU pragma: begin_exports #include -#include -#include +#include +#include #include #include // IWYU pragma: end_exports diff --git a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h index 401cead68de53..e8cd9f54bcd7a 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h @@ -117,7 +117,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L416} + /// [google.cloud.cpp.compute.v1.VpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L416} /// [google.cloud.cpp.compute.vpn_gateways.v1.AggregatedListVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L137} /// // clang-format on @@ -159,7 +159,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L416} + /// [google.cloud.cpp.compute.v1.VpnGatewaysScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L416} /// [google.cloud.cpp.compute.vpn_gateways.v1.AggregatedListVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L137} /// // clang-format on @@ -309,7 +309,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L29} + /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L29} /// [google.cloud.cpp.compute.vpn_gateways.v1.GetVpnGatewayRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L267} /// // clang-format on @@ -341,7 +341,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L29} + /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L29} /// [google.cloud.cpp.compute.vpn_gateways.v1.GetVpnGatewayRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L267} /// // clang-format on @@ -371,7 +371,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGatewaysGetStatusResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L412} + /// [google.cloud.cpp.compute.v1.VpnGatewaysGetStatusResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L412} /// [google.cloud.cpp.compute.vpn_gateways.v1.GetStatusRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L252} /// // clang-format on @@ -403,7 +403,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGatewaysGetStatusResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L412} + /// [google.cloud.cpp.compute.v1.VpnGatewaysGetStatusResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L412} /// [google.cloud.cpp.compute.vpn_gateways.v1.GetStatusRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L252} /// // clang-format on @@ -566,7 +566,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L29} + /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L29} /// [google.cloud.cpp.compute.vpn_gateways.v1.ListVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L315} /// // clang-format on @@ -607,7 +607,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_147.proto#L29} + /// [google.cloud.cpp.compute.v1.VpnGateway]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L29} /// [google.cloud.cpp.compute.vpn_gateways.v1.ListVpnGatewaysRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L315} /// // clang-format on @@ -766,7 +766,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// [google.cloud.cpp.compute.vpn_gateways.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L425} /// // clang-format on @@ -802,7 +802,7 @@ class VpnGatewaysClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_144.proto#L30} + /// [google.cloud.cpp.compute.v1.TestPermissionsResponse]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_145.proto#L30} /// [google.cloud.cpp.compute.vpn_gateways.v1.TestIamPermissionsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto#L425} /// // clang-format on diff --git a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_proto_export.h b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_proto_export.h index e5c18577fc47b..52b47e7fecbc0 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_proto_export.h +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_proto_export.h @@ -28,8 +28,8 @@ // IWYU pragma: begin_exports #include #include -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_VPN_GATEWAYS_V1_VPN_GATEWAYS_PROTO_EXPORT_H diff --git a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h index 4f776a7b7a95d..4db44fe355a2b 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h @@ -115,7 +115,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnelsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L398} + /// [google.cloud.cpp.compute.v1.VpnTunnelsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L398} /// [google.cloud.cpp.compute.vpn_tunnels.v1.AggregatedListVpnTunnelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L113} /// // clang-format on @@ -157,7 +157,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnelsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L398} + /// [google.cloud.cpp.compute.v1.VpnTunnelsScopedList]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L398} /// [google.cloud.cpp.compute.vpn_tunnels.v1.AggregatedListVpnTunnelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L113} /// // clang-format on @@ -307,7 +307,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L26} + /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L26} /// [google.cloud.cpp.compute.vpn_tunnels.v1.GetVpnTunnelRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L228} /// // clang-format on @@ -339,7 +339,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L26} + /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L26} /// [google.cloud.cpp.compute.vpn_tunnels.v1.GetVpnTunnelRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L228} /// // clang-format on @@ -501,7 +501,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L26} + /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L26} /// [google.cloud.cpp.compute.vpn_tunnels.v1.ListVpnTunnelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L276} /// // clang-format on @@ -542,7 +542,7 @@ class VpnTunnelsClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_148.proto#L26} + /// [google.cloud.cpp.compute.v1.VpnTunnel]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L26} /// [google.cloud.cpp.compute.vpn_tunnels.v1.ListVpnTunnelsRequest]: @cloud_cpp_reference_link{google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto#L276} /// // clang-format on diff --git a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_proto_export.h b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_proto_export.h index a132fe884a0b2..c42f313ac468e 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_proto_export.h +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_proto_export.h @@ -28,7 +28,7 @@ // IWYU pragma: begin_exports #include #include -#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_VPN_TUNNELS_V1_VPN_TUNNELS_PROTO_EXPORT_H diff --git a/google/cloud/compute/zones/v1/zones_client.h b/google/cloud/compute/zones/v1/zones_client.h index f8de0bb3da879..5cacfbecccc68 100644 --- a/google/cloud/compute/zones/v1/zones_client.h +++ b/google/cloud/compute/zones/v1/zones_client.h @@ -104,7 +104,7 @@ class ZonesClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// [google.cloud.cpp.compute.zones.v1.GetZoneRequest]: @cloud_cpp_reference_link{google/cloud/compute/zones/v1/zones.proto#L59} /// // clang-format on @@ -135,7 +135,7 @@ class ZonesClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// [google.cloud.cpp.compute.zones.v1.GetZoneRequest]: @cloud_cpp_reference_link{google/cloud/compute/zones/v1/zones.proto#L59} /// // clang-format on @@ -171,7 +171,7 @@ class ZonesClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// [google.cloud.cpp.compute.zones.v1.ListZonesRequest]: @cloud_cpp_reference_link{google/cloud/compute/zones/v1/zones.proto#L69} /// // clang-format on @@ -211,7 +211,7 @@ class ZonesClient { /// [`future`]: @ref google::cloud::future /// [`StatusOr`]: @ref google::cloud::StatusOr /// [`Status`]: @ref google::cloud::Status - /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_149.proto#L29} + /// [google.cloud.cpp.compute.v1.Zone]: @cloud_cpp_reference_link{google/cloud/compute/v1/internal/common_150.proto#L29} /// [google.cloud.cpp.compute.zones.v1.ListZonesRequest]: @cloud_cpp_reference_link{google/cloud/compute/zones/v1/zones.proto#L69} /// // clang-format on diff --git a/google/cloud/compute/zones/v1/zones_proto_export.h b/google/cloud/compute/zones/v1/zones_proto_export.h index 49fcaf7485893..a8376516acddf 100644 --- a/google/cloud/compute/zones/v1/zones_proto_export.h +++ b/google/cloud/compute/zones/v1/zones_proto_export.h @@ -26,8 +26,8 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ZONES_V1_ZONES_PROTO_EXPORT_H // IWYU pragma: begin_exports -#include -#include +#include +#include // IWYU pragma: end_exports #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ZONES_V1_ZONES_PROTO_EXPORT_H diff --git a/protos/google/cloud/compute/accelerator_types/v1/accelerator_types.proto b/protos/google/cloud/compute/accelerator_types/v1/accelerator_types.proto index b41f060314176..faad6e0434a06 100644 --- a/protos/google/cloud/compute/accelerator_types/v1/accelerator_types.proto +++ b/protos/google/cloud/compute/accelerator_types/v1/accelerator_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/addresses/v1/addresses.proto b/protos/google/cloud/compute/addresses/v1/addresses.proto index f4468c9e71091..e8e1cb6f61035 100644 --- a/protos/google/cloud/compute/addresses/v1/addresses.proto +++ b/protos/google/cloud/compute/addresses/v1/addresses.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/autoscalers/v1/autoscalers.proto b/protos/google/cloud/compute/autoscalers/v1/autoscalers.proto index 999ba102d0dc2..309d60130af68 100644 --- a/protos/google/cloud/compute/autoscalers/v1/autoscalers.proto +++ b/protos/google/cloud/compute/autoscalers/v1/autoscalers.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/backend_buckets/v1/backend_buckets.proto b/protos/google/cloud/compute/backend_buckets/v1/backend_buckets.proto index 4f8def07cf55b..2ada33b21f1a2 100644 --- a/protos/google/cloud/compute/backend_buckets/v1/backend_buckets.proto +++ b/protos/google/cloud/compute/backend_buckets/v1/backend_buckets.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,9 +28,9 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_010.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; -import "google/cloud/compute/v1/internal/common_117.proto"; -import "google/cloud/compute/v1/internal/common_120.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_118.proto"; +import "google/cloud/compute/v1/internal/common_121.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the backendBuckets resource. diff --git a/protos/google/cloud/compute/backend_services/v1/backend_services.proto b/protos/google/cloud/compute/backend_services/v1/backend_services.proto index 84941f36ac4bf..b60ad810e0f35 100644 --- a/protos/google/cloud/compute/backend_services/v1/backend_services.proto +++ b/protos/google/cloud/compute/backend_services/v1/backend_services.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -29,9 +29,9 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_011.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; -import "google/cloud/compute/v1/internal/common_117.proto"; -import "google/cloud/compute/v1/internal/common_120.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_118.proto"; +import "google/cloud/compute/v1/internal/common_121.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the backendServices resource. diff --git a/protos/google/cloud/compute/disk_types/v1/disk_types.proto b/protos/google/cloud/compute/disk_types/v1/disk_types.proto index da87fbc3fe4f0..106a8d6c89c51 100644 --- a/protos/google/cloud/compute/disk_types/v1/disk_types.proto +++ b/protos/google/cloud/compute/disk_types/v1/disk_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/disks/v1/disks.proto b/protos/google/cloud/compute/disks/v1/disks.proto index b182e44471fd5..1cce4db71ef50 100644 --- a/protos/google/cloud/compute/disks/v1/disks.proto +++ b/protos/google/cloud/compute/disks/v1/disks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,11 +27,11 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_014.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_023.proto"; -import "google/cloud/compute/v1/internal/common_121.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_150.proto"; +import "google/cloud/compute/v1/internal/common_017.proto"; +import "google/cloud/compute/v1/internal/common_122.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; // Service for the disks resource. @@ -82,6 +82,20 @@ service Disks { option (google.cloud.operation_service) = "ZoneOperations"; } + // Sets the labels on many disks at once. To learn more about labels, read the + // Labeling Resources documentation. + // https://cloud.google.com/compute/docs/reference/rest/v1/disks/bulkSetLabels + rpc BulkSetLabels(BulkSetLabelsRequest) + returns (google.cloud.cpp.compute.v1.Operation) { + option (google.api.http) = { + post: "/compute/v1/projects/{project}/zones/{zone}/disks/bulkSetLabels" + body: "bulk_zone_set_labels_request_resource" + }; + option (google.api.method_signature) = + "project,zone,bulk_zone_set_labels_request_resource"; + option (google.cloud.operation_service) = "ZoneOperations"; + } + // Creates a snapshot of a specified persistent disk. For regular snapshot // creation, consider using snapshots.insert instead, as that method supports // more features, such as creating snapshots in a project different from the @@ -431,6 +445,43 @@ message BulkInsertRequest { ]; } +// Request message for BulkSetLabels. +message BulkSetLabelsRequest { + // The BulkZoneSetLabelsRequest for this request. + optional google.cloud.cpp.compute.v1.BulkZoneSetLabelsRequest + bulk_zone_set_labels_request_resource = 1 + [json_name = "__json_request_body"]; + + // Project ID for this request. + string project = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "project", + json_name = "project" + ]; + + // An optional request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server will know to ignore the + // request if it has already been completed. For example, consider a situation + // where you make an initial request and the request times out. If you make + // the request again with the same request ID, the server can check if + // original operation with the same request ID was received, and if so, will + // ignore the second request. This prevents clients from accidentally creating + // duplicate commitments. The request ID must be a valid UUID with the + // exception that zero UUID is not supported ( + // 00000000-0000-0000-0000-000000000000). + optional string request_id = 3 [json_name = "requestId"]; + + // Name or id of the resource for this request. + optional string resource = 4 [json_name = "resource"]; + + // The name of the zone for this request. + string zone = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.cloud.operation_request_field) = "zone", + json_name = "zone" + ]; +} + // Request message for CreateSnapshot. message CreateSnapshotRequest { // Name of the persistent disk to snapshot. diff --git a/protos/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto b/protos/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto index 5b5ac0265d354..2db68d691f14b 100644 --- a/protos/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto +++ b/protos/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,7 +27,7 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_032.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the externalVpnGateways resource. diff --git a/protos/google/cloud/compute/firewall_policies/v1/firewall_policies.proto b/protos/google/cloud/compute/firewall_policies/v1/firewall_policies.proto index 8c633c6c310d0..9180992f951bd 100644 --- a/protos/google/cloud/compute/firewall_policies/v1/firewall_policies.proto +++ b/protos/google/cloud/compute/firewall_policies/v1/firewall_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -29,7 +29,7 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_036.proto"; import "google/cloud/compute/v1/internal/common_038.proto"; import "google/cloud/compute/v1/internal/common_039.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the firewallPolicies resource. diff --git a/protos/google/cloud/compute/firewalls/v1/firewalls.proto b/protos/google/cloud/compute/firewalls/v1/firewalls.proto index 3dc9bbcfb701e..793995121e6dd 100644 --- a/protos/google/cloud/compute/firewalls/v1/firewalls.proto +++ b/protos/google/cloud/compute/firewalls/v1/firewalls.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/forwarding_rules/v1/forwarding_rules.proto b/protos/google/cloud/compute/forwarding_rules/v1/forwarding_rules.proto index 3673f9b69dabe..a172a130ee193 100644 --- a/protos/google/cloud/compute/forwarding_rules/v1/forwarding_rules.proto +++ b/protos/google/cloud/compute/forwarding_rules/v1/forwarding_rules.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_041.proto"; import "google/cloud/compute/v1/internal/common_042.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; -import "google/cloud/compute/v1/internal/common_139.proto"; +import "google/cloud/compute/v1/internal/common_140.proto"; import "google/cloud/extended_operations.proto"; // Service for the forwardingRules resource. diff --git a/protos/google/cloud/compute/global_addresses/v1/global_addresses.proto b/protos/google/cloud/compute/global_addresses/v1/global_addresses.proto index 7e1676c1de48c..fda0b5d844883 100644 --- a/protos/google/cloud/compute/global_addresses/v1/global_addresses.proto +++ b/protos/google/cloud/compute/global_addresses/v1/global_addresses.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules.proto b/protos/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules.proto index 3c9a455f2bde6..38aabb4b91138 100644 --- a/protos/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules.proto +++ b/protos/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,7 +27,7 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_041.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; -import "google/cloud/compute/v1/internal/common_139.proto"; +import "google/cloud/compute/v1/internal/common_140.proto"; import "google/cloud/extended_operations.proto"; // Service for the globalForwardingRules resource. diff --git a/protos/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups.proto b/protos/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups.proto index 53f32d4cfdcfd..fda81c87adf07 100644 --- a/protos/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups.proto +++ b/protos/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/global_operations/v1/global_operations.proto b/protos/google/cloud/compute/global_operations/v1/global_operations.proto index e7231182b3b14..e4578754040b7 100644 --- a/protos/google/cloud/compute/global_operations/v1/global_operations.proto +++ b/protos/google/cloud/compute/global_operations/v1/global_operations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/global_organization_operations/v1/global_organization_operations.proto b/protos/google/cloud/compute/global_organization_operations/v1/global_organization_operations.proto index 7b21912abd8f5..aa81f575f7d01 100644 --- a/protos/google/cloud/compute/global_organization_operations/v1/global_organization_operations.proto +++ b/protos/google/cloud/compute/global_organization_operations/v1/global_organization_operations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes.proto b/protos/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes.proto index 89e4d5fb3369f..ef2943c4f7d6d 100644 --- a/protos/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes.proto +++ b/protos/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/health_checks/v1/health_checks.proto b/protos/google/cloud/compute/health_checks/v1/health_checks.proto index 487187d4a6c4f..782a2420a1fd1 100644 --- a/protos/google/cloud/compute/health_checks/v1/health_checks.proto +++ b/protos/google/cloud/compute/health_checks/v1/health_checks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/http_health_checks/v1/http_health_checks.proto b/protos/google/cloud/compute/http_health_checks/v1/http_health_checks.proto index bd27e6726af19..5585be894562c 100644 --- a/protos/google/cloud/compute/http_health_checks/v1/http_health_checks.proto +++ b/protos/google/cloud/compute/http_health_checks/v1/http_health_checks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/https_health_checks/v1/https_health_checks.proto b/protos/google/cloud/compute/https_health_checks/v1/https_health_checks.proto index 76ca2899f1ac8..322ca2b22b735 100644 --- a/protos/google/cloud/compute/https_health_checks/v1/https_health_checks.proto +++ b/protos/google/cloud/compute/https_health_checks/v1/https_health_checks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/image_family_views/v1/image_family_views.proto b/protos/google/cloud/compute/image_family_views/v1/image_family_views.proto index 9f73ffc3a7858..9c06598e71499 100644 --- a/protos/google/cloud/compute/image_family_views/v1/image_family_views.proto +++ b/protos/google/cloud/compute/image_family_views/v1/image_family_views.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/images/v1/images.proto b/protos/google/cloud/compute/images/v1/images.proto index c6640fccabc4b..dd0e733de3741 100644 --- a/protos/google/cloud/compute/images/v1/images.proto +++ b/protos/google/cloud/compute/images/v1/images.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,12 +26,12 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_055.proto"; import "google/cloud/compute/v1/internal/common_057.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the images resource. diff --git a/protos/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests.proto b/protos/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests.proto index 1f01983638691..5a2b1739b7cae 100644 --- a/protos/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests.proto +++ b/protos/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/instance_group_managers/v1/instance_group_managers.proto b/protos/google/cloud/compute/instance_group_managers/v1/instance_group_managers.proto index 1c814eaf56fa5..d649502cf0082 100644 --- a/protos/google/cloud/compute/instance_group_managers/v1/instance_group_managers.proto +++ b/protos/google/cloud/compute/instance_group_managers/v1/instance_group_managers.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/instance_groups/v1/instance_groups.proto b/protos/google/cloud/compute/instance_groups/v1/instance_groups.proto index 98c78862e2dfa..09af07e2c771e 100644 --- a/protos/google/cloud/compute/instance_groups/v1/instance_groups.proto +++ b/protos/google/cloud/compute/instance_groups/v1/instance_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/instance_settings/v1/instance_settings.proto b/protos/google/cloud/compute/instance_settings/v1/instance_settings.proto index c2dd798ddb76d..21d1c41677866 100644 --- a/protos/google/cloud/compute/instance_settings/v1/instance_settings.proto +++ b/protos/google/cloud/compute/instance_settings/v1/instance_settings.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/instance_templates/v1/instance_templates.proto b/protos/google/cloud/compute/instance_templates/v1/instance_templates.proto index 0bea39f117ef1..f805f8b7b7660 100644 --- a/protos/google/cloud/compute/instance_templates/v1/instance_templates.proto +++ b/protos/google/cloud/compute/instance_templates/v1/instance_templates.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -29,7 +29,7 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_024.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_065.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the instanceTemplates resource. diff --git a/protos/google/cloud/compute/instances/v1/instances.proto b/protos/google/cloud/compute/instances/v1/instances.proto index 616d85071b2c9..86fc91efb903b 100644 --- a/protos/google/cloud/compute/instances/v1/instances.proto +++ b/protos/google/cloud/compute/instances/v1/instances.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,10 +28,10 @@ import "google/cloud/compute/v1/internal/common_003.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_015.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_021.proto"; +import "google/cloud/compute/v1/internal/common_022.proto"; import "google/cloud/compute/v1/internal/common_081.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; import "google/protobuf/empty.proto"; diff --git a/protos/google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto b/protos/google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto index 403d9e6c89f2e..1c84f08e03aa1 100644 --- a/protos/google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto +++ b/protos/google/cloud/compute/instant_snapshots/v1/instant_snapshots.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,9 +28,9 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_066.proto"; import "google/cloud/compute/v1/internal/common_067.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_150.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; // Service for the instantSnapshots resource. diff --git a/protos/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto b/protos/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto index c57701efcde3d..95bef67cebfc4 100644 --- a/protos/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto +++ b/protos/google/cloud/compute/interconnect_attachment_groups/v1/interconnect_attachment_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_071.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the interconnectAttachmentGroups resource. diff --git a/protos/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments.proto b/protos/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments.proto index 23beaa6bfcf81..d222cdcbb9840 100644 --- a/protos/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments.proto +++ b/protos/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto b/protos/google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto index b891af70b0cb4..ddc4d5fb00879 100644 --- a/protos/google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto +++ b/protos/google/cloud/compute/interconnect_groups/v1/interconnect_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_073.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the interconnectGroups resource. diff --git a/protos/google/cloud/compute/interconnect_locations/v1/interconnect_locations.proto b/protos/google/cloud/compute/interconnect_locations/v1/interconnect_locations.proto index 61bb9bf48c661..eeca89b4c528e 100644 --- a/protos/google/cloud/compute/interconnect_locations/v1/interconnect_locations.proto +++ b/protos/google/cloud/compute/interconnect_locations/v1/interconnect_locations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations.proto b/protos/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations.proto index 9b3aabe7b6c70..fd70145d7e612 100644 --- a/protos/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations.proto +++ b/protos/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/interconnects/v1/interconnects.proto b/protos/google/cloud/compute/interconnects/v1/interconnects.proto index fefaa8938aa6e..482249198a8ca 100644 --- a/protos/google/cloud/compute/interconnects/v1/interconnects.proto +++ b/protos/google/cloud/compute/interconnects/v1/interconnects.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/license_codes/v1/license_codes.proto b/protos/google/cloud/compute/license_codes/v1/license_codes.proto index a665d295f7491..6cd45c764a477 100644 --- a/protos/google/cloud/compute/license_codes/v1/license_codes.proto +++ b/protos/google/cloud/compute/license_codes/v1/license_codes.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_077.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; // Service for the licenseCodes resource. // https://cloud.google.com/compute/docs/reference/rest/v1/licenseCodes diff --git a/protos/google/cloud/compute/licenses/v1/licenses.proto b/protos/google/cloud/compute/licenses/v1/licenses.proto index 57e5caa91d451..d3cac01f37e30 100644 --- a/protos/google/cloud/compute/licenses/v1/licenses.proto +++ b/protos/google/cloud/compute/licenses/v1/licenses.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_076.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the licenses resource. diff --git a/protos/google/cloud/compute/machine_images/v1/machine_images.proto b/protos/google/cloud/compute/machine_images/v1/machine_images.proto index 6afc8a621574a..51831a427df4c 100644 --- a/protos/google/cloud/compute/machine_images/v1/machine_images.proto +++ b/protos/google/cloud/compute/machine_images/v1/machine_images.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -29,7 +29,7 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; import "google/cloud/compute/v1/internal/common_079.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the machineImages resource. diff --git a/protos/google/cloud/compute/machine_types/v1/machine_types.proto b/protos/google/cloud/compute/machine_types/v1/machine_types.proto index 688522b970f42..767e0413c2b31 100644 --- a/protos/google/cloud/compute/machine_types/v1/machine_types.proto +++ b/protos/google/cloud/compute/machine_types/v1/machine_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/network_attachments/v1/network_attachments.proto b/protos/google/cloud/compute/network_attachments/v1/network_attachments.proto index 532493e95fbc7..07cb84830c2a3 100644 --- a/protos/google/cloud/compute/network_attachments/v1/network_attachments.proto +++ b/protos/google/cloud/compute/network_attachments/v1/network_attachments.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_084.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the networkAttachments resource. diff --git a/protos/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services.proto b/protos/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services.proto index cc771e1f85501..07885b8db38da 100644 --- a/protos/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services.proto +++ b/protos/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto b/protos/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto index e245559c1e1bb..3d8f773374d40 100644 --- a/protos/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto +++ b/protos/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,7 +27,7 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_012.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_086.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the networkEndpointGroups resource. diff --git a/protos/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto b/protos/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto index 8c9c538fbddd8..d7c109ced7397 100644 --- a/protos/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto +++ b/protos/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -30,7 +30,7 @@ import "google/cloud/compute/v1/internal/common_037.proto"; import "google/cloud/compute/v1/internal/common_038.proto"; import "google/cloud/compute/v1/internal/common_039.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the networkFirewallPolicies resource. diff --git a/protos/google/cloud/compute/network_profiles/v1/network_profiles.proto b/protos/google/cloud/compute/network_profiles/v1/network_profiles.proto index adaeef95555cd..09a29d55d1ec6 100644 --- a/protos/google/cloud/compute/network_profiles/v1/network_profiles.proto +++ b/protos/google/cloud/compute/network_profiles/v1/network_profiles.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/networks/v1/networks.proto b/protos/google/cloud/compute/networks/v1/networks.proto index 06e6239fda0be..514e0a1604f55 100644 --- a/protos/google/cloud/compute/networks/v1/networks.proto +++ b/protos/google/cloud/compute/networks/v1/networks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/node_groups/v1/node_groups.proto b/protos/google/cloud/compute/node_groups/v1/node_groups.proto index 35f23584096e6..acc9e57c57fd9 100644 --- a/protos/google/cloud/compute/node_groups/v1/node_groups.proto +++ b/protos/google/cloud/compute/node_groups/v1/node_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,8 +27,8 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_058.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; // Service for the nodeGroups resource. diff --git a/protos/google/cloud/compute/node_templates/v1/node_templates.proto b/protos/google/cloud/compute/node_templates/v1/node_templates.proto index 63533b581f3e4..48203a5d09c1a 100644 --- a/protos/google/cloud/compute/node_templates/v1/node_templates.proto +++ b/protos/google/cloud/compute/node_templates/v1/node_templates.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,7 +28,7 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_088.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the nodeTemplates resource. diff --git a/protos/google/cloud/compute/node_types/v1/node_types.proto b/protos/google/cloud/compute/node_types/v1/node_types.proto index d07254c42d6b7..1e71c980618c0 100644 --- a/protos/google/cloud/compute/node_types/v1/node_types.proto +++ b/protos/google/cloud/compute/node_types/v1/node_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto b/protos/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto index 84cc488bcc9bd..3f4d65d7d8b38 100644 --- a/protos/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto +++ b/protos/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,7 +26,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_093.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the packetMirrorings resource. diff --git a/protos/google/cloud/compute/projects/v1/projects.proto b/protos/google/cloud/compute/projects/v1/projects.proto index cdc664ff23f74..0fb356401b82c 100644 --- a/protos/google/cloud/compute/projects/v1/projects.proto +++ b/protos/google/cloud/compute/projects/v1/projects.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes.proto b/protos/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes.proto index e9415105440b6..6368e50ea6728 100644 --- a/protos/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes.proto +++ b/protos/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes.proto b/protos/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes.proto index 74bcf88ef4989..5334a1892b3c6 100644 --- a/protos/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes.proto +++ b/protos/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_autoscalers/v1/region_autoscalers.proto b/protos/google/cloud/compute/region_autoscalers/v1/region_autoscalers.proto index fad7e2172e29d..1e27595cc67ba 100644 --- a/protos/google/cloud/compute/region_autoscalers/v1/region_autoscalers.proto +++ b/protos/google/cloud/compute/region_autoscalers/v1/region_autoscalers.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_backend_services/v1/region_backend_services.proto b/protos/google/cloud/compute/region_backend_services/v1/region_backend_services.proto index d8da9cd375264..d360fcbd1b792 100644 --- a/protos/google/cloud/compute/region_backend_services/v1/region_backend_services.proto +++ b/protos/google/cloud/compute/region_backend_services/v1/region_backend_services.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,8 +28,8 @@ import "google/cloud/compute/v1/internal/common_000.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_117.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_118.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionBackendServices resource. diff --git a/protos/google/cloud/compute/region_commitments/v1/region_commitments.proto b/protos/google/cloud/compute/region_commitments/v1/region_commitments.proto index f5c8db28a541c..e19e3920e455c 100644 --- a/protos/google/cloud/compute/region_commitments/v1/region_commitments.proto +++ b/protos/google/cloud/compute/region_commitments/v1/region_commitments.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_018.proto"; +import "google/cloud/compute/v1/internal/common_019.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionCommitments resource. diff --git a/protos/google/cloud/compute/region_disk_types/v1/region_disk_types.proto b/protos/google/cloud/compute/region_disk_types/v1/region_disk_types.proto index 43951321977f1..957820de6910c 100644 --- a/protos/google/cloud/compute/region_disk_types/v1/region_disk_types.proto +++ b/protos/google/cloud/compute/region_disk_types/v1/region_disk_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_disks/v1/region_disks.proto b/protos/google/cloud/compute/region_disks/v1/region_disks.proto index f0738bb6b974e..89f7040761f77 100644 --- a/protos/google/cloud/compute/region_disks/v1/region_disks.proto +++ b/protos/google/cloud/compute/region_disks/v1/region_disks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -30,8 +30,8 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_102.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_121.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_122.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionDisks resource. diff --git a/protos/google/cloud/compute/region_health_check_services/v1/region_health_check_services.proto b/protos/google/cloud/compute/region_health_check_services/v1/region_health_check_services.proto index ceae077b82b12..eef5382c0df41 100644 --- a/protos/google/cloud/compute/region_health_check_services/v1/region_health_check_services.proto +++ b/protos/google/cloud/compute/region_health_check_services/v1/region_health_check_services.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_health_checks/v1/region_health_checks.proto b/protos/google/cloud/compute/region_health_checks/v1/region_health_checks.proto index abab35f33cd9f..d81f7e46b3430 100644 --- a/protos/google/cloud/compute/region_health_checks/v1/region_health_checks.proto +++ b/protos/google/cloud/compute/region_health_checks/v1/region_health_checks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers.proto b/protos/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers.proto index 711b4cf4c3d8b..b94f8c023e59b 100644 --- a/protos/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers.proto +++ b/protos/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_instance_groups/v1/region_instance_groups.proto b/protos/google/cloud/compute/region_instance_groups/v1/region_instance_groups.proto index e016cf92c2d90..e43a8b7cd25ec 100644 --- a/protos/google/cloud/compute/region_instance_groups/v1/region_instance_groups.proto +++ b/protos/google/cloud/compute/region_instance_groups/v1/region_instance_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_instance_templates/v1/region_instance_templates.proto b/protos/google/cloud/compute/region_instance_templates/v1/region_instance_templates.proto index 0ef80e0f0540e..de95949c7249a 100644 --- a/protos/google/cloud/compute/region_instance_templates/v1/region_instance_templates.proto +++ b/protos/google/cloud/compute/region_instance_templates/v1/region_instance_templates.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_instances/v1/region_instances.proto b/protos/google/cloud/compute/region_instances/v1/region_instances.proto index da389bd6e2a31..5dd9760a5ebf2 100644 --- a/protos/google/cloud/compute/region_instances/v1/region_instances.proto +++ b/protos/google/cloud/compute/region_instances/v1/region_instances.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto b/protos/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto index 232f01d95e240..90c31f4f1e415 100644 --- a/protos/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto +++ b/protos/google/cloud/compute/region_instant_snapshots/v1/region_instant_snapshots.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -29,7 +29,7 @@ import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_066.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionInstantSnapshots resource. diff --git a/protos/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups.proto b/protos/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups.proto index 9488ed58f26cf..e3d22f0ad96be 100644 --- a/protos/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups.proto +++ b/protos/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto b/protos/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto index a0aad491dd318..f71b6ffcf963a 100644 --- a/protos/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto +++ b/protos/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -30,7 +30,7 @@ import "google/cloud/compute/v1/internal/common_038.proto"; import "google/cloud/compute/v1/internal/common_039.proto"; import "google/cloud/compute/v1/internal/common_106.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionNetworkFirewallPolicies resource. diff --git a/protos/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints.proto b/protos/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints.proto index cd9964e790e1f..4fbbe0f17d7ef 100644 --- a/protos/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints.proto +++ b/protos/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_operations/v1/region_operations.proto b/protos/google/cloud/compute/region_operations/v1/region_operations.proto index 8133a64eced0e..bb2bdd40ec995 100644 --- a/protos/google/cloud/compute/region_operations/v1/region_operations.proto +++ b/protos/google/cloud/compute/region_operations/v1/region_operations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/region_security_policies/v1/region_security_policies.proto b/protos/google/cloud/compute/region_security_policies/v1/region_security_policies.proto index 26e9e25238351..b34f8150b05c6 100644 --- a/protos/google/cloud/compute/region_security_policies/v1/region_security_policies.proto +++ b/protos/google/cloud/compute/region_security_policies/v1/region_security_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,7 +26,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; -import "google/cloud/compute/v1/internal/common_116.proto"; +import "google/cloud/compute/v1/internal/common_117.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionSecurityPolicies resource. diff --git a/protos/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto b/protos/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto index 99bd625e1022c..349fd69ffae86 100644 --- a/protos/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto +++ b/protos/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_124.proto"; +import "google/cloud/compute/v1/internal/common_125.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionSslCertificates resource. diff --git a/protos/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto b/protos/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto index e237ef1627c25..7d67fb665565d 100644 --- a/protos/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto +++ b/protos/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_127.proto"; +import "google/cloud/compute/v1/internal/common_128.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionSslPolicies resource. diff --git a/protos/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto b/protos/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto index 1356ed98903a4..ff826526871c3 100644 --- a/protos/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto +++ b/protos/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_134.proto"; -import "google/cloud/compute/v1/internal/common_146.proto"; +import "google/cloud/compute/v1/internal/common_135.proto"; +import "google/cloud/compute/v1/internal/common_147.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionTargetHttpProxies resource. diff --git a/protos/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto b/protos/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto index 5b0b115b5d7c5..c5d7d8c3665b3 100644 --- a/protos/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto +++ b/protos/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,8 +26,8 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_109.proto"; -import "google/cloud/compute/v1/internal/common_136.proto"; -import "google/cloud/compute/v1/internal/common_146.proto"; +import "google/cloud/compute/v1/internal/common_137.proto"; +import "google/cloud/compute/v1/internal/common_147.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionTargetHttpsProxies resource. diff --git a/protos/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto b/protos/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto index 1c30c45ed9f64..951e134895ca0 100644 --- a/protos/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto +++ b/protos/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_142.proto"; +import "google/cloud/compute/v1/internal/common_143.proto"; import "google/cloud/extended_operations.proto"; // Service for the regionTargetTcpProxies resource. diff --git a/protos/google/cloud/compute/region_url_maps/v1/region_url_maps.proto b/protos/google/cloud/compute/region_url_maps/v1/region_url_maps.proto index 83238690791fe..0e51bfd54e03e 100644 --- a/protos/google/cloud/compute/region_url_maps/v1/region_url_maps.proto +++ b/protos/google/cloud/compute/region_url_maps/v1/region_url_maps.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_019.proto"; +import "google/cloud/compute/v1/internal/common_020.proto"; import "google/cloud/compute/v1/internal/common_110.proto"; import "google/cloud/extended_operations.proto"; diff --git a/protos/google/cloud/compute/region_zones/v1/region_zones.proto b/protos/google/cloud/compute/region_zones/v1/region_zones.proto index 4427372532e67..d329a37e0167a 100644 --- a/protos/google/cloud/compute/region_zones/v1/region_zones.proto +++ b/protos/google/cloud/compute/region_zones/v1/region_zones.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -24,7 +24,7 @@ package google.cloud.cpp.compute.region_zones.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -import "google/cloud/compute/v1/internal/common_149.proto"; +import "google/cloud/compute/v1/internal/common_150.proto"; // Service for the regionZones resource. // https://cloud.google.com/compute/docs/reference/rest/v1/regionZones diff --git a/protos/google/cloud/compute/regions/v1/regions.proto b/protos/google/cloud/compute/regions/v1/regions.proto index d32473263edc3..6bd4a14dba03e 100644 --- a/protos/google/cloud/compute/regions/v1/regions.proto +++ b/protos/google/cloud/compute/regions/v1/regions.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto b/protos/google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto index 94918144ecc85..cc9751c635dfe 100644 --- a/protos/google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto +++ b/protos/google/cloud/compute/reservation_blocks/v1/reservation_blocks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto b/protos/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto new file mode 100644 index 0000000000000..41c3f1737f563 --- /dev/null +++ b/protos/google/cloud/compute/reservation_sub_blocks/v1/reservation_sub_blocks.proto @@ -0,0 +1,157 @@ +// 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 +// +// https://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. + +// Generated by the C++ microgenerator. +// If you make any local changes, they will be lost. +// file:///workspace/generator/discovery/compute_public_google_rest_v1.json +// revision: 20250601 + +syntax = "proto3"; + +package google.cloud.cpp.compute.reservation_sub_blocks.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/cloud/compute/v1/internal/common_113.proto"; + +// Service for the reservationSubBlocks resource. +// https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks +service ReservationSubBlocks { + option (google.api.default_host) = "compute.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/compute," + "https://www.googleapis.com/auth/compute.readonly"; + + // Retrieves information about the specified reservation subBlock. + // https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/get + rpc GetReservationSubBlocksGetResponse( + GetReservationSubBlocksGetResponseRequest) + returns (google.cloud.cpp.compute.v1.ReservationSubBlocksGetResponse) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/{parent_name}/reservationSubBlocks/{reservation_sub_block}" + }; + option (google.api.method_signature) = + "project,zone,parent_name,reservation_sub_block"; + } + + // Retrieves a list of reservation subBlocks under a single reservation. + // https://cloud.google.com/compute/docs/reference/rest/v1/reservationSubBlocks/list + rpc ListReservationSubBlocks(ListReservationSubBlocksRequest) + returns (google.cloud.cpp.compute.v1.ReservationSubBlocksListResponse) { + option (google.api.http) = { + get: "/compute/v1/projects/{project}/zones/{zone}/{parent_name}/reservationSubBlocks" + }; + option (google.api.method_signature) = "project,zone,parent_name"; + } +} + +// Request message for GetReservationSubBlocksGetResponse. +message GetReservationSubBlocksGetResponseRequest { + // The name of the parent reservation and parent block. In the format of + // reservations/{reservation_name}/reservationBlocks/{reservation_block_name} + string parent_name = 1 + [(google.api.field_behavior) = REQUIRED, json_name = "parentName"]; + + // Project ID for this request. + string project = 2 + [(google.api.field_behavior) = REQUIRED, json_name = "project"]; + + // The name of the reservation subBlock. Name should conform to RFC1035 or be + // a resource ID. + string reservation_sub_block = 3 [ + (google.api.field_behavior) = REQUIRED, + json_name = "reservationSubBlock" + ]; + + // Name of the zone for this request. Zone name should conform to RFC1035. + string zone = 4 [(google.api.field_behavior) = REQUIRED, json_name = "zone"]; +} + +// Request message for ListReservationSubBlocks. +message ListReservationSubBlocksRequest { + // A filter expression that filters resources listed in the response. Most + // Compute resources support two types of filter expressions: expressions that + // support regular expressions and expressions that follow API improvement + // proposal AIP-160. These two types of filter expressions cannot be mixed in + // one request. If you want to use AIP-160, your expression must specify the + // field name, an operator, and the value that you want to use for filtering. + // The value must be a string, a number, or a boolean. The operator must be + // either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are + // filtering Compute Engine instances, you can exclude instances named + // `example-instance` by specifying `name != example-instance`. The `:*` + // comparison can be used to test whether a key has been defined. For example, + // to find all objects with `owner` label use: ``` labels.owner:* ``` You can + // also filter nested fields. For example, you could specify + // `scheduling.automaticRestart = false` to include instances only if they are + // not scheduled for automatic restarts. You can use filtering on nested + // fields to filter based on resource labels. To filter on multiple + // expressions, provide each separate expression within parentheses. For + // example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel + // Skylake") ``` By default, each expression is an `AND` expression. However, + // you can include `AND` and `OR` expressions explicitly. For example: ``` + // (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND + // (scheduling.automaticRestart = true) ``` If you want to use a regular + // expression, use the `eq` (equal) or `ne` (not equal) operator against a + // single un-parenthesized expression with or without quotes or against + // multiple parenthesized expressions. Examples: `fieldname eq unquoted + // literal` `fieldname eq 'single quoted literal'` `fieldname eq "double + // quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The + // literal value is interpreted as a regular expression using Google RE2 + // library syntax. The literal value must match the entire field. For example, + // to filter for instances that do not end with name "instance", you would use + // `name ne .*instance`. You cannot combine constraints on multiple fields + // using regular expressions. + optional string filter = 1 [json_name = "filter"]; + + // The maximum number of results per page that should be returned. If the + // number of available results is larger than `maxResults`, Compute Engine + // returns a `nextPageToken` that can be used to get the next page of results + // in subsequent list requests. Acceptable values are `0` to `500`, inclusive. + // (Default: `500`) + optional uint32 max_results = 2 [json_name = "maxResults"]; + + // Sorts list results by a certain order. By default, results are returned in + // alphanumerical order based on the resource name. You can also sort results + // in descending order based on the creation timestamp using + // `orderBy="creationTimestamp desc"`. This sorts results based on the + // `creationTimestamp` field in reverse chronological order (newest result + // first). Use this to sort resources like operations so that the newest + // operation is returned first. Currently, only sorting by `name` or + // `creationTimestamp desc` is supported. + optional string order_by = 3 [json_name = "orderBy"]; + + // Specifies a page token to use. Set `pageToken` to the `nextPageToken` + // returned by a previous list request to get the next page of results. + optional string page_token = 4 [json_name = "pageToken"]; + + // The name of the parent reservation and parent block. In the format of + // reservations/{reservation_name}/reservationBlocks/{reservation_block_name} + string parent_name = 5 + [(google.api.field_behavior) = REQUIRED, json_name = "parentName"]; + + // Project ID for this request. + string project = 6 + [(google.api.field_behavior) = REQUIRED, json_name = "project"]; + + // Opt-in for partial success behavior which provides partial results in case + // of failure. The default value is false. For example, when partial success + // behavior is enabled, aggregatedList for a single zone scope either returns + // all resources in the zone or no resources, with an error code. + optional bool return_partial_success = 7 [json_name = "returnPartialSuccess"]; + + // Name of the zone for this request. Zone name should conform to RFC1035. + string zone = 8 [(google.api.field_behavior) = REQUIRED, json_name = "zone"]; +} diff --git a/protos/google/cloud/compute/reservations/v1/reservations.proto b/protos/google/cloud/compute/reservations/v1/reservations.proto index 077510fa4219e..83cb5ff72e54f 100644 --- a/protos/google/cloud/compute/reservations/v1/reservations.proto +++ b/protos/google/cloud/compute/reservations/v1/reservations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,8 +28,8 @@ import "google/cloud/compute/v1/internal/common_006.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_111.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; // Service for the reservations resource. diff --git a/protos/google/cloud/compute/resource_policies/v1/resource_policies.proto b/protos/google/cloud/compute/resource_policies/v1/resource_policies.proto index 1a8f8f3bacbb7..e53820df7893b 100644 --- a/protos/google/cloud/compute/resource_policies/v1/resource_policies.proto +++ b/protos/google/cloud/compute/resource_policies/v1/resource_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,8 +27,8 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_113.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_114.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the resourcePolicies resource. diff --git a/protos/google/cloud/compute/routers/v1/routers.proto b/protos/google/cloud/compute/routers/v1/routers.proto index 6c3867d0f1ffe..7de16e388ac56 100644 --- a/protos/google/cloud/compute/routers/v1/routers.proto +++ b/protos/google/cloud/compute/routers/v1/routers.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/routes/v1/routes.proto b/protos/google/cloud/compute/routes/v1/routes.proto index 63f5be9c419a1..cf93e620f7c48 100644 --- a/protos/google/cloud/compute/routes/v1/routes.proto +++ b/protos/google/cloud/compute/routes/v1/routes.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_114.proto"; import "google/cloud/compute/v1/internal/common_115.proto"; +import "google/cloud/compute/v1/internal/common_116.proto"; import "google/cloud/extended_operations.proto"; // Service for the routes resource. diff --git a/protos/google/cloud/compute/security_policies/v1/security_policies.proto b/protos/google/cloud/compute/security_policies/v1/security_policies.proto index ef5361ac79721..b102c34f8377b 100644 --- a/protos/google/cloud/compute/security_policies/v1/security_policies.proto +++ b/protos/google/cloud/compute/security_policies/v1/security_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,7 +27,7 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; import "google/cloud/compute/v1/internal/common_094.proto"; -import "google/cloud/compute/v1/internal/common_116.proto"; +import "google/cloud/compute/v1/internal/common_117.proto"; import "google/cloud/extended_operations.proto"; // Service for the securityPolicies resource. diff --git a/protos/google/cloud/compute/service_attachments/v1/service_attachments.proto b/protos/google/cloud/compute/service_attachments/v1/service_attachments.proto index d5f4093c1c18c..8fdbac437eb52 100644 --- a/protos/google/cloud/compute/service_attachments/v1/service_attachments.proto +++ b/protos/google/cloud/compute/service_attachments/v1/service_attachments.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,8 +27,8 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_118.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_119.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the serviceAttachments resource. diff --git a/protos/google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto b/protos/google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto index fcd01beaed1e2..c4bee3b515300 100644 --- a/protos/google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto +++ b/protos/google/cloud/compute/snapshot_settings/v1/snapshot_settings.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_123.proto"; +import "google/cloud/compute/v1/internal/common_124.proto"; import "google/cloud/extended_operations.proto"; // Service for the snapshotSettings resource. diff --git a/protos/google/cloud/compute/snapshots/v1/snapshots.proto b/protos/google/cloud/compute/snapshots/v1/snapshots.proto index cad9b8d2b3687..378e48813b424 100644 --- a/protos/google/cloud/compute/snapshots/v1/snapshots.proto +++ b/protos/google/cloud/compute/snapshots/v1/snapshots.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -28,9 +28,9 @@ import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_046.proto"; import "google/cloud/compute/v1/internal/common_047.proto"; -import "google/cloud/compute/v1/internal/common_121.proto"; import "google/cloud/compute/v1/internal/common_122.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_123.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the snapshots resource. diff --git a/protos/google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto b/protos/google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto index f06b1f6570329..9ca395a3db734 100644 --- a/protos/google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto +++ b/protos/google/cloud/compute/ssl_certificates/v1/ssl_certificates.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_124.proto"; import "google/cloud/compute/v1/internal/common_125.proto"; +import "google/cloud/compute/v1/internal/common_126.proto"; import "google/cloud/extended_operations.proto"; // Service for the sslCertificates resource. diff --git a/protos/google/cloud/compute/ssl_policies/v1/ssl_policies.proto b/protos/google/cloud/compute/ssl_policies/v1/ssl_policies.proto index 7d2d61500ae43..87a43fbcfef0f 100644 --- a/protos/google/cloud/compute/ssl_policies/v1/ssl_policies.proto +++ b/protos/google/cloud/compute/ssl_policies/v1/ssl_policies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_126.proto"; import "google/cloud/compute/v1/internal/common_127.proto"; +import "google/cloud/compute/v1/internal/common_128.proto"; import "google/cloud/extended_operations.proto"; // Service for the sslPolicies resource. diff --git a/protos/google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto b/protos/google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto index 8fff850961b14..17c01fb1f393e 100644 --- a/protos/google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto +++ b/protos/google/cloud/compute/storage_pool_types/v1/storage_pool_types.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -24,7 +24,7 @@ package google.cloud.cpp.compute.storage_pool_types.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -import "google/cloud/compute/v1/internal/common_130.proto"; +import "google/cloud/compute/v1/internal/common_131.proto"; // Service for the storagePoolTypes resource. // https://cloud.google.com/compute/docs/reference/rest/v1/storagePoolTypes diff --git a/protos/google/cloud/compute/storage_pools/v1/storage_pools.proto b/protos/google/cloud/compute/storage_pools/v1/storage_pools.proto index a5d57496a8fd1..39ad1ecda73dc 100644 --- a/protos/google/cloud/compute/storage_pools/v1/storage_pools.proto +++ b/protos/google/cloud/compute/storage_pools/v1/storage_pools.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,9 +26,9 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_129.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_151.proto"; +import "google/cloud/compute/v1/internal/common_130.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_152.proto"; import "google/cloud/extended_operations.proto"; // Service for the storagePools resource. diff --git a/protos/google/cloud/compute/subnetworks/v1/subnetworks.proto b/protos/google/cloud/compute/subnetworks/v1/subnetworks.proto index a224fb3744290..70505d3f9dc8c 100644 --- a/protos/google/cloud/compute/subnetworks/v1/subnetworks.proto +++ b/protos/google/cloud/compute/subnetworks/v1/subnetworks.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -27,8 +27,8 @@ import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_007.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_108.proto"; -import "google/cloud/compute/v1/internal/common_131.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; +import "google/cloud/compute/v1/internal/common_132.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; import "google/cloud/extended_operations.proto"; // Service for the subnetworks resource. diff --git a/protos/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto b/protos/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto index 1ec63c14a7cae..d8ef6880fd95e 100644 --- a/protos/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto +++ b/protos/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,7 +25,7 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_132.proto"; +import "google/cloud/compute/v1/internal/common_133.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetGrpcProxies resource. diff --git a/protos/google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto b/protos/google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto index 3cdb4c72cf5e1..8194d3ec96112 100644 --- a/protos/google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto +++ b/protos/google/cloud/compute/target_http_proxies/v1/target_http_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,9 +25,9 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_133.proto"; import "google/cloud/compute/v1/internal/common_134.proto"; -import "google/cloud/compute/v1/internal/common_146.proto"; +import "google/cloud/compute/v1/internal/common_135.proto"; +import "google/cloud/compute/v1/internal/common_147.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetHttpProxies resource. diff --git a/protos/google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto b/protos/google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto index a8535ae94d812..1334a707928c8 100644 --- a/protos/google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto +++ b/protos/google/cloud/compute/target_https_proxies/v1/target_https_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,10 +25,10 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_128.proto"; -import "google/cloud/compute/v1/internal/common_135.proto"; +import "google/cloud/compute/v1/internal/common_129.proto"; import "google/cloud/compute/v1/internal/common_136.proto"; -import "google/cloud/compute/v1/internal/common_146.proto"; +import "google/cloud/compute/v1/internal/common_137.proto"; +import "google/cloud/compute/v1/internal/common_147.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetHttpsProxies resource. diff --git a/protos/google/cloud/compute/target_instances/v1/target_instances.proto b/protos/google/cloud/compute/target_instances/v1/target_instances.proto index 5bca69bb1b635..7e226118e4ea2 100644 --- a/protos/google/cloud/compute/target_instances/v1/target_instances.proto +++ b/protos/google/cloud/compute/target_instances/v1/target_instances.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_117.proto"; -import "google/cloud/compute/v1/internal/common_137.proto"; +import "google/cloud/compute/v1/internal/common_118.proto"; +import "google/cloud/compute/v1/internal/common_138.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetInstances resource. diff --git a/protos/google/cloud/compute/target_pools/v1/target_pools.proto b/protos/google/cloud/compute/target_pools/v1/target_pools.proto index f0a70afcc8dc3..e7ce776f66fec 100644 --- a/protos/google/cloud/compute/target_pools/v1/target_pools.proto +++ b/protos/google/cloud/compute/target_pools/v1/target_pools.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,9 +26,9 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_063.proto"; -import "google/cloud/compute/v1/internal/common_117.proto"; -import "google/cloud/compute/v1/internal/common_138.proto"; +import "google/cloud/compute/v1/internal/common_118.proto"; import "google/cloud/compute/v1/internal/common_139.proto"; +import "google/cloud/compute/v1/internal/common_140.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetPools resource. diff --git a/protos/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto b/protos/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto index 52077f16fefda..bbae3e7783a0e 100644 --- a/protos/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto +++ b/protos/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_128.proto"; -import "google/cloud/compute/v1/internal/common_140.proto"; +import "google/cloud/compute/v1/internal/common_129.proto"; +import "google/cloud/compute/v1/internal/common_141.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetSslProxies resource. diff --git a/protos/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto b/protos/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto index 87b8d65020d3c..dcd44b7dd5078 100644 --- a/protos/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto +++ b/protos/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_141.proto"; import "google/cloud/compute/v1/internal/common_142.proto"; +import "google/cloud/compute/v1/internal/common_143.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetTcpProxies resource. diff --git a/protos/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto b/protos/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto index 235be68e7ce9a..e44b8be9a529c 100644 --- a/protos/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto +++ b/protos/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,7 +26,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; -import "google/cloud/compute/v1/internal/common_143.proto"; +import "google/cloud/compute/v1/internal/common_144.proto"; import "google/cloud/extended_operations.proto"; // Service for the targetVpnGateways resource. diff --git a/protos/google/cloud/compute/url_maps/v1/url_maps.proto b/protos/google/cloud/compute/url_maps/v1/url_maps.proto index e8269f1f038b3..e35cf5d343b9f 100644 --- a/protos/google/cloud/compute/url_maps/v1/url_maps.proto +++ b/protos/google/cloud/compute/url_maps/v1/url_maps.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -25,8 +25,8 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; -import "google/cloud/compute/v1/internal/common_017.proto"; -import "google/cloud/compute/v1/internal/common_019.proto"; +import "google/cloud/compute/v1/internal/common_018.proto"; +import "google/cloud/compute/v1/internal/common_020.proto"; import "google/cloud/extended_operations.proto"; // Service for the urlMaps resource. diff --git a/protos/google/cloud/compute/v1/internal/common_000.proto b/protos/google/cloud/compute/v1/internal/common_000.proto index 656d158b871e8..ad588be5b370a 100644 --- a/protos/google/cloud/compute/v1/internal/common_000.proto +++ b/protos/google/cloud/compute/v1/internal/common_000.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -978,7 +978,7 @@ message BackendServiceHAPolicy { // and all NEGs must belong to that network. However, individual NEGs can // belong to different subnetworks of that network. - The maximum number of // network endpoints across all backends of a backend service with fastIPMove - // is 64. - The maximum number of backend services with fastIPMove that can + // is 32. - The maximum number of backend services with fastIPMove that can // have the same network endpoint attached to one of its backends is 64. - The // maximum number of backend services with fastIPMove in a VPC in a region is // 64. - The network endpoints that are attached to a backend of a backend diff --git a/protos/google/cloud/compute/v1/internal/common_001.proto b/protos/google/cloud/compute/v1/internal/common_001.proto index 074c3db4cea57..3be2846e9e513 100644 --- a/protos/google/cloud/compute/v1/internal/common_001.proto +++ b/protos/google/cloud/compute/v1/internal/common_001.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_002.proto b/protos/google/cloud/compute/v1/internal/common_002.proto index 7ac108eed4c85..b410a4f8cd838 100644 --- a/protos/google/cloud/compute/v1/internal/common_002.proto +++ b/protos/google/cloud/compute/v1/internal/common_002.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; // Represents an Accelerator Type resource. Google Cloud Platform provides // graphics processing units (accelerators) that you can add to VM instances to diff --git a/protos/google/cloud/compute/v1/internal/common_003.proto b/protos/google/cloud/compute/v1/internal/common_003.proto index e5ce58c3bd077..29a9b5202a243 100644 --- a/protos/google/cloud/compute/v1/internal/common_003.proto +++ b/protos/google/cloud/compute/v1/internal/common_003.proto @@ -15,14 +15,14 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; import "google/cloud/compute/v1/internal/common_001.proto"; -import "google/cloud/compute/v1/internal/common_020.proto"; +import "google/cloud/compute/v1/internal/common_021.proto"; import "google/cloud/compute/v1/internal/common_029.proto"; import "google/cloud/compute/v1/internal/common_033.proto"; import "google/cloud/compute/v1/internal/common_081.proto"; diff --git a/protos/google/cloud/compute/v1/internal/common_004.proto b/protos/google/cloud/compute/v1/internal/common_004.proto index 1b8994bebeea9..b289ba4d92169 100644 --- a/protos/google/cloud/compute/v1/internal/common_004.proto +++ b/protos/google/cloud/compute/v1/internal/common_004.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_005.proto b/protos/google/cloud/compute/v1/internal/common_005.proto index 1ca07ccf61799..66ecef1b19351 100644 --- a/protos/google/cloud/compute/v1/internal/common_005.proto +++ b/protos/google/cloud/compute/v1/internal/common_005.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_006.proto b/protos/google/cloud/compute/v1/internal/common_006.proto index 8de46dc3717eb..8294f4a158cbb 100644 --- a/protos/google/cloud/compute/v1/internal/common_006.proto +++ b/protos/google/cloud/compute/v1/internal/common_006.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -24,7 +24,7 @@ package google.cloud.cpp.compute.v1; import "google/cloud/compute/v1/internal/common_001.proto"; import "google/cloud/compute/v1/internal/common_029.proto"; import "google/cloud/compute/v1/internal/common_048.proto"; -import "google/cloud/compute/v1/internal/common_119.proto"; +import "google/cloud/compute/v1/internal/common_120.proto"; // This reservation type is specified by total resource amounts (e.g. total // count of CPUs) and can account for multiple instance SKUs. In other words, @@ -205,6 +205,11 @@ message Reservation { // create the resource. optional string description = 3 [json_name = "description"]; + // Indicates whether Compute Engine allows unplanned maintenance for your VMs; + // for example, to fix hardware errors. + optional bool enable_emergent_maintenance = 22 + [json_name = "enableEmergentMaintenance"]; + // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. optional string id = 4 [json_name = "id"]; diff --git a/protos/google/cloud/compute/v1/internal/common_007.proto b/protos/google/cloud/compute/v1/internal/common_007.proto index c92df96f9a5f5..31d3c6a309705 100644 --- a/protos/google/cloud/compute/v1/internal/common_007.proto +++ b/protos/google/cloud/compute/v1/internal/common_007.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_008.proto b/protos/google/cloud/compute/v1/internal/common_008.proto index 5b4e08de6ced1..b3ae147416715 100644 --- a/protos/google/cloud/compute/v1/internal/common_008.proto +++ b/protos/google/cloud/compute/v1/internal/common_008.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_009.proto b/protos/google/cloud/compute/v1/internal/common_009.proto index 9c726b6ac39d2..6cdec5148a0b0 100644 --- a/protos/google/cloud/compute/v1/internal/common_009.proto +++ b/protos/google/cloud/compute/v1/internal/common_009.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_010.proto b/protos/google/cloud/compute/v1/internal/common_010.proto index cfd80a2a81397..c1fe4b300ec64 100644 --- a/protos/google/cloud/compute/v1/internal/common_010.proto +++ b/protos/google/cloud/compute/v1/internal/common_010.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_011.proto b/protos/google/cloud/compute/v1/internal/common_011.proto index a89d55ce97505..148328002fa3c 100644 --- a/protos/google/cloud/compute/v1/internal/common_011.proto +++ b/protos/google/cloud/compute/v1/internal/common_011.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_012.proto b/protos/google/cloud/compute/v1/internal/common_012.proto index 16b37ffff46e6..95a3f54c29b6d 100644 --- a/protos/google/cloud/compute/v1/internal/common_012.proto +++ b/protos/google/cloud/compute/v1/internal/common_012.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_013.proto b/protos/google/cloud/compute/v1/internal/common_013.proto index 5caad3e5e1387..30128991e4628 100644 --- a/protos/google/cloud/compute/v1/internal/common_013.proto +++ b/protos/google/cloud/compute/v1/internal/common_013.proto @@ -15,14 +15,14 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; import "google/cloud/compute/v1/internal/common_031.proto"; -import "google/cloud/compute/v1/internal/common_114.proto"; +import "google/cloud/compute/v1/internal/common_115.proto"; message BfdPacket { // The Authentication Present bit of the BFD packet. This is specified in diff --git a/protos/google/cloud/compute/v1/internal/common_014.proto b/protos/google/cloud/compute/v1/internal/common_014.proto index 2097519be5bbf..0a4765e4fc4ad 100644 --- a/protos/google/cloud/compute/v1/internal/common_014.proto +++ b/protos/google/cloud/compute/v1/internal/common_014.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_020.proto"; +import "google/cloud/compute/v1/internal/common_021.proto"; // A transient resource used in compute.disks.bulkInsert and // compute.regionDisks.bulkInsert. It is only used to process requests and is diff --git a/protos/google/cloud/compute/v1/internal/common_015.proto b/protos/google/cloud/compute/v1/internal/common_015.proto index d7cc50a486ecd..5f26a674eba95 100644 --- a/protos/google/cloud/compute/v1/internal/common_015.proto +++ b/protos/google/cloud/compute/v1/internal/common_015.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_016.proto b/protos/google/cloud/compute/v1/internal/common_016.proto index b8ef7bf6151b9..9827e4f86c8ee 100644 --- a/protos/google/cloud/compute/v1/internal/common_016.proto +++ b/protos/google/cloud/compute/v1/internal/common_016.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_017.proto b/protos/google/cloud/compute/v1/internal/common_017.proto index 813f8339139dd..3a5b4f1e9cc97 100644 --- a/protos/google/cloud/compute/v1/internal/common_017.proto +++ b/protos/google/cloud/compute/v1/internal/common_017.proto @@ -15,39 +15,40 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_019.proto"; +import "google/cloud/compute/v1/internal/common_014.proto"; -message CacheInvalidationRule { - // A list of cache tags used to identify cached objects. - Cache tags are - // specified when the response is first cached, by setting the `Cache-Tag` - // response header at the origin. - Multiple cache tags in the same - // invalidation request are treated as Boolean `OR` - for example, `tag1 OR - // tag2 OR tag3`. - If other fields are also specified, these are treated as - // Boolean `AND` with any tags. Up to 10 tags can be specified in a single - // invalidation request. - repeated string cache_tags = 3 [json_name = "cacheTags"]; +message BulkSetLabelsRequest { + // The fingerprint of the previous set of labels for this resource, used to + // detect conflicts. The fingerprint is initially generated by Compute Engine + // and changes after every request to modify or update labels. You may + // optionally provide an up-to-date fingerprint hash in order to update or + // change labels. Make a get() request to the resource to get the latest + // fingerprint. + optional string label_fingerprint = 1 [json_name = "labelFingerprint"]; - // If set, this invalidation rule will only apply to requests with a Host - // header matching host. - optional string host = 1 [json_name = "host"]; + // The labels to set for this resource. + map labels = 2 [json_name = "labels"]; +} - optional string path = 2 [json_name = "path"]; +message BulkZoneSetLabelsRequest { + repeated BulkSetLabelsRequest requests = 1 [json_name = "requests"]; } -message UrlMapsAggregatedList { +message DiskAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of UrlMapsScopedList resources. - map items = 2 [json_name = "items"]; + // A list of DisksScopedList resources. + map items = 2 [json_name = "items"]; - // Type of resource. + // [Output Only] Type of resource. Always compute#diskAggregatedList for + // aggregated lists of persistent disks. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -150,9 +151,25 @@ message UrlMapsAggregatedList { optional Warning warning = 7 [json_name = "warning"]; } -message UrlMapsScopedList { - // A list of UrlMaps contained in this scope. - repeated UrlMap url_maps = 1 [json_name = "urlMaps"]; +message DisksAddResourcePoliciesRequest { + // Full or relative path to the resource policy to be added to this disk. You + // can only specify one resource policy. + repeated string resource_policies = 1 [json_name = "resourcePolicies"]; +} + +message DisksRemoveResourcePoliciesRequest { + // Resource policies to be removed from this disk. + repeated string resource_policies = 1 [json_name = "resourcePolicies"]; +} + +message DisksResizeRequest { + // The new size of the persistent disk, which is specified in GB. + optional string size_gb = 1 [json_name = "sizeGb"]; +} + +message DisksScopedList { + // [Output Only] A list of disks contained in this scope. + repeated Disk disks = 1 [json_name = "disks"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -237,27 +254,20 @@ message UrlMapsScopedList { optional string message = 3 [json_name = "message"]; } - // Informational warning which replaces the list of backend services when the - // list is empty. + // [Output Only] Informational warning which replaces the list of disks when + // the list is empty. optional Warning warning = 2 [json_name = "warning"]; } -message UrlMapsValidateRequest { - // Specifies the load balancer type(s) this validation request is for. Use - // EXTERNAL_MANAGED for global external Application Load Balancers and - // regional external Application Load Balancers. Use EXTERNAL for classic - // Application Load Balancers. Use INTERNAL_MANAGED for internal Application - // Load Balancers. For more information, refer to Choosing a load balancer. If - // unspecified, the load balancing scheme will be inferred from the backend - // service resources this URL map references. If that can not be inferred (for - // example, this URL map only references backend buckets, or this Url map is - // for rewrites and redirects only and doesn't reference any backends), - // EXTERNAL will be used as the default type. If specified, the scheme(s) must - // not conflict with the load balancing scheme of the backend service - // resources this Url map references. - repeated string load_balancing_schemes = 1 - [json_name = "loadBalancingSchemes"]; - - // Content of the UrlMap to be validated. - optional UrlMap resource = 2 [json_name = "resource"]; +message DisksStartAsyncReplicationRequest { + // The secondary disk to start asynchronous replication to. You can provide + // this as a partial or full URL to the resource. For example, the following + // are valid values: - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone + // /disks/disk - + // https://www.googleapis.com/compute/v1/projects/project/regions/region + // /disks/disk - projects/project/zones/zone/disks/disk - + // projects/project/regions/region/disks/disk - zones/zone/disks/disk - + // regions/region/disks/disk + optional string async_secondary_disk = 1 [json_name = "asyncSecondaryDisk"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_018.proto b/protos/google/cloud/compute/v1/internal/common_018.proto index 40113588df021..8fd41512567a3 100644 --- a/protos/google/cloud/compute/v1/internal/common_018.proto +++ b/protos/google/cloud/compute/v1/internal/common_018.proto @@ -15,201 +15,39 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_006.proto"; +import "google/cloud/compute/v1/internal/common_020.proto"; -// Represents a regional resource-based commitment resource. Creating this -// commitment resource means that you are purchasing a resource-based committed -// use contract, with an explicit start and end time. You can purchase -// resource-based commitments for both hardware and software resources. For more -// information, read Resource-based committed use discounts -message Commitment { - // Specifies whether to automatically renew the commitment at the end of its - // current term. The default value is false. If you set the field to true, - // each time your commitment reaches the end of its term, Compute Engine - // automatically renews it for another term. You can update this field anytime - // before the commitment expires. For example, if the commitment is set to - // expire at 12 AM UTC-8 on January 3, 2027, you can update this field until - // 11:59 PM UTC-8 on January 2, 2027. - optional bool auto_renew = 1 [json_name = "autoRenew"]; +message CacheInvalidationRule { + // A list of cache tags used to identify cached objects. - Cache tags are + // specified when the response is first cached, by setting the `Cache-Tag` + // response header at the origin. - Multiple cache tags in the same + // invalidation request are treated as Boolean `OR` - for example, `tag1 OR + // tag2 OR tag3`. - If other fields are also specified, these are treated as + // Boolean `AND` with any tags. Up to 10 tags can be specified in a single + // invalidation request. + repeated string cache_tags = 3 [json_name = "cacheTags"]; - // The category of the commitment; specifies whether the commitment is for - // hardware or software resources. Category MACHINE specifies that you are - // committing to hardware machine resources such as VCPU or MEMORY, listed in - // resources. Category LICENSE specifies that you are committing to software - // licenses, listed in licenseResources. Note that if you specify MACHINE - // commitments, then you must also specify a type to indicate the machine - // series of the hardware resource that you are committing to. - // CATEGORY_UNSPECIFIED: - // LICENSE: - // MACHINE: - optional string category = 2 [json_name = "category"]; + // If set, this invalidation rule will only apply to requests with a Host + // header matching host. + optional string host = 1 [json_name = "host"]; - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; - - // [Input Only] Optional, specifies the requested commitment end time in - // RFC3339 text format. Use this option when the desired commitment's end date - // is later than the start date + term duration. - optional string custom_end_timestamp = 22 [json_name = "customEndTimestamp"]; - - // An optional description of the commitment. You can provide this property - // when you create the resource. - optional string description = 4 [json_name = "description"]; - - // [Output Only] Commitment end time in RFC3339 text format. - optional string end_timestamp = 5 [json_name = "endTimestamp"]; - - repeated string existing_reservations = 21 - [json_name = "existingReservations"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 6 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#commitment for - // commitments. - optional string kind = 7 [json_name = "kind"]; - - // The license specification required as part of a license commitment. - optional LicenseResourceCommitment license_resource = 8 - [json_name = "licenseResource"]; - - // The list of source commitments that you are merging to create the new - // merged commitment. For more information, see Merging commitments. - repeated string merge_source_commitments = 9 - [json_name = "mergeSourceCommitments"]; - - // Name of the commitment. You must specify a name when you purchase the - // commitment. The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 10 [json_name = "name"]; - - // The minimum time duration that you commit to purchasing resources. The plan - // that you choose determines the preset term length of the commitment (which - // is 1 year or 3 years) and affects the discount rate that you receive for - // your resources. Committing to a longer time duration typically gives you a - // higher discount rate. The supported values for this field are TWELVE_MONTH - // (1 year), and THIRTY_SIX_MONTH (3 years). - // INVALID: - // THIRTY_SIX_MONTH: - // TWELVE_MONTH: - optional string plan = 11 [json_name = "plan"]; - - // [Output Only] URL of the region where the commitment and committed - // resources are located. - optional string region = 12 [json_name = "region"]; - - // The list of new reservations that you want to create and attach to this - // commitment. You must attach reservations to your commitment if your - // commitment specifies any GPUs or Local SSD disks. For more information, see - // Attach reservations to resource-based commitments. Specify this property - // only if you want to create new reservations to attach. To attach existing - // reservations, specify the existingReservations property instead. - repeated Reservation reservations = 13 [json_name = "reservations"]; - - // [Output Only] Status information for Commitment resource. - optional CommitmentResourceStatus resource_status = 23 - [json_name = "resourceStatus"]; - - // The list of all the hardware resources, with their types and amounts, that - // you want to commit to. Specify as a separate entry in the list for each - // individual resource type. - repeated ResourceCommitment resources = 14 [json_name = "resources"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 15 [json_name = "selfLink"]; - - // The source commitment from which you are transferring resources to create - // the new split commitment. For more information, see Split commitments. - optional string split_source_commitment = 16 - [json_name = "splitSourceCommitment"]; - - // [Output Only] Commitment start time in RFC3339 text format. - optional string start_timestamp = 17 [json_name = "startTimestamp"]; - - // [Output Only] Status of the commitment with regards to eventual expiration - // (each commitment has an end date defined). Status can be one of the - // following values: NOT_YET_ACTIVE, ACTIVE, or EXPIRED. - // ACTIVE: - // CANCELLED: Deprecate CANCELED status. Will use separate status to - // differentiate cancel by mergeCud or manual cancellation. - // CREATING: - // EXPIRED: - // NOT_YET_ACTIVE: - optional string status = 18 [json_name = "status"]; - - // [Output Only] An optional, human-readable explanation of the status. - optional string status_message = 19 [json_name = "statusMessage"]; - - // The type of commitment; specifies the machine series for which you want to - // commit to purchasing resources. The choice of machine series affects the - // discount rate and the eligible resource types. The type must be one of the - // following: ACCELERATOR_OPTIMIZED, ACCELERATOR_OPTIMIZED_A3, - // ACCELERATOR_OPTIMIZED_A3_MEGA, COMPUTE_OPTIMIZED, COMPUTE_OPTIMIZED_C2D, - // COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D, COMPUTE_OPTIMIZED_H3, - // GENERAL_PURPOSE, GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2, - // GENERAL_PURPOSE_N2, GENERAL_PURPOSE_N2D, GENERAL_PURPOSE_N4, - // GENERAL_PURPOSE_T2D, GRAPHICS_OPTIMIZED, MEMORY_OPTIMIZED, - // MEMORY_OPTIMIZED_M3, MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For - // example, type MEMORY_OPTIMIZED specifies a commitment that applies only to - // eligible resources of memory optimized M1 and M2 machine series. Type - // GENERAL_PURPOSE specifies a commitment that applies only to eligible - // resources of general purpose N1 machine series. - // ACCELERATOR_OPTIMIZED: - // ACCELERATOR_OPTIMIZED_A3: - // ACCELERATOR_OPTIMIZED_A3_MEGA: - // ACCELERATOR_OPTIMIZED_A3_ULTRA: - // ACCELERATOR_OPTIMIZED_A4: - // COMPUTE_OPTIMIZED: - // COMPUTE_OPTIMIZED_C2D: - // COMPUTE_OPTIMIZED_C3: - // COMPUTE_OPTIMIZED_C3D: - // COMPUTE_OPTIMIZED_H3: - // COMPUTE_OPTIMIZED_H4D: - // GENERAL_PURPOSE: - // GENERAL_PURPOSE_C4: - // GENERAL_PURPOSE_C4A: - // GENERAL_PURPOSE_C4D: - // GENERAL_PURPOSE_E2: - // GENERAL_PURPOSE_N2: - // GENERAL_PURPOSE_N2D: - // GENERAL_PURPOSE_N4: - // GENERAL_PURPOSE_T2D: - // GRAPHICS_OPTIMIZED: - // MEMORY_OPTIMIZED: - // MEMORY_OPTIMIZED_M3: - // MEMORY_OPTIMIZED_M4: - // MEMORY_OPTIMIZED_M4_6TB: - // MEMORY_OPTIMIZED_X4_16TB: - // MEMORY_OPTIMIZED_X4_24TB: - // MEMORY_OPTIMIZED_X4_32TB: - // STORAGE_OPTIMIZED_Z3: - // TYPE_UNSPECIFIED: Note for internal users: When adding a new enum Type for - // v1, make sure to also add it in the comment for the `optional Type type` - // definition. This ensures that the public documentation displays the new - // enum Type. - optional string type = 20 [json_name = "type"]; + optional string path = 2 [json_name = "path"]; } -message CommitmentAggregatedList { +message UrlMapsAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of CommitmentsScopedList resources. - map items = 2 [json_name = "items"]; + // A list of UrlMapsScopedList resources. + map items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#commitmentAggregatedList for - // aggregated lists of commitments. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -312,127 +150,9 @@ message CommitmentAggregatedList { optional Warning warning = 7 [json_name = "warning"]; } -// Contains a list of Commitment resources. -message CommitmentList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of Commitment resources. - repeated Commitment items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#commitmentList for lists of - // commitments. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -// [Output Only] Contains output only fields. -message CommitmentResourceStatus { - // [Output Only] Indicates the end time of customer's eligibility to send - // custom term requests in RFC3339 text format. Term extension requests that - // (not the end time in the request) after this time will be rejected. - optional string custom_term_eligibility_end_timestamp = 1 - [json_name = "customTermEligibilityEndTimestamp"]; -} - -message CommitmentsScopedList { - // [Output Only] The list of commitments contained in this scope. - repeated Commitment commitments = 1 [json_name = "commitments"]; +message UrlMapsScopedList { + // A list of UrlMaps contained in this scope. + repeated UrlMap url_maps = 1 [json_name = "urlMaps"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -517,46 +237,27 @@ message CommitmentsScopedList { optional string message = 3 [json_name = "message"]; } - // [Output Only] Informational warning which replaces the list of commitments - // when the list is empty. + // Informational warning which replaces the list of backend services when the + // list is empty. optional Warning warning = 2 [json_name = "warning"]; } -// Commitment for a particular license resource. -message LicenseResourceCommitment { - // The number of licenses you plan to purchase. - optional string amount = 1 [json_name = "amount"]; - - // The number of cores per license. - optional string cores_per_license = 2 [json_name = "coresPerLicense"]; - - // The applicable license URI. - optional string license = 3 [json_name = "license"]; -} - -// Commitment for a particular hardware resource (a commitment is composed of -// one or more of these). -message ResourceCommitment { - // Name of the accelerator type or GPU resource. Specify this field only when - // the type of hardware resource is ACCELERATOR. - optional string accelerator_type = 1 [json_name = "acceleratorType"]; - - // The quantity of the hardware resource that you want to commit to purchasing - // (in a type-dependent unit). - For vCPUs, you must specify an integer value. - // - For memory, you specify the amount of MB that you want. The value you - // specify must be a multiple of 256 MB, with up to 6.5 GB of memory per every - // vCPU. - For GPUs, you must specify an integer value. - For Local SSD disks, - // you must specify the amount in GB. The size of a single Local SSD disk is - // 375 GB. - optional string amount = 2 [json_name = "amount"]; - - // The type of hardware resource that you want to specify. You can specify any - // of the following values: - VCPU - MEMORY - LOCAL_SSD - ACCELERATOR Specify - // as a separate entry in the list for each individual resource type. - // ACCELERATOR: - // LOCAL_SSD: - // MEMORY: - // UNSPECIFIED: - // VCPU: - optional string type = 3 [json_name = "type"]; +message UrlMapsValidateRequest { + // Specifies the load balancer type(s) this validation request is for. Use + // EXTERNAL_MANAGED for global external Application Load Balancers and + // regional external Application Load Balancers. Use EXTERNAL for classic + // Application Load Balancers. Use INTERNAL_MANAGED for internal Application + // Load Balancers. For more information, refer to Choosing a load balancer. If + // unspecified, the load balancing scheme will be inferred from the backend + // service resources this URL map references. If that can not be inferred (for + // example, this URL map only references backend buckets, or this Url map is + // for rewrites and redirects only and doesn't reference any backends), + // EXTERNAL will be used as the default type. If specified, the scheme(s) must + // not conflict with the load balancing scheme of the backend service + // resources this Url map references. + repeated string load_balancing_schemes = 1 + [json_name = "loadBalancingSchemes"]; + + // Content of the UrlMap to be validated. + optional UrlMap resource = 2 [json_name = "resource"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_019.proto b/protos/google/cloud/compute/v1/internal/common_019.proto index ced58abaaf2e7..26c6e5b795276 100644 --- a/protos/google/cloud/compute/v1/internal/common_019.proto +++ b/protos/google/cloud/compute/v1/internal/common_019.proto @@ -15,965 +15,313 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_029.proto"; -import "google/cloud/compute/v1/internal/common_082.proto"; - -// The specification for allowing client-side cross-origin requests. For more -// information about the W3C recommendation for cross-origin resource sharing -// (CORS), see Fetch API Living Standard. -message CorsPolicy { - // In response to a preflight request, setting this to true indicates that the - // actual request can include user credentials. This field translates to the - // Access-Control-Allow-Credentials header. Default is false. - optional bool allow_credentials = 1 [json_name = "allowCredentials"]; - - // Specifies the content for the Access-Control-Allow-Headers header. - repeated string allow_headers = 2 [json_name = "allowHeaders"]; - - // Specifies the content for the Access-Control-Allow-Methods header. - repeated string allow_methods = 3 [json_name = "allowMethods"]; - - // Specifies a regular expression that matches allowed origins. For more - // information, see regular expression syntax . An origin is allowed if it - // matches either an item in allowOrigins or an item in allowOriginRegexes. - // Regular expressions can only be used when the loadBalancingScheme is set to - // INTERNAL_SELF_MANAGED. - repeated string allow_origin_regexes = 4 [json_name = "allowOriginRegexes"]; - - // Specifies the list of origins that is allowed to do CORS requests. An - // origin is allowed if it matches either an item in allowOrigins or an item - // in allowOriginRegexes. - repeated string allow_origins = 5 [json_name = "allowOrigins"]; - - // If true, disables the CORS policy. The default value is false, which - // indicates that the CORS policy is in effect. - optional bool disabled = 6 [json_name = "disabled"]; - - // Specifies the content for the Access-Control-Expose-Headers header. - repeated string expose_headers = 7 [json_name = "exposeHeaders"]; - - // Specifies how long results of a preflight request can be cached in seconds. - // This field translates to the Access-Control-Max-Age header. - optional int32 max_age = 8 [json_name = "maxAge"]; -} - -// Specifies the custom error response policy that must be applied when the -// backend service or backend bucket responds with an error. -message CustomErrorResponsePolicy { - // Specifies rules for returning error responses. In a given policy, if you - // specify rules for both a range of error codes as well as rules for specific - // error codes then rules with specific error codes have a higher priority. - // For example, assume that you configure a rule for 401 (Un-authorized) code, - // and another for all 4 series error codes (4XX). If the backend service - // returns a 401, then the rule for 401 will be applied. However if the - // backend service returns a 403, the rule for 4xx takes effect. - repeated CustomErrorResponsePolicyCustomErrorResponseRule - error_response_rules = 1 [json_name = "errorResponseRules"]; - - // The full or partial URL to the BackendBucket resource that contains the - // custom error content. Examples are: - - // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - // - compute/v1/projects/project/global/backendBuckets/myBackendBucket - - // global/backendBuckets/myBackendBucket If errorService is not specified at - // lower levels like pathMatcher, pathRule and routeRule, an errorService - // specified at a higher level in the UrlMap will be used. If - // UrlMap.defaultCustomErrorResponsePolicy contains one or more - // errorResponseRules[], it must specify errorService. If load balancer cannot - // reach the backendBucket, a simple Not Found Error will be returned, with - // the original response code (or overrideResponseCode if configured). - // errorService is not supported for internal or regional HTTP/HTTPS load - // balancers. - optional string error_service = 2 [json_name = "errorService"]; -} - -// Specifies the mapping between the response code that will be returned along -// with the custom error content and the response code returned by the backend -// service. -message CustomErrorResponsePolicyCustomErrorResponseRule { - // Valid values include: - A number between 400 and 599: For example 401 or - // 503, in which case the load balancer applies the policy if the error code - // exactly matches this value. - 5xx: Load Balancer will apply the policy if - // the backend service responds with any response code in the range of 500 to - // 599. - 4xx: Load Balancer will apply the policy if the backend service - // responds with any response code in the range of 400 to 499. Values must be - // unique within matchResponseCodes and across all errorResponseRules of - // CustomErrorResponsePolicy. - repeated string match_response_codes = 1 [json_name = "matchResponseCodes"]; - - // The HTTP status code returned with the response containing the custom error - // content. If overrideResponseCode is not supplied, the same response code - // returned by the original backend bucket or backend service is returned to - // the client. - optional int32 override_response_code = 2 - [json_name = "overrideResponseCode"]; - - // The full path to a file within backendBucket . For example: - // /errors/defaultError.html path must start with a leading slash. path cannot - // have trailing slashes. If the file is not available in backendBucket or the - // load balancer cannot reach the BackendBucket, a simple Not Found Error is - // returned to the client. The value must be from 1 to 1024 characters - optional string path = 3 [json_name = "path"]; -} - -// UrlMaps A host-matching rule for a URL. If matched, will use the named -// PathMatcher to select the BackendService. -message HostRule { - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 1 [json_name = "description"]; - - // The list of host patterns to match. They must be valid hostnames with - // optional port numbers in the format host:port. * matches any string of - // ([a-z0-9-.]*). In that case, * must be the first character, and if followed - // by anything, the immediate following character must be either - or .. * - // based matching is not supported when the URL map is bound to a target gRPC - // proxy that has the validateForProxyless field set to true. - repeated string hosts = 2 [json_name = "hosts"]; - - // The name of the PathMatcher to use to match the path portion of the URL if - // the hostRule matches the URL's host portion. - optional string path_matcher = 3 [json_name = "pathMatcher"]; -} - -// Specification for how requests are aborted as part of fault injection. -message HttpFaultAbort { - // The HTTP status code used to abort the request. The value must be from 200 - // to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP - // status code according to this mapping table. HTTP status 200 is mapped to - // gRPC status UNKNOWN. Injecting an OK status is currently not supported by - // Traffic Director. - optional uint32 http_status = 1 [json_name = "httpStatus"]; - - // The percentage of traffic for connections, operations, or requests that is - // aborted as part of fault injection. The value must be from 0.0 to 100.0 - // inclusive. - optional double percentage = 2 [json_name = "percentage"]; -} - -// Specifies the delay introduced by the load balancer before forwarding the -// request to the backend service as part of fault injection. -message HttpFaultDelay { - // Specifies the value of the fixed delay interval. - optional Duration fixed_delay = 1 [json_name = "fixedDelay"]; - - // The percentage of traffic for connections, operations, or requests for - // which a delay is introduced as part of fault injection. The value must be - // from 0.0 to 100.0 inclusive. - optional double percentage = 2 [json_name = "percentage"]; -} - -// The specification for fault injection introduced into traffic to test the -// resiliency of clients to backend service failure. As part of fault injection, -// when clients send requests to a backend service, delays can be introduced by -// the load balancer on a percentage of requests before sending those request to -// the backend service. Similarly requests from clients can be aborted by the -// load balancer for a percentage of requests. -message HttpFaultInjection { - // The specification for how client requests are aborted as part of fault - // injection. - optional HttpFaultAbort abort = 1 [json_name = "abort"]; - - // The specification for how client requests are delayed as part of fault - // injection, before being sent to a backend service. - optional HttpFaultDelay delay = 2 [json_name = "delay"]; -} - -// The request and response header transformations that take effect before the -// request is passed along to the selected backendService. -message HttpHeaderAction { - // Headers to add to a matching request before forwarding the request to the - // backendService. - repeated HttpHeaderOption request_headers_to_add = 1 - [json_name = "requestHeadersToAdd"]; - - // A list of header names for headers that need to be removed from the request - // before forwarding the request to the backendService. - repeated string request_headers_to_remove = 2 - [json_name = "requestHeadersToRemove"]; - - // Headers to add the response before sending the response back to the client. - repeated HttpHeaderOption response_headers_to_add = 3 - [json_name = "responseHeadersToAdd"]; - - // A list of header names for headers that need to be removed from the - // response before sending the response back to the client. - repeated string response_headers_to_remove = 4 - [json_name = "responseHeadersToRemove"]; -} - -// matchRule criteria for request header matches. -message HttpHeaderMatch { - // The value should exactly match contents of exactMatch. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - optional string exact_match = 1 [json_name = "exactMatch"]; - - // The name of the HTTP header to match. For matching against the HTTP - // request's authority, use a headerMatch with the header name ":authority". - // For matching a request's method, use the headerName ":method". When the URL - // map is bound to a target gRPC proxy that has the validateForProxyless field - // set to true, only non-binary user-specified custom metadata and the - // `content-type` header are supported. The following transport-level headers - // cannot be used in header matching rules: `:authority`, `:method`, `:path`, - // `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, - // `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, - // `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. - optional string header_name = 2 [json_name = "headerName"]; - - // If set to false, the headerMatch is considered a match if the preceding - // match criteria are met. If set to true, the headerMatch is considered a - // match if the preceding match criteria are NOT met. The default setting is - // false. - optional bool invert_match = 3 [json_name = "invertMatch"]; - - // The value of the header must start with the contents of prefixMatch. Only - // one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - optional string prefix_match = 4 [json_name = "prefixMatch"]; - - // A header with the contents of headerName must exist. The match takes place - // whether or not the request's header has a value. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be - // set. - optional bool present_match = 5 [json_name = "presentMatch"]; - - // The header value must be an integer and its value must be in the range - // specified in rangeMatch. If the header does not contain an integer, number - // or is empty, the match fails. For example for a range [-5, 0] - -3 will - // match. - 0 will not match. - 0.25 will not match. - -3someString will not - // match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - // presentMatch or rangeMatch must be set. rangeMatch is not supported for - // load balancers that have loadBalancingScheme set to EXTERNAL. - optional Int64RangeMatch range_match = 6 [json_name = "rangeMatch"]; - - // The value of the header must match the regular expression specified in - // regexMatch. For more information about regular expression syntax, see - // Syntax. For matching against a port specified in the HTTP request, use a - // headerMatch with headerName set to PORT and a regular expression that - // satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be - // set. Regular expressions can only be used when the loadBalancingScheme is - // set to INTERNAL_SELF_MANAGED. - optional string regex_match = 7 [json_name = "regexMatch"]; - - // The value of the header must end with the contents of suffixMatch. Only one - // of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - optional string suffix_match = 8 [json_name = "suffixMatch"]; -} - -// Specification determining how headers are added to requests or responses. -message HttpHeaderOption { - // The name of the header. - optional string header_name = 1 [json_name = "headerName"]; - - // The value of the header to add. - optional string header_value = 2 [json_name = "headerValue"]; - - // If false, headerValue is appended to any values that already exist for the - // header. If true, headerValue is set for the header, discarding any values - // that were set for that header. The default value is false. - optional bool replace = 3 [json_name = "replace"]; -} - -// HttpRouteRuleMatch criteria for a request's query parameter. -message HttpQueryParameterMatch { - // The queryParameterMatch matches if the value of the parameter exactly - // matches the contents of exactMatch. Only one of presentMatch, exactMatch, - // or regexMatch must be set. - optional string exact_match = 1 [json_name = "exactMatch"]; - - // The name of the query parameter to match. The query parameter must exist in - // the request, in the absence of which the request match fails. - optional string name = 2 [json_name = "name"]; - - // Specifies that the queryParameterMatch matches if the request contains the - // query parameter, irrespective of whether the parameter has a value or not. - // Only one of presentMatch, exactMatch, or regexMatch must be set. - optional bool present_match = 3 [json_name = "presentMatch"]; - - // The queryParameterMatch matches if the value of the parameter matches the - // regular expression specified by regexMatch. For more information about - // regular expression syntax, see Syntax. Only one of presentMatch, - // exactMatch, or regexMatch must be set. Regular expressions can only be used - // when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. - optional string regex_match = 4 [json_name = "regexMatch"]; -} - -// Specifies settings for an HTTP redirect. -message HttpRedirectAction { - // The host that is used in the redirect response instead of the one that was - // supplied in the request. The value must be from 1 to 255 characters. - optional string host_redirect = 1 [json_name = "hostRedirect"]; - - // If set to true, the URL scheme in the redirected request is set to HTTPS. - // If set to false, the URL scheme of the redirected request remains the same - // as that of the request. This must only be set for URL maps used in - // TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. - // The default is set to false. - optional bool https_redirect = 2 [json_name = "httpsRedirect"]; - - // The path that is used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the - // path of the original request is used for the redirect. The value must be - // from 1 to 1024 characters. - optional string path_redirect = 3 [json_name = "pathRedirect"]; - - // The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the path - // of the original request is used for the redirect. The value must be from 1 - // to 1024 characters. - optional string prefix_redirect = 4 [json_name = "prefixRedirect"]; - - // The HTTP Status code to use for this RedirectAction. Supported values are: - // - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to - // 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to - // 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the - // request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. - // In this case, the request method is retained. - // FOUND: Http Status Code 302 - Found. - // MOVED_PERMANENTLY_DEFAULT: Http Status Code 301 - Moved Permanently. - // PERMANENT_REDIRECT: Http Status Code 308 - Permanent Redirect maintaining - // HTTP method. - // SEE_OTHER: Http Status Code 303 - See Other. - // TEMPORARY_REDIRECT: Http Status Code 307 - Temporary Redirect maintaining - // HTTP method. - optional string redirect_response_code = 5 - [json_name = "redirectResponseCode"]; - - // If set to true, any accompanying query portion of the original URL is - // removed before redirecting the request. If set to false, the query portion - // of the original URL is retained. The default is set to false. - optional bool strip_query = 6 [json_name = "stripQuery"]; -} - -// The retry policy associates with HttpRouteRule -message HttpRetryPolicy { - // Specifies the allowed number retries. This number must be > 0. If not - // specified, defaults to 1. - optional uint32 num_retries = 1 [json_name = "numRetries"]; - - // Specifies a non-zero timeout per retry attempt. If not specified, will use - // the timeout set in the HttpRouteAction field. If timeout in the - // HttpRouteAction field is not set, this field uses the largest timeout among - // all backend services associated with the route. Not supported when the URL - // map is bound to a target gRPC proxy that has the validateForProxyless field - // set to true. - optional Duration per_try_timeout = 2 [json_name = "perTryTimeout"]; - - // Specifies one or more conditions when this retry policy applies. Valid - // values are: - 5xx: retry is attempted if the instance or endpoint responds - // with any 5xx response code, or if the instance or endpoint does not respond - // at all. For example, disconnects, reset, read timeout, connection failure, - // and refused streams. - gateway-error: Similar to 5xx, but only applies to - // response codes 502, 503 or 504. - connect-failure: a retry is attempted on - // failures connecting to the instance or endpoint. For example, connection - // timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint - // responds with a 4xx response code. The only error that you can retry is - // error code 409. - refused-stream: a retry is attempted if the instance or - // endpoint resets the stream with a REFUSED_STREAM error code. This reset - // type indicates that it is safe to retry. - cancelled: a retry is attempted - // if the gRPC status code in the response header is set to cancelled. - - // deadline-exceeded: a retry is attempted if the gRPC status code in the - // response header is set to deadline-exceeded. - internal: a retry is - // attempted if the gRPC status code in the response header is set to - // internal. - resource-exhausted: a retry is attempted if the gRPC status - // code in the response header is set to resource-exhausted. - unavailable: a - // retry is attempted if the gRPC status code in the response header is set to - // unavailable. Only the following codes are supported when the URL map is - // bound to target gRPC proxy that has validateForProxyless field set to true. - // - cancelled - deadline-exceeded - internal - resource-exhausted - - // unavailable - repeated string retry_conditions = 3 [json_name = "retryConditions"]; -} - -message HttpRouteAction { - // The specification for allowing client-side cross-origin requests. For more - // information about the W3C recommendation for cross-origin resource sharing - // (CORS), see Fetch API Living Standard. Not supported when the URL map is - // bound to a target gRPC proxy. - optional CorsPolicy cors_policy = 1 [json_name = "corsPolicy"]; - - // The specification for fault injection introduced into traffic to test the - // resiliency of clients to backend service failure. As part of fault - // injection, when clients send requests to a backend service, delays can be - // introduced by a load balancer on a percentage of requests before sending - // those requests to the backend service. Similarly requests from clients can - // be aborted by the load balancer for a percentage of requests. timeout and - // retry_policy is ignored by clients that are configured with a - // fault_injection_policy if: 1. The traffic is generated by fault injection - // AND 2. The fault injection is not a delay fault injection. Fault injection - // is not supported with the classic Application Load Balancer . To see which - // load balancers support fault injection, see Load balancing: Routing and - // traffic management features. - optional HttpFaultInjection fault_injection_policy = 2 - [json_name = "faultInjectionPolicy"]; - - // Specifies the maximum duration (timeout) for streams on the selected route. - // Unlike the timeout field where the timeout duration starts from the time - // the request has been fully processed (known as *end-of-stream*), the - // duration in this field is computed from the beginning of the stream until - // the response has been processed, including all retries. A stream that does - // not complete in this duration is closed. If not specified, this field uses - // the maximum maxStreamDuration value among all backend services associated - // with the route. This field is only allowed if the Url map is used with - // backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. - optional Duration max_stream_duration = 3 [json_name = "maxStreamDuration"]; - - // Specifies the policy on how requests intended for the route's backends are - // shadowed to a separate mirrored backend service. The load balancer does not - // wait for responses from the shadow service. Before sending traffic to the - // shadow service, the host / authority header is suffixed with -shadow. Not - // supported when the URL map is bound to a target gRPC proxy that has the - // validateForProxyless field set to true. - optional RequestMirrorPolicy request_mirror_policy = 4 - [json_name = "requestMirrorPolicy"]; - - // Specifies the retry policy associated with this route. - optional HttpRetryPolicy retry_policy = 5 [json_name = "retryPolicy"]; - - // Specifies the timeout for the selected route. Timeout is computed from the - // time the request has been fully processed (known as *end-of-stream*) up - // until the response has been processed. Timeout includes all retries. If not - // specified, this field uses the largest timeout among all backend services - // associated with the route. Not supported when the URL map is bound to a - // target gRPC proxy that has validateForProxyless field set to true. - optional Duration timeout = 6 [json_name = "timeout"]; - - // The spec to modify the URL of the request, before forwarding the request to - // the matched service. urlRewrite is the only action supported in UrlMaps for - // classic Application Load Balancers. Not supported when the URL map is bound - // to a target gRPC proxy that has the validateForProxyless field set to true. - optional UrlRewrite url_rewrite = 7 [json_name = "urlRewrite"]; - - // A list of weighted backend services to send traffic to when a route match - // occurs. The weights determine the fraction of traffic that flows to their - // corresponding backend service. If all traffic needs to go to a single - // backend service, there must be one weightedBackendService with weight set - // to a non-zero number. After a backend service is identified and before - // forwarding the request to the backend service, advanced routing actions - // such as URL rewrites and header transformations are applied depending on - // additional settings specified in this HttpRouteAction. - repeated WeightedBackendService weighted_backend_services = 8 - [json_name = "weightedBackendServices"]; -} - -// The HttpRouteRule setting specifies how to match an HTTP request and the -// corresponding routing action that load balancing proxies perform. -message HttpRouteRule { - // customErrorResponsePolicy specifies how the Load Balancer returns error - // responses when BackendServiceor BackendBucket responds with an error. If a - // policy for an error code is not configured for the RouteRule, a policy for - // the error code configured in pathMatcher.defaultCustomErrorResponsePolicy - // is applied. If one is not specified in - // pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in - // UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider - // a UrlMap with the following configuration: - - // UrlMap.defaultCustomErrorResponsePolicy are configured with policies for - // 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the - // error code 404. If the request is for www.myotherdomain.com and a 404 is - // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes - // effect. If a 404 response is encountered for the request - // www.example.com/current_events/, the pathMatcher's policy takes effect. If - // however, the request for www.example.com/coming_soon/ encounters a 404, the - // policy in RouteRule.customErrorResponsePolicy takes effect. If any of the - // requests in this example encounter a 500 error code, the policy at - // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in - // conjunction with routeRules.routeAction.retryPolicy, retries take - // precedence. Only once all retries are exhausted, the - // customErrorResponsePolicy is applied. While attempting a retry, if load - // balancer is successful in reaching the service, the - // customErrorResponsePolicy is ignored and the response from the service is - // returned to the client. customErrorResponsePolicy is supported only for - // global external Application Load Balancers. - optional CustomErrorResponsePolicy custom_error_response_policy = 8 - [json_name = "customErrorResponsePolicy"]; - - // The short description conveying the intent of this routeRule. The - // description can have a maximum length of 1024 characters. - optional string description = 1 [json_name = "description"]; - - // Specifies changes to request and response headers that need to take effect - // for the selected backendService. The headerAction value specified here is - // applied before the matching pathMatchers[].headerAction and after - // pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction - // HeaderAction is not supported for load balancers that have their - // loadBalancingScheme set to EXTERNAL. Not supported when the URL map is - // bound to a target gRPC proxy that has validateForProxyless field set to - // true. - optional HttpHeaderAction header_action = 2 [json_name = "headerAction"]; - - // The list of criteria for matching attributes of a request to this - // routeRule. This list has OR semantics: the request matches this routeRule - // when any of the matchRules are satisfied. However predicates within a given - // matchRule have AND semantics. All predicates within a matchRule must match - // for the request to match the rule. - repeated HttpRouteRuleMatch match_rules = 3 [json_name = "matchRules"]; - - // For routeRules within a given pathMatcher, priority determines the order in - // which a load balancer interprets routeRules. RouteRules are evaluated in - // order of priority, from the lowest to highest number. The priority of a - // rule decreases as its number increases (1, 2, 3, N+1). The first rule that - // matches the request is applied. You cannot configure two or more routeRules - // with the same priority. Priority for each rule must be set to a number from - // 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you - // to add or remove rules in the future without affecting the rest of the - // rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority - // numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 - // to 15 in the future without any impact on existing rules. - optional int32 priority = 4 [json_name = "priority"]; - - // In response to a matching matchRule, the load balancer performs advanced - // routing actions, such as URL rewrites and header transformations, before - // forwarding the request to the selected backend. Only one of urlRedirect, - // service or routeAction.weightedBackendService can be set. URL maps for - // classic Application Load Balancers only support the urlRewrite action - // within a route rule's routeAction. - optional HttpRouteAction route_action = 5 [json_name = "routeAction"]; - - // The full or partial URL of the backend service resource to which traffic is - // directed if this rule is matched. If routeAction is also specified, - // advanced routing actions, such as URL rewrites, take effect before sending - // the request to the backend. Only one of urlRedirect, service or - // routeAction.weightedBackendService can be set. - optional string service = 6 [json_name = "service"]; - - // When this rule is matched, the request is redirected to a URL specified by - // urlRedirect. Only one of urlRedirect, service or - // routeAction.weightedBackendService can be set. Not supported when the URL - // map is bound to a target gRPC proxy. - optional HttpRedirectAction url_redirect = 7 [json_name = "urlRedirect"]; -} - -// HttpRouteRuleMatch specifies a set of criteria for matching requests to an -// HttpRouteRule. All specified criteria must be satisfied for a match to occur. -message HttpRouteRuleMatch { - // For satisfying the matchRule condition, the path of the request must - // exactly match the value specified in fullPathMatch after removing any query - // parameters and anchor that may be part of the original URL. fullPathMatch - // must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch - // or regexMatch must be specified. - optional string full_path_match = 1 [json_name = "fullPathMatch"]; - - // Specifies a list of header match criteria, all of which must match - // corresponding headers in the request. - repeated HttpHeaderMatch header_matches = 2 [json_name = "headerMatches"]; - - // Specifies that prefixMatch and fullPathMatch matches are case sensitive. - // The default value is false. ignoreCase must not be used with regexMatch. - // Not supported when the URL map is bound to a target gRPC proxy. - optional bool ignore_case = 3 [json_name = "ignoreCase"]; - - // Opaque filter criteria used by the load balancer to restrict routing - // configuration to a limited set of xDS compliant clients. In their xDS - // requests to the load balancer, xDS clients present node metadata. When - // there is a match, the relevant routing configuration is made available to - // those proxies. For each metadataFilter in this list, if its - // filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels - // must match the corresponding label provided in the metadata. If its - // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must - // match with corresponding labels provided in the metadata. If multiple - // metadata filters are specified, all of them need to be satisfied in order - // to be considered a match. metadataFilters specified here is applied after - // those specified in ForwardingRule that refers to the UrlMap this - // HttpRouteRuleMatch belongs to. metadataFilters only applies to load - // balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not - // supported when the URL map is bound to a target gRPC proxy that has - // validateForProxyless field set to true. - repeated MetadataFilter metadata_filters = 4 [json_name = "metadataFilters"]; - - // If specified, the route is a pattern match expression that must match the - // :path header once the query string is removed. A pattern match allows you - // to match - The value must be between 1 and 1024 characters - The pattern - // must start with a leading slash ("/") - There may be no more than 5 - // operators in pattern Precisely one of prefix_match, full_path_match, - // regex_match or path_template_match must be set. - optional string path_template_match = 8 [json_name = "pathTemplateMatch"]; - - // For satisfying the matchRule condition, the request's path must begin with - // the specified prefixMatch. prefixMatch must begin with a /. The value must - // be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or - // regexMatch must be specified. - optional string prefix_match = 5 [json_name = "prefixMatch"]; - - // Specifies a list of query parameter match criteria, all of which must match - // corresponding query parameters in the request. Not supported when the URL - // map is bound to a target gRPC proxy. - repeated HttpQueryParameterMatch query_parameter_matches = 6 - [json_name = "queryParameterMatches"]; - - // For satisfying the matchRule condition, the path of the request must - // satisfy the regular expression specified in regexMatch after removing any - // query parameters and anchor supplied with the original URL. For more - // information about regular expression syntax, see Syntax. Only one of - // prefixMatch, fullPathMatch or regexMatch must be specified. Regular - // expressions can only be used when the loadBalancingScheme is set to - // INTERNAL_SELF_MANAGED. - optional string regex_match = 7 [json_name = "regexMatch"]; -} +import "google/cloud/compute/v1/internal/common_006.proto"; + +// Represents a regional resource-based commitment resource. Creating this +// commitment resource means that you are purchasing a resource-based committed +// use contract, with an explicit start and end time. You can purchase +// resource-based commitments for both hardware and software resources. For more +// information, read Resource-based committed use discounts +message Commitment { + // Specifies whether to automatically renew the commitment at the end of its + // current term. The default value is false. If you set the field to true, + // each time your commitment reaches the end of its term, Compute Engine + // automatically renews it for another term. You can update this field anytime + // before the commitment expires. For example, if the commitment is set to + // expire at 12 AM UTC-8 on January 3, 2027, you can update this field until + // 11:59 PM UTC-8 on January 2, 2027. + optional bool auto_renew = 1 [json_name = "autoRenew"]; + + // The category of the commitment; specifies whether the commitment is for + // hardware or software resources. Category MACHINE specifies that you are + // committing to hardware machine resources such as VCPU or MEMORY, listed in + // resources. Category LICENSE specifies that you are committing to software + // licenses, listed in licenseResources. Note that if you specify MACHINE + // commitments, then you must also specify a type to indicate the machine + // series of the hardware resource that you are committing to. + // CATEGORY_UNSPECIFIED: + // LICENSE: + // MACHINE: + optional string category = 2 [json_name = "category"]; -// HttpRouteRuleMatch criteria for field values that must stay within the -// specified integer range. -message Int64RangeMatch { - // The end of the range (exclusive) in signed long integer format. - optional string range_end = 1 [json_name = "rangeEnd"]; + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; - // The start of the range (inclusive) in signed long integer format. - optional string range_start = 2 [json_name = "rangeStart"]; -} + // [Input Only] Optional, specifies the requested commitment end time in + // RFC3339 text format. Use this option when the desired commitment's end date + // is later than the start date + term duration. + optional string custom_end_timestamp = 22 [json_name = "customEndTimestamp"]; -// A matcher for the path portion of the URL. The BackendService from the -// longest-matched rule will serve the URL. If no rule was matched, the default -// service is used. -message PathMatcher { - // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns - // error responses when BackendServiceor BackendBucket responds with an error. - // This policy takes effect at the PathMatcher level and applies only when no - // policy has been defined for the error code at lower levels like RouteRule - // and PathRule within this PathMatcher. If an error code does not have a - // policy defined in defaultCustomErrorResponsePolicy, then a policy defined - // for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. - // For example, consider a UrlMap with the following configuration: - - // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx - // and 4xx errors - A RouteRule for /coming_soon/ is configured for the error - // code 404. If the request is for www.myotherdomain.com and a 404 is - // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes - // effect. If a 404 response is encountered for the request - // www.example.com/current_events/, the pathMatcher's policy takes effect. If - // however, the request for www.example.com/coming_soon/ encounters a 404, the - // policy in RouteRule.customErrorResponsePolicy takes effect. If any of the - // requests in this example encounter a 500 error code, the policy at - // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in - // conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take - // precedence. Only once all retries are exhausted, the - // defaultCustomErrorResponsePolicy is applied. While attempting a retry, if - // load balancer is successful in reaching the service, the - // defaultCustomErrorResponsePolicy is ignored and the response from the - // service is returned to the client. defaultCustomErrorResponsePolicy is - // supported only for global external Application Load Balancers. - optional CustomErrorResponsePolicy default_custom_error_response_policy = 9 - [json_name = "defaultCustomErrorResponsePolicy"]; - - // defaultRouteAction takes effect when none of the pathRules or routeRules - // match. The load balancer performs advanced routing actions, such as URL - // rewrites and header transformations, before forwarding the request to the - // selected backend. Only one of defaultUrlRedirect, defaultService or - // defaultRouteAction.weightedBackendService can be set. URL maps for classic - // Application Load Balancers only support the urlRewrite action within a path - // matcher's defaultRouteAction. - optional HttpRouteAction default_route_action = 1 - [json_name = "defaultRouteAction"]; - - // The full or partial URL to the BackendService resource. This URL is used if - // none of the pathRules or routeRules defined by this PathMatcher are - // matched. For example, the following are all valid URLs to a BackendService - // resource: - https://www.googleapis.com/compute/v1/projects/project - // /global/backendServices/backendService - - // compute/v1/projects/project/global/backendServices/backendService - - // global/backendServices/backendService If defaultRouteAction is also - // specified, advanced routing actions, such as URL rewrites, take effect - // before sending the request to the backend. Only one of defaultUrlRedirect, - // defaultService or defaultRouteAction.weightedBackendService can be set. - // Authorization requires one or more of the following Google IAM permissions - // on the specified resource default_service: - compute.backendBuckets.use - - // compute.backendServices.use - optional string default_service = 2 [json_name = "defaultService"]; - - // When none of the specified pathRules or routeRules match, the request is - // redirected to a URL specified by defaultUrlRedirect. Only one of - // defaultUrlRedirect, defaultService or - // defaultRouteAction.weightedBackendService can be set. Not supported when - // the URL map is bound to a target gRPC proxy. - optional HttpRedirectAction default_url_redirect = 3 - [json_name = "defaultUrlRedirect"]; - - // An optional description of this resource. Provide this property when you - // create the resource. + // An optional description of the commitment. You can provide this property + // when you create the resource. optional string description = 4 [json_name = "description"]; - // Specifies changes to request and response headers that need to take effect - // for the selected backend service. HeaderAction specified here are applied - // after the matching HttpRouteRule HeaderAction and before the HeaderAction - // in the UrlMap HeaderAction is not supported for load balancers that have - // their loadBalancingScheme set to EXTERNAL. Not supported when the URL map - // is bound to a target gRPC proxy that has validateForProxyless field set to - // true. - optional HttpHeaderAction header_action = 5 [json_name = "headerAction"]; - - // The name to which this PathMatcher is referred by the HostRule. - optional string name = 6 [json_name = "name"]; - - // The list of path rules. Use this list instead of routeRules when routing - // based on simple path matching is all that's required. The order by which - // path rules are specified does not matter. Matches are always done on the - // longest-path-first basis. For example: a pathRule with a path /a/b/c/* will - // match before /a/b/* irrespective of the order in which those paths appear - // in this list. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. - repeated PathRule path_rules = 7 [json_name = "pathRules"]; - - // The list of HTTP route rules. Use this list instead of pathRules when - // advanced route matching and routing actions are desired. routeRules are - // evaluated in order of priority, from the lowest to highest number. Within a - // given pathMatcher, you can set only one of pathRules or routeRules. - repeated HttpRouteRule route_rules = 8 [json_name = "routeRules"]; -} + // [Output Only] Commitment end time in RFC3339 text format. + optional string end_timestamp = 5 [json_name = "endTimestamp"]; -// A path-matching rule for a URL. If matched, will use the specified -// BackendService to handle the traffic arriving at this URL. -message PathRule { - // customErrorResponsePolicy specifies how the Load Balancer returns error - // responses when BackendServiceor BackendBucket responds with an error. If a - // policy for an error code is not configured for the PathRule, a policy for - // the error code configured in pathMatcher.defaultCustomErrorResponsePolicy - // is applied. If one is not specified in - // pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in - // UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider - // a UrlMap with the following configuration: - - // UrlMap.defaultCustomErrorResponsePolicy are configured with policies for - // 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the - // error code 404. If the request is for www.myotherdomain.com and a 404 is - // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes - // effect. If a 404 response is encountered for the request - // www.example.com/current_events/, the pathMatcher's policy takes effect. If - // however, the request for www.example.com/coming_soon/ encounters a 404, the - // policy in PathRule.customErrorResponsePolicy takes effect. If any of the - // requests in this example encounter a 500 error code, the policy at - // UrlMap.defaultCustomErrorResponsePolicy takes effect. - // customErrorResponsePolicy is supported only for global external Application - // Load Balancers. - optional CustomErrorResponsePolicy custom_error_response_policy = 5 - [json_name = "customErrorResponsePolicy"]; - - // The list of path patterns to match. Each must start with / and the only - // place a * is allowed is at the end following a /. The string fed to the - // path matcher does not include any text after the first ? or #, and those - // chars are not allowed here. - repeated string paths = 1 [json_name = "paths"]; - - // In response to a matching path, the load balancer performs advanced routing - // actions, such as URL rewrites and header transformations, before forwarding - // the request to the selected backend. Only one of urlRedirect, service or - // routeAction.weightedBackendService can be set. URL maps for classic - // Application Load Balancers only support the urlRewrite action within a path - // rule's routeAction. - optional HttpRouteAction route_action = 2 [json_name = "routeAction"]; - - // The full or partial URL of the backend service resource to which traffic is - // directed if this rule is matched. If routeAction is also specified, - // advanced routing actions, such as URL rewrites, take effect before sending - // the request to the backend. Only one of urlRedirect, service or - // routeAction.weightedBackendService can be set. - optional string service = 3 [json_name = "service"]; - - // When a path pattern is matched, the request is redirected to a URL - // specified by urlRedirect. Only one of urlRedirect, service or - // routeAction.weightedBackendService can be set. Not supported when the URL - // map is bound to a target gRPC proxy. - optional HttpRedirectAction url_redirect = 4 [json_name = "urlRedirect"]; -} + repeated string existing_reservations = 21 + [json_name = "existingReservations"]; -// A policy that specifies how requests intended for the route's backends are -// shadowed to a separate mirrored backend service. The load balancer doesn't -// wait for responses from the shadow service. Before sending traffic to the -// shadow service, the host or authority header is suffixed with -shadow. -message RequestMirrorPolicy { - // The full or partial URL to the BackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference - // backends that are of the same type as the original backend service matched - // in the URL map. Serverless NEG backends are not currently supported as a - // mirrored backend service. - optional string backend_service = 1 [json_name = "backendService"]; -} + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 6 [json_name = "id"]; -message TestFailure { - // The actual output URL evaluated by a load balancer containing the scheme, - // host, path and query parameters. - optional string actual_output_url = 1 [json_name = "actualOutputUrl"]; + // [Output Only] Type of the resource. Always compute#commitment for + // commitments. + optional string kind = 7 [json_name = "kind"]; - // Actual HTTP status code for rule with `urlRedirect` calculated by load - // balancer - optional int32 actual_redirect_response_code = 2 - [json_name = "actualRedirectResponseCode"]; + // The license specification required as part of a license commitment. + optional LicenseResourceCommitment license_resource = 8 + [json_name = "licenseResource"]; - // BackendService or BackendBucket returned by load balancer. - optional string actual_service = 3 [json_name = "actualService"]; + // The list of source commitments that you are merging to create the new + // merged commitment. For more information, see Merging commitments. + repeated string merge_source_commitments = 9 + [json_name = "mergeSourceCommitments"]; - // The expected output URL evaluated by a load balancer containing the scheme, - // host, path and query parameters. - optional string expected_output_url = 4 [json_name = "expectedOutputUrl"]; + // Name of the commitment. You must specify a name when you purchase the + // commitment. The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 10 [json_name = "name"]; + + // The minimum time duration that you commit to purchasing resources. The plan + // that you choose determines the preset term length of the commitment (which + // is 1 year or 3 years) and affects the discount rate that you receive for + // your resources. Committing to a longer time duration typically gives you a + // higher discount rate. The supported values for this field are TWELVE_MONTH + // (1 year), and THIRTY_SIX_MONTH (3 years). + // INVALID: + // THIRTY_SIX_MONTH: + // TWELVE_MONTH: + optional string plan = 11 [json_name = "plan"]; + + // [Output Only] URL of the region where the commitment and committed + // resources are located. + optional string region = 12 [json_name = "region"]; + + // The list of new reservations that you want to create and attach to this + // commitment. You must attach reservations to your commitment if your + // commitment specifies any GPUs or Local SSD disks. For more information, see + // Attach reservations to resource-based commitments. Specify this property + // only if you want to create new reservations to attach. To attach existing + // reservations, specify the existingReservations property instead. + repeated Reservation reservations = 13 [json_name = "reservations"]; + + // [Output Only] Status information for Commitment resource. + optional CommitmentResourceStatus resource_status = 23 + [json_name = "resourceStatus"]; + + // The list of all the hardware resources, with their types and amounts, that + // you want to commit to. Specify as a separate entry in the list for each + // individual resource type. + repeated ResourceCommitment resources = 14 [json_name = "resources"]; - // Expected HTTP status code for rule with `urlRedirect` calculated by load - // balancer - optional int32 expected_redirect_response_code = 5 - [json_name = "expectedRedirectResponseCode"]; + // [Output Only] Server-defined URL for the resource. + optional string self_link = 15 [json_name = "selfLink"]; + + // The source commitment from which you are transferring resources to create + // the new split commitment. For more information, see Split commitments. + optional string split_source_commitment = 16 + [json_name = "splitSourceCommitment"]; + + // [Output Only] Commitment start time in RFC3339 text format. + optional string start_timestamp = 17 [json_name = "startTimestamp"]; + + // [Output Only] Status of the commitment with regards to eventual expiration + // (each commitment has an end date defined). Status can be one of the + // following values: NOT_YET_ACTIVE, ACTIVE, or EXPIRED. + // ACTIVE: + // CANCELLED: Deprecate CANCELED status. Will use separate status to + // differentiate cancel by mergeCud or manual cancellation. + // CREATING: + // EXPIRED: + // NOT_YET_ACTIVE: + optional string status = 18 [json_name = "status"]; + + // [Output Only] An optional, human-readable explanation of the status. + optional string status_message = 19 [json_name = "statusMessage"]; + + // The type of commitment; specifies the machine series for which you want to + // commit to purchasing resources. The choice of machine series affects the + // discount rate and the eligible resource types. The type must be one of the + // following: ACCELERATOR_OPTIMIZED, ACCELERATOR_OPTIMIZED_A3, + // ACCELERATOR_OPTIMIZED_A3_MEGA, COMPUTE_OPTIMIZED, COMPUTE_OPTIMIZED_C2D, + // COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D, COMPUTE_OPTIMIZED_H3, + // GENERAL_PURPOSE, GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2, + // GENERAL_PURPOSE_N2, GENERAL_PURPOSE_N2D, GENERAL_PURPOSE_N4, + // GENERAL_PURPOSE_T2D, GRAPHICS_OPTIMIZED, MEMORY_OPTIMIZED, + // MEMORY_OPTIMIZED_M3, MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For + // example, type MEMORY_OPTIMIZED specifies a commitment that applies only to + // eligible resources of memory optimized M1 and M2 machine series. Type + // GENERAL_PURPOSE specifies a commitment that applies only to eligible + // resources of general purpose N1 machine series. + // ACCELERATOR_OPTIMIZED: + // ACCELERATOR_OPTIMIZED_A3: + // ACCELERATOR_OPTIMIZED_A3_MEGA: + // ACCELERATOR_OPTIMIZED_A3_ULTRA: + // ACCELERATOR_OPTIMIZED_A4: + // COMPUTE_OPTIMIZED: + // COMPUTE_OPTIMIZED_C2D: + // COMPUTE_OPTIMIZED_C3: + // COMPUTE_OPTIMIZED_C3D: + // COMPUTE_OPTIMIZED_H3: + // COMPUTE_OPTIMIZED_H4D: + // GENERAL_PURPOSE: + // GENERAL_PURPOSE_C4: + // GENERAL_PURPOSE_C4A: + // GENERAL_PURPOSE_C4D: + // GENERAL_PURPOSE_E2: + // GENERAL_PURPOSE_N2: + // GENERAL_PURPOSE_N2D: + // GENERAL_PURPOSE_N4: + // GENERAL_PURPOSE_T2D: + // GRAPHICS_OPTIMIZED: + // MEMORY_OPTIMIZED: + // MEMORY_OPTIMIZED_M3: + // MEMORY_OPTIMIZED_M4: + // MEMORY_OPTIMIZED_M4_6TB: + // MEMORY_OPTIMIZED_X4_16TB: + // MEMORY_OPTIMIZED_X4_24TB: + // MEMORY_OPTIMIZED_X4_32TB: + // STORAGE_OPTIMIZED_Z3: + // TYPE_UNSPECIFIED: Note for internal users: When adding a new enum Type for + // v1, make sure to also add it in the comment for the `optional Type type` + // definition. This ensures that the public documentation displays the new + // enum Type. + optional string type = 20 [json_name = "type"]; +} - // Expected BackendService or BackendBucket resource the given URL should be - // mapped to. - optional string expected_service = 6 [json_name = "expectedService"]; +message CommitmentAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; - // HTTP headers of the request. - repeated UrlMapTestHeader headers = 7 [json_name = "headers"]; + // A list of CommitmentsScopedList resources. + map items = 2 [json_name = "items"]; - // Host portion of the URL. - optional string host = 8 [json_name = "host"]; + // [Output Only] Type of resource. Always compute#commitmentAggregatedList for + // aggregated lists of commitments. + optional string kind = 3 [json_name = "kind"]; - // Path portion including query parameters in the URL. - optional string path = 9 [json_name = "path"]; -} + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; -// Represents a URL Map resource. Compute Engine has two URL Map resources: * -// [Global](/compute/docs/reference/rest/v1/urlMaps) * -// [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource -// is a component of certain types of cloud load balancers and Traffic Director: -// * urlMaps are used by global external Application Load Balancers, classic -// Application Load Balancers, and cross-region internal Application Load -// Balancers. * regionUrlMaps are used by internal Application Load Balancers, -// regional external Application Load Balancers and regional internal -// Application Load Balancers. For a list of supported URL map features by the -// load balancer type, see the Load balancing features: Routing and traffic -// management table. For a list of supported URL map features for Traffic -// Director, see the Traffic Director features: Routing and traffic management -// table. This resource defines mappings from hostnames and URL paths to either -// a backend service or a backend bucket. To use the global urlMaps resource, -// the backend service must have a loadBalancingScheme of either EXTERNAL, -// EXTERNAL_MANAGED, or INTERNAL_SELF_MANAGED. To use the regionUrlMaps -// resource, the backend service must have a loadBalancingScheme of -// INTERNAL_MANAGED. For more information, read URL Map Concepts. -message UrlMap { - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns - // error responses when BackendServiceor BackendBucket responds with an error. - // This policy takes effect at the load balancer level and applies only when - // no policy has been defined for the error code at lower levels like - // PathMatcher, RouteRule and PathRule within this UrlMap. For example, - // consider a UrlMap with the following configuration: - - // defaultCustomErrorResponsePolicy containing policies for responding to 5xx - // and 4xx errors - A PathMatcher configured for *.example.com has - // defaultCustomErrorResponsePolicy for 4xx. If a request for - // http://www.example.com/ encounters a 404, the policy in - // pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the - // request for http://www.example.com/ encounters a 502, the policy in - // UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request - // that does not match any host in *.example.com such as - // http://www.myotherexample.com/, encounters a 404, - // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in - // conjunction with defaultRouteAction.retryPolicy, retries take precedence. - // Only once all retries are exhausted, the defaultCustomErrorResponsePolicy - // is applied. While attempting a retry, if load balancer is successful in - // reaching the service, the defaultCustomErrorResponsePolicy is ignored and - // the response from the service is returned to the client. - // defaultCustomErrorResponsePolicy is supported only for global external - // Application Load Balancers. - optional CustomErrorResponsePolicy default_custom_error_response_policy = 16 - [json_name = "defaultCustomErrorResponsePolicy"]; - - // defaultRouteAction takes effect when none of the hostRules match. The load - // balancer performs advanced routing actions, such as URL rewrites and header - // transformations, before forwarding the request to the selected backend. - // Only one of defaultUrlRedirect, defaultService or - // defaultRouteAction.weightedBackendService can be set. URL maps for classic - // Application Load Balancers only support the urlRewrite action within - // defaultRouteAction. defaultRouteAction has no effect when the URL map is - // bound to a target gRPC proxy that has the validateForProxyless field set to - // true. - optional HttpRouteAction default_route_action = 2 - [json_name = "defaultRouteAction"]; - - // The full or partial URL of the defaultService resource to which traffic is - // directed if none of the hostRules match. If defaultRouteAction is also - // specified, advanced routing actions, such as URL rewrites, take effect - // before sending the request to the backend. Only one of defaultUrlRedirect, - // defaultService or defaultRouteAction.weightedBackendService can be set. - // defaultService has no effect when the URL map is bound to a target gRPC - // proxy that has the validateForProxyless field set to true. - optional string default_service = 3 [json_name = "defaultService"]; - - // When none of the specified hostRules match, the request is redirected to a - // URL specified by defaultUrlRedirect. Only one of defaultUrlRedirect, - // defaultService or defaultRouteAction.weightedBackendService can be set. Not - // supported when the URL map is bound to a target gRPC proxy. - optional HttpRedirectAction default_url_redirect = 4 - [json_name = "defaultUrlRedirect"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 5 [json_name = "description"]; - - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field is ignored when - // inserting a UrlMap. An up-to-date fingerprint must be provided in order to - // update the UrlMap, otherwise the request will fail with error 412 - // conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve a UrlMap. - optional string fingerprint = 6 [json_name = "fingerprint"]; - - // Specifies changes to request and response headers that need to take effect - // for the selected backendService. The headerAction specified here take - // effect after headerAction specified under pathMatcher. headerAction is not - // supported for load balancers that have their loadBalancingScheme set to - // EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy - // that has validateForProxyless field set to true. - optional HttpHeaderAction header_action = 7 [json_name = "headerAction"]; - - // The list of host rules to use against the URL. - repeated HostRule host_rules = 8 [json_name = "hostRules"]; + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 9 [json_name = "id"]; + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; - // [Output Only] Type of the resource. Always compute#urlMaps for url maps. - optional string kind = 10 [json_name = "kind"]; + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 11 [json_name = "name"]; + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; - // The list of named PathMatchers to use against the URL. - repeated PathMatcher path_matchers = 12 [json_name = "pathMatchers"]; + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } - // [Output Only] URL of the region where the regional URL map resides. This - // field is not applicable to global URL maps. You must specify this field as - // part of the HTTP request URL. It is not settable as a field in the request - // body. - optional string region = 13 [json_name = "region"]; + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; - // [Output Only] Server-defined URL for the resource. - optional string self_link = 14 [json_name = "selfLink"]; + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } - // The list of expected URL mapping tests. Request to update the UrlMap - // succeeds only if all test cases pass. You can specify a maximum of 100 - // tests per UrlMap. Not supported when the URL map is bound to a target gRPC - // proxy that has validateForProxyless field set to true. - repeated UrlMapTest tests = 15 [json_name = "tests"]; + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; } -// Contains a list of UrlMap resources. -message UrlMapList { +// Contains a list of Commitment resources. +message CommitmentList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of UrlMap resources. - repeated UrlMap items = 2 [json_name = "items"]; + // A list of Commitment resources. + repeated Commitment items = 2 [json_name = "items"]; - // Type of resource. + // [Output Only] Type of resource. Always compute#commitmentList for lists of + // commitments. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -1073,134 +421,142 @@ message UrlMapList { optional Warning warning = 6 [json_name = "warning"]; } -// Message for the expected URL mappings. -message UrlMapTest { - // Description of this test case. - optional string description = 1 [json_name = "description"]; - - // The expected output URL evaluated by the load balancer containing the - // scheme, host, path and query parameters. For rules that forward requests to - // backends, the test passes only when expectedOutputUrl matches the request - // forwarded by the load balancer to backends. For rules with urlRewrite, the - // test verifies that the forwarded request matches hostRewrite and - // pathPrefixRewrite in the urlRewrite action. When service is specified, - // expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test - // passes only if expectedOutputUrl matches the URL in the load balancer's - // redirect response. If urlRedirect specifies https_redirect, the test passes - // only if the scheme in expectedOutputUrl is also set to HTTPS. If - // urlRedirect specifies strip_query, the test passes only if - // expectedOutputUrl does not contain any query parameters. expectedOutputUrl - // is optional when service is specified. - optional string expected_output_url = 2 [json_name = "expectedOutputUrl"]; - - // For rules with urlRedirect, the test passes only if - // expectedRedirectResponseCode matches the HTTP status code in load - // balancer's redirect response. expectedRedirectResponseCode cannot be set - // when service is set. - optional int32 expected_redirect_response_code = 3 - [json_name = "expectedRedirectResponseCode"]; - - // HTTP headers for this request. If headers contains a host header, then host - // must also match the header value. - repeated UrlMapTestHeader headers = 4 [json_name = "headers"]; - - // Host portion of the URL. If headers contains a host header, then host must - // also match the header value. - optional string host = 5 [json_name = "host"]; - - // Path portion of the URL. - optional string path = 6 [json_name = "path"]; - - // Expected BackendService or BackendBucket resource the given URL should be - // mapped to. The service field cannot be set if expectedRedirectResponseCode - // is set. - optional string service = 7 [json_name = "service"]; +// [Output Only] Contains output only fields. +message CommitmentResourceStatus { + // [Output Only] Indicates the end time of customer's eligibility to send + // custom term requests in RFC3339 text format. Term extension requests that + // (not the end time in the request) after this time will be rejected. + optional string custom_term_eligibility_end_timestamp = 1 + [json_name = "customTermEligibilityEndTimestamp"]; } -// HTTP headers used in UrlMapTests. -message UrlMapTestHeader { - // Header name. - optional string name = 1 [json_name = "name"]; +message CommitmentsScopedList { + // [Output Only] The list of commitments contained in this scope. + repeated Commitment commitments = 1 [json_name = "commitments"]; - // Header value. - optional string value = 2 [json_name = "value"]; -} + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; -// Message representing the validation result for a UrlMap. -message UrlMapValidationResult { - repeated string load_errors = 1 [json_name = "loadErrors"]; + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } - // Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' - // indicates the reasons. - optional bool load_succeeded = 2 [json_name = "loadSucceeded"]; + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; - repeated TestFailure test_failures = 3 [json_name = "testFailures"]; + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } - // If successfully loaded, this field indicates whether the test passed. If - // false, 'testFailures's indicate the reason of failure. - optional bool test_passed = 4 [json_name = "testPassed"]; + // [Output Only] Informational warning which replaces the list of commitments + // when the list is empty. + optional Warning warning = 2 [json_name = "warning"]; } -message UrlMapsValidateResponse { - optional UrlMapValidationResult result = 1 [json_name = "result"]; -} +// Commitment for a particular license resource. +message LicenseResourceCommitment { + // The number of licenses you plan to purchase. + optional string amount = 1 [json_name = "amount"]; + + // The number of cores per license. + optional string cores_per_license = 2 [json_name = "coresPerLicense"]; -// The spec for modifying the path before sending the request to the matched -// backend service. -message UrlRewrite { - // Before forwarding the request to the selected service, the request's host - // header is replaced with contents of hostRewrite. The value must be from 1 - // to 255 characters. - optional string host_rewrite = 1 [json_name = "hostRewrite"]; - - // Before forwarding the request to the selected backend service, the matching - // portion of the request's path is replaced by pathPrefixRewrite. The value - // must be from 1 to 1024 characters. - optional string path_prefix_rewrite = 2 [json_name = "pathPrefixRewrite"]; - - // If specified, the pattern rewrites the URL path (based on the :path - // header) using the HTTP template syntax. A corresponding path_template_match - // must be specified. Any template variables must exist in the - // path_template_match field. - -At least one variable must be specified in - // the path_template_match field - You can omit variables from the rewritten - // URL - The * and ** operators cannot be matched unless they have a - // corresponding variable name - e.g. {format=*} or {var=**}. For example, a - // path_template_match of /static/{format=**} could be rewritten as - // /static/content/{format} to prefix /content to the URL. Variables can also - // be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be - // rewritten as /content/{format}/{country}/{suffix}. At least one non-empty - // routeRules[].matchRules[].path_template_match is required. Only one of - // path_prefix_rewrite or path_template_rewrite may be specified. - optional string path_template_rewrite = 3 [json_name = "pathTemplateRewrite"]; + // The applicable license URI. + optional string license = 3 [json_name = "license"]; } -// In contrast to a single BackendService in HttpRouteAction to which all -// matching traffic is directed to, WeightedBackendService allows traffic to be -// split across multiple backend services. The volume of traffic for each -// backend service is proportional to the weight specified in each -// WeightedBackendService -message WeightedBackendService { - // The full or partial URL to the default BackendService resource. Before - // forwarding the request to backendService, the load balancer applies any - // relevant headerActions specified as part of this backendServiceWeight. - optional string backend_service = 1 [json_name = "backendService"]; - - // Specifies changes to request and response headers that need to take effect - // for the selected backendService. headerAction specified here take effect - // before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their - // loadBalancingScheme set to EXTERNAL. Not supported when the URL map is - // bound to a target gRPC proxy that has validateForProxyless field set to - // true. - optional HttpHeaderAction header_action = 2 [json_name = "headerAction"]; - - // Specifies the fraction of traffic sent to a backend service, computed as - // weight / (sum of all weightedBackendService weights in routeAction) . The - // selection of a backend service is determined only for new traffic. Once a - // user's request has been directed to a backend service, subsequent requests - // are sent to the same backend service as determined by the backend service's - // session affinity policy. Don't configure session affinity if you're using - // weighted traffic splitting. If you do, the weighted traffic splitting - // configuration takes precedence. The value must be from 0 to 1000. - optional uint32 weight = 3 [json_name = "weight"]; +// Commitment for a particular hardware resource (a commitment is composed of +// one or more of these). +message ResourceCommitment { + // Name of the accelerator type or GPU resource. Specify this field only when + // the type of hardware resource is ACCELERATOR. + optional string accelerator_type = 1 [json_name = "acceleratorType"]; + + // The quantity of the hardware resource that you want to commit to purchasing + // (in a type-dependent unit). - For vCPUs, you must specify an integer value. + // - For memory, you specify the amount of MB that you want. The value you + // specify must be a multiple of 256 MB, with up to 6.5 GB of memory per every + // vCPU. - For GPUs, you must specify an integer value. - For Local SSD disks, + // you must specify the amount in GB. The size of a single Local SSD disk is + // 375 GB. + optional string amount = 2 [json_name = "amount"]; + + // The type of hardware resource that you want to specify. You can specify any + // of the following values: - VCPU - MEMORY - LOCAL_SSD - ACCELERATOR Specify + // as a separate entry in the list for each individual resource type. + // ACCELERATOR: + // LOCAL_SSD: + // MEMORY: + // UNSPECIFIED: + // VCPU: + optional string type = 3 [json_name = "type"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_020.proto b/protos/google/cloud/compute/v1/internal/common_020.proto index d22942fb8a9df..aa363b527addc 100644 --- a/protos/google/cloud/compute/v1/internal/common_020.proto +++ b/protos/google/cloud/compute/v1/internal/common_020.proto @@ -15,75 +15,1193 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message CustomerEncryptionKey { - // The name of the encryption key that is stored in Google Cloud KMS. For - // example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ - // key_region/cryptoKeys/key The fully-qualifed key name may be returned for - // resource GET requests. For example: "kmsKeyName": - // "projects/kms_project_id/locations/region/keyRings/ - // key_region/cryptoKeys/key /cryptoKeyVersions/1 - optional string kms_key_name = 1 [json_name = "kmsKeyName"]; - - // The service account being used for the encryption request for the given KMS - // key. If absent, the Compute Engine default service account is used. For - // example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ - optional string kms_key_service_account = 2 - [json_name = "kmsKeyServiceAccount"]; - - // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - // base64 to either encrypt or decrypt this resource. You can provide either - // the rawKey or the rsaEncryptedKey. For example: "rawKey": - // "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" - optional string raw_key = 3 [json_name = "rawKey"]; - - // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit - // customer-supplied encryption key to either encrypt or decrypt this - // resource. You can provide either the rawKey or the rsaEncryptedKey. For - // example: "rsaEncryptedKey": - // "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH - // z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD - // D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" - // The key must meet the following requirements before you can provide it to - // Compute Engine: 1. The key is wrapped using a RSA public key certificate - // provided by Google. 2. After being wrapped, the key must be encoded in RFC - // 4648 base64 encoding. Gets the RSA public key certificate provided by - // Google at: - // https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem - optional string rsa_encrypted_key = 4 [json_name = "rsaEncryptedKey"]; - - // [Output only] The RFC 4648 base64 encoded SHA-256 hash of the - // customer-supplied encryption key that protects this resource. - optional string sha256 = 5 [json_name = "sha256"]; -} - -// Guest OS features. -message GuestOsFeature { - // The ID of a supported feature. To add multiple values, use commas to - // separate values. Set to one or more of the following values: - - // VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - - // GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - - // SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more - // information, see Enabling guest operating system features. - // BARE_METAL_LINUX_COMPATIBLE: - // FEATURE_TYPE_UNSPECIFIED: - // GVNIC: - // IDPF: - // MULTI_IP_SUBNET: - // SECURE_BOOT: - // SEV_CAPABLE: - // SEV_LIVE_MIGRATABLE: - // SEV_LIVE_MIGRATABLE_V2: - // SEV_SNP_CAPABLE: - // SNP_SVSM_CAPABLE: - // TDX_CAPABLE: - // UEFI_COMPATIBLE: - // VIRTIO_SCSI_MULTIQUEUE: - // WINDOWS: - optional string type = 1 [json_name = "type"]; +import "google/cloud/compute/v1/internal/common_029.proto"; +import "google/cloud/compute/v1/internal/common_082.proto"; + +// The specification for allowing client-side cross-origin requests. For more +// information about the W3C recommendation for cross-origin resource sharing +// (CORS), see Fetch API Living Standard. +message CorsPolicy { + // In response to a preflight request, setting this to true indicates that the + // actual request can include user credentials. This field translates to the + // Access-Control-Allow-Credentials header. Default is false. + optional bool allow_credentials = 1 [json_name = "allowCredentials"]; + + // Specifies the content for the Access-Control-Allow-Headers header. + repeated string allow_headers = 2 [json_name = "allowHeaders"]; + + // Specifies the content for the Access-Control-Allow-Methods header. + repeated string allow_methods = 3 [json_name = "allowMethods"]; + + // Specifies a regular expression that matches allowed origins. For more + // information, see regular expression syntax . An origin is allowed if it + // matches either an item in allowOrigins or an item in allowOriginRegexes. + // Regular expressions can only be used when the loadBalancingScheme is set to + // INTERNAL_SELF_MANAGED. + repeated string allow_origin_regexes = 4 [json_name = "allowOriginRegexes"]; + + // Specifies the list of origins that is allowed to do CORS requests. An + // origin is allowed if it matches either an item in allowOrigins or an item + // in allowOriginRegexes. + repeated string allow_origins = 5 [json_name = "allowOrigins"]; + + // If true, disables the CORS policy. The default value is false, which + // indicates that the CORS policy is in effect. + optional bool disabled = 6 [json_name = "disabled"]; + + // Specifies the content for the Access-Control-Expose-Headers header. + repeated string expose_headers = 7 [json_name = "exposeHeaders"]; + + // Specifies how long results of a preflight request can be cached in seconds. + // This field translates to the Access-Control-Max-Age header. + optional int32 max_age = 8 [json_name = "maxAge"]; +} + +// Specifies the custom error response policy that must be applied when the +// backend service or backend bucket responds with an error. +message CustomErrorResponsePolicy { + // Specifies rules for returning error responses. In a given policy, if you + // specify rules for both a range of error codes as well as rules for specific + // error codes then rules with specific error codes have a higher priority. + // For example, assume that you configure a rule for 401 (Un-authorized) code, + // and another for all 4 series error codes (4XX). If the backend service + // returns a 401, then the rule for 401 will be applied. However if the + // backend service returns a 403, the rule for 4xx takes effect. + repeated CustomErrorResponsePolicyCustomErrorResponseRule + error_response_rules = 1 [json_name = "errorResponseRules"]; + + // The full or partial URL to the BackendBucket resource that contains the + // custom error content. Examples are: - + // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket + // - compute/v1/projects/project/global/backendBuckets/myBackendBucket - + // global/backendBuckets/myBackendBucket If errorService is not specified at + // lower levels like pathMatcher, pathRule and routeRule, an errorService + // specified at a higher level in the UrlMap will be used. If + // UrlMap.defaultCustomErrorResponsePolicy contains one or more + // errorResponseRules[], it must specify errorService. If load balancer cannot + // reach the backendBucket, a simple Not Found Error will be returned, with + // the original response code (or overrideResponseCode if configured). + // errorService is not supported for internal or regional HTTP/HTTPS load + // balancers. + optional string error_service = 2 [json_name = "errorService"]; +} + +// Specifies the mapping between the response code that will be returned along +// with the custom error content and the response code returned by the backend +// service. +message CustomErrorResponsePolicyCustomErrorResponseRule { + // Valid values include: - A number between 400 and 599: For example 401 or + // 503, in which case the load balancer applies the policy if the error code + // exactly matches this value. - 5xx: Load Balancer will apply the policy if + // the backend service responds with any response code in the range of 500 to + // 599. - 4xx: Load Balancer will apply the policy if the backend service + // responds with any response code in the range of 400 to 499. Values must be + // unique within matchResponseCodes and across all errorResponseRules of + // CustomErrorResponsePolicy. + repeated string match_response_codes = 1 [json_name = "matchResponseCodes"]; + + // The HTTP status code returned with the response containing the custom error + // content. If overrideResponseCode is not supplied, the same response code + // returned by the original backend bucket or backend service is returned to + // the client. + optional int32 override_response_code = 2 + [json_name = "overrideResponseCode"]; + + // The full path to a file within backendBucket . For example: + // /errors/defaultError.html path must start with a leading slash. path cannot + // have trailing slashes. If the file is not available in backendBucket or the + // load balancer cannot reach the BackendBucket, a simple Not Found Error is + // returned to the client. The value must be from 1 to 1024 characters + optional string path = 3 [json_name = "path"]; +} + +// UrlMaps A host-matching rule for a URL. If matched, will use the named +// PathMatcher to select the BackendService. +message HostRule { + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 1 [json_name = "description"]; + + // The list of host patterns to match. They must be valid hostnames with + // optional port numbers in the format host:port. * matches any string of + // ([a-z0-9-.]*). In that case, * must be the first character, and if followed + // by anything, the immediate following character must be either - or .. * + // based matching is not supported when the URL map is bound to a target gRPC + // proxy that has the validateForProxyless field set to true. + repeated string hosts = 2 [json_name = "hosts"]; + + // The name of the PathMatcher to use to match the path portion of the URL if + // the hostRule matches the URL's host portion. + optional string path_matcher = 3 [json_name = "pathMatcher"]; +} + +// Specification for how requests are aborted as part of fault injection. +message HttpFaultAbort { + // The HTTP status code used to abort the request. The value must be from 200 + // to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP + // status code according to this mapping table. HTTP status 200 is mapped to + // gRPC status UNKNOWN. Injecting an OK status is currently not supported by + // Traffic Director. + optional uint32 http_status = 1 [json_name = "httpStatus"]; + + // The percentage of traffic for connections, operations, or requests that is + // aborted as part of fault injection. The value must be from 0.0 to 100.0 + // inclusive. + optional double percentage = 2 [json_name = "percentage"]; +} + +// Specifies the delay introduced by the load balancer before forwarding the +// request to the backend service as part of fault injection. +message HttpFaultDelay { + // Specifies the value of the fixed delay interval. + optional Duration fixed_delay = 1 [json_name = "fixedDelay"]; + + // The percentage of traffic for connections, operations, or requests for + // which a delay is introduced as part of fault injection. The value must be + // from 0.0 to 100.0 inclusive. + optional double percentage = 2 [json_name = "percentage"]; +} + +// The specification for fault injection introduced into traffic to test the +// resiliency of clients to backend service failure. As part of fault injection, +// when clients send requests to a backend service, delays can be introduced by +// the load balancer on a percentage of requests before sending those request to +// the backend service. Similarly requests from clients can be aborted by the +// load balancer for a percentage of requests. +message HttpFaultInjection { + // The specification for how client requests are aborted as part of fault + // injection. + optional HttpFaultAbort abort = 1 [json_name = "abort"]; + + // The specification for how client requests are delayed as part of fault + // injection, before being sent to a backend service. + optional HttpFaultDelay delay = 2 [json_name = "delay"]; +} + +// The request and response header transformations that take effect before the +// request is passed along to the selected backendService. +message HttpHeaderAction { + // Headers to add to a matching request before forwarding the request to the + // backendService. + repeated HttpHeaderOption request_headers_to_add = 1 + [json_name = "requestHeadersToAdd"]; + + // A list of header names for headers that need to be removed from the request + // before forwarding the request to the backendService. + repeated string request_headers_to_remove = 2 + [json_name = "requestHeadersToRemove"]; + + // Headers to add the response before sending the response back to the client. + repeated HttpHeaderOption response_headers_to_add = 3 + [json_name = "responseHeadersToAdd"]; + + // A list of header names for headers that need to be removed from the + // response before sending the response back to the client. + repeated string response_headers_to_remove = 4 + [json_name = "responseHeadersToRemove"]; +} + +// matchRule criteria for request header matches. +message HttpHeaderMatch { + // The value should exactly match contents of exactMatch. Only one of + // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + optional string exact_match = 1 [json_name = "exactMatch"]; + + // The name of the HTTP header to match. For matching against the HTTP + // request's authority, use a headerMatch with the header name ":authority". + // For matching a request's method, use the headerName ":method". When the URL + // map is bound to a target gRPC proxy that has the validateForProxyless field + // set to true, only non-binary user-specified custom metadata and the + // `content-type` header are supported. The following transport-level headers + // cannot be used in header matching rules: `:authority`, `:method`, `:path`, + // `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, + // `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, + // `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. + optional string header_name = 2 [json_name = "headerName"]; + + // If set to false, the headerMatch is considered a match if the preceding + // match criteria are met. If set to true, the headerMatch is considered a + // match if the preceding match criteria are NOT met. The default setting is + // false. + optional bool invert_match = 3 [json_name = "invertMatch"]; + + // The value of the header must start with the contents of prefixMatch. Only + // one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + optional string prefix_match = 4 [json_name = "prefixMatch"]; + + // A header with the contents of headerName must exist. The match takes place + // whether or not the request's header has a value. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be + // set. + optional bool present_match = 5 [json_name = "presentMatch"]; + + // The header value must be an integer and its value must be in the range + // specified in rangeMatch. If the header does not contain an integer, number + // or is empty, the match fails. For example for a range [-5, 0] - -3 will + // match. - 0 will not match. - 0.25 will not match. - -3someString will not + // match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, + // presentMatch or rangeMatch must be set. rangeMatch is not supported for + // load balancers that have loadBalancingScheme set to EXTERNAL. + optional Int64RangeMatch range_match = 6 [json_name = "rangeMatch"]; + + // The value of the header must match the regular expression specified in + // regexMatch. For more information about regular expression syntax, see + // Syntax. For matching against a port specified in the HTTP request, use a + // headerMatch with headerName set to PORT and a regular expression that + // satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be + // set. Regular expressions can only be used when the loadBalancingScheme is + // set to INTERNAL_SELF_MANAGED. + optional string regex_match = 7 [json_name = "regexMatch"]; + + // The value of the header must end with the contents of suffixMatch. Only one + // of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + optional string suffix_match = 8 [json_name = "suffixMatch"]; +} + +// Specification determining how headers are added to requests or responses. +message HttpHeaderOption { + // The name of the header. + optional string header_name = 1 [json_name = "headerName"]; + + // The value of the header to add. + optional string header_value = 2 [json_name = "headerValue"]; + + // If false, headerValue is appended to any values that already exist for the + // header. If true, headerValue is set for the header, discarding any values + // that were set for that header. The default value is true, unless a variable + // is present in headerValue, in which case the default value is false. . + optional bool replace = 3 [json_name = "replace"]; +} + +// HttpRouteRuleMatch criteria for a request's query parameter. +message HttpQueryParameterMatch { + // The queryParameterMatch matches if the value of the parameter exactly + // matches the contents of exactMatch. Only one of presentMatch, exactMatch, + // or regexMatch must be set. + optional string exact_match = 1 [json_name = "exactMatch"]; + + // The name of the query parameter to match. The query parameter must exist in + // the request, in the absence of which the request match fails. + optional string name = 2 [json_name = "name"]; + + // Specifies that the queryParameterMatch matches if the request contains the + // query parameter, irrespective of whether the parameter has a value or not. + // Only one of presentMatch, exactMatch, or regexMatch must be set. + optional bool present_match = 3 [json_name = "presentMatch"]; + + // The queryParameterMatch matches if the value of the parameter matches the + // regular expression specified by regexMatch. For more information about + // regular expression syntax, see Syntax. Only one of presentMatch, + // exactMatch, or regexMatch must be set. Regular expressions can only be used + // when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. + optional string regex_match = 4 [json_name = "regexMatch"]; +} + +// Specifies settings for an HTTP redirect. +message HttpRedirectAction { + // The host that is used in the redirect response instead of the one that was + // supplied in the request. The value must be from 1 to 255 characters. + optional string host_redirect = 1 [json_name = "hostRedirect"]; + + // If set to true, the URL scheme in the redirected request is set to HTTPS. + // If set to false, the URL scheme of the redirected request remains the same + // as that of the request. This must only be set for URL maps used in + // TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. + // The default is set to false. + optional bool https_redirect = 2 [json_name = "httpsRedirect"]; + + // The path that is used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the + // path of the original request is used for the redirect. The value must be + // from 1 to 1024 characters. + optional string path_redirect = 3 [json_name = "pathRedirect"]; + + // The prefix that replaces the prefixMatch specified in the + // HttpRouteRuleMatch, retaining the remaining portion of the URL before + // redirecting the request. prefixRedirect cannot be supplied together with + // pathRedirect. Supply one alone or neither. If neither is supplied, the path + // of the original request is used for the redirect. The value must be from 1 + // to 1024 characters. + optional string prefix_redirect = 4 [json_name = "prefixRedirect"]; + + // The HTTP Status code to use for this RedirectAction. Supported values are: + // - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to + // 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to + // 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the + // request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. + // In this case, the request method is retained. + // FOUND: Http Status Code 302 - Found. + // MOVED_PERMANENTLY_DEFAULT: Http Status Code 301 - Moved Permanently. + // PERMANENT_REDIRECT: Http Status Code 308 - Permanent Redirect maintaining + // HTTP method. + // SEE_OTHER: Http Status Code 303 - See Other. + // TEMPORARY_REDIRECT: Http Status Code 307 - Temporary Redirect maintaining + // HTTP method. + optional string redirect_response_code = 5 + [json_name = "redirectResponseCode"]; + + // If set to true, any accompanying query portion of the original URL is + // removed before redirecting the request. If set to false, the query portion + // of the original URL is retained. The default is set to false. + optional bool strip_query = 6 [json_name = "stripQuery"]; +} + +// The retry policy associates with HttpRouteRule +message HttpRetryPolicy { + // Specifies the allowed number retries. This number must be > 0. If not + // specified, defaults to 1. + optional uint32 num_retries = 1 [json_name = "numRetries"]; + + // Specifies a non-zero timeout per retry attempt. If not specified, will use + // the timeout set in the HttpRouteAction field. If timeout in the + // HttpRouteAction field is not set, this field uses the largest timeout among + // all backend services associated with the route. Not supported when the URL + // map is bound to a target gRPC proxy that has the validateForProxyless field + // set to true. + optional Duration per_try_timeout = 2 [json_name = "perTryTimeout"]; + + // Specifies one or more conditions when this retry policy applies. Valid + // values are: - 5xx: retry is attempted if the instance or endpoint responds + // with any 5xx response code, or if the instance or endpoint does not respond + // at all. For example, disconnects, reset, read timeout, connection failure, + // and refused streams. - gateway-error: Similar to 5xx, but only applies to + // response codes 502, 503 or 504. - connect-failure: a retry is attempted on + // failures connecting to the instance or endpoint. For example, connection + // timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint + // responds with a 4xx response code. The only error that you can retry is + // error code 409. - refused-stream: a retry is attempted if the instance or + // endpoint resets the stream with a REFUSED_STREAM error code. This reset + // type indicates that it is safe to retry. - cancelled: a retry is attempted + // if the gRPC status code in the response header is set to cancelled. - + // deadline-exceeded: a retry is attempted if the gRPC status code in the + // response header is set to deadline-exceeded. - internal: a retry is + // attempted if the gRPC status code in the response header is set to + // internal. - resource-exhausted: a retry is attempted if the gRPC status + // code in the response header is set to resource-exhausted. - unavailable: a + // retry is attempted if the gRPC status code in the response header is set to + // unavailable. Only the following codes are supported when the URL map is + // bound to target gRPC proxy that has validateForProxyless field set to true. + // - cancelled - deadline-exceeded - internal - resource-exhausted - + // unavailable + repeated string retry_conditions = 3 [json_name = "retryConditions"]; +} + +message HttpRouteAction { + // The specification for allowing client-side cross-origin requests. For more + // information about the W3C recommendation for cross-origin resource sharing + // (CORS), see Fetch API Living Standard. Not supported when the URL map is + // bound to a target gRPC proxy. + optional CorsPolicy cors_policy = 1 [json_name = "corsPolicy"]; + + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to backend service failure. As part of fault + // injection, when clients send requests to a backend service, delays can be + // introduced by a load balancer on a percentage of requests before sending + // those requests to the backend service. Similarly requests from clients can + // be aborted by the load balancer for a percentage of requests. timeout and + // retry_policy is ignored by clients that are configured with a + // fault_injection_policy if: 1. The traffic is generated by fault injection + // AND 2. The fault injection is not a delay fault injection. Fault injection + // is not supported with the classic Application Load Balancer . To see which + // load balancers support fault injection, see Load balancing: Routing and + // traffic management features. + optional HttpFaultInjection fault_injection_policy = 2 + [json_name = "faultInjectionPolicy"]; + + // Specifies the maximum duration (timeout) for streams on the selected route. + // Unlike the timeout field where the timeout duration starts from the time + // the request has been fully processed (known as *end-of-stream*), the + // duration in this field is computed from the beginning of the stream until + // the response has been processed, including all retries. A stream that does + // not complete in this duration is closed. If not specified, this field uses + // the maximum maxStreamDuration value among all backend services associated + // with the route. This field is only allowed if the Url map is used with + // backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. + optional Duration max_stream_duration = 3 [json_name = "maxStreamDuration"]; + + // Specifies the policy on how requests intended for the route's backends are + // shadowed to a separate mirrored backend service. The load balancer does not + // wait for responses from the shadow service. Before sending traffic to the + // shadow service, the host / authority header is suffixed with -shadow. Not + // supported when the URL map is bound to a target gRPC proxy that has the + // validateForProxyless field set to true. + optional RequestMirrorPolicy request_mirror_policy = 4 + [json_name = "requestMirrorPolicy"]; + + // Specifies the retry policy associated with this route. + optional HttpRetryPolicy retry_policy = 5 [json_name = "retryPolicy"]; + + // Specifies the timeout for the selected route. Timeout is computed from the + // time the request has been fully processed (known as *end-of-stream*) up + // until the response has been processed. Timeout includes all retries. If not + // specified, this field uses the largest timeout among all backend services + // associated with the route. Not supported when the URL map is bound to a + // target gRPC proxy that has validateForProxyless field set to true. + optional Duration timeout = 6 [json_name = "timeout"]; + + // The spec to modify the URL of the request, before forwarding the request to + // the matched service. urlRewrite is the only action supported in UrlMaps for + // classic Application Load Balancers. Not supported when the URL map is bound + // to a target gRPC proxy that has the validateForProxyless field set to true. + optional UrlRewrite url_rewrite = 7 [json_name = "urlRewrite"]; + + // A list of weighted backend services to send traffic to when a route match + // occurs. The weights determine the fraction of traffic that flows to their + // corresponding backend service. If all traffic needs to go to a single + // backend service, there must be one weightedBackendService with weight set + // to a non-zero number. After a backend service is identified and before + // forwarding the request to the backend service, advanced routing actions + // such as URL rewrites and header transformations are applied depending on + // additional settings specified in this HttpRouteAction. + repeated WeightedBackendService weighted_backend_services = 8 + [json_name = "weightedBackendServices"]; +} + +// The HttpRouteRule setting specifies how to match an HTTP request and the +// corresponding routing action that load balancing proxies perform. +message HttpRouteRule { + // customErrorResponsePolicy specifies how the Load Balancer returns error + // responses when BackendServiceor BackendBucket responds with an error. If a + // policy for an error code is not configured for the RouteRule, a policy for + // the error code configured in pathMatcher.defaultCustomErrorResponsePolicy + // is applied. If one is not specified in + // pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in + // UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider + // a UrlMap with the following configuration: - + // UrlMap.defaultCustomErrorResponsePolicy are configured with policies for + // 5xx and 4xx errors - A RouteRule for /coming_soon/ is configured for the + // error code 404. If the request is for www.myotherdomain.com and a 404 is + // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes + // effect. If a 404 response is encountered for the request + // www.example.com/current_events/, the pathMatcher's policy takes effect. If + // however, the request for www.example.com/coming_soon/ encounters a 404, the + // policy in RouteRule.customErrorResponsePolicy takes effect. If any of the + // requests in this example encounter a 500 error code, the policy at + // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in + // conjunction with routeRules.routeAction.retryPolicy, retries take + // precedence. Only once all retries are exhausted, the + // customErrorResponsePolicy is applied. While attempting a retry, if load + // balancer is successful in reaching the service, the + // customErrorResponsePolicy is ignored and the response from the service is + // returned to the client. customErrorResponsePolicy is supported only for + // global external Application Load Balancers. + optional CustomErrorResponsePolicy custom_error_response_policy = 8 + [json_name = "customErrorResponsePolicy"]; + + // The short description conveying the intent of this routeRule. The + // description can have a maximum length of 1024 characters. + optional string description = 1 [json_name = "description"]; + + // Specifies changes to request and response headers that need to take effect + // for the selected backendService. The headerAction value specified here is + // applied before the matching pathMatchers[].headerAction and after + // pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction + // HeaderAction is not supported for load balancers that have their + // loadBalancingScheme set to EXTERNAL. Not supported when the URL map is + // bound to a target gRPC proxy that has validateForProxyless field set to + // true. + optional HttpHeaderAction header_action = 2 [json_name = "headerAction"]; + + // The list of criteria for matching attributes of a request to this + // routeRule. This list has OR semantics: the request matches this routeRule + // when any of the matchRules are satisfied. However predicates within a given + // matchRule have AND semantics. All predicates within a matchRule must match + // for the request to match the rule. + repeated HttpRouteRuleMatch match_rules = 3 [json_name = "matchRules"]; + + // For routeRules within a given pathMatcher, priority determines the order in + // which a load balancer interprets routeRules. RouteRules are evaluated in + // order of priority, from the lowest to highest number. The priority of a + // rule decreases as its number increases (1, 2, 3, N+1). The first rule that + // matches the request is applied. You cannot configure two or more routeRules + // with the same priority. Priority for each rule must be set to a number from + // 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you + // to add or remove rules in the future without affecting the rest of the + // rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority + // numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 + // to 15 in the future without any impact on existing rules. + optional int32 priority = 4 [json_name = "priority"]; + + // In response to a matching matchRule, the load balancer performs advanced + // routing actions, such as URL rewrites and header transformations, before + // forwarding the request to the selected backend. Only one of urlRedirect, + // service or routeAction.weightedBackendService can be set. URL maps for + // classic Application Load Balancers only support the urlRewrite action + // within a route rule's routeAction. + optional HttpRouteAction route_action = 5 [json_name = "routeAction"]; + + // The full or partial URL of the backend service resource to which traffic is + // directed if this rule is matched. If routeAction is also specified, + // advanced routing actions, such as URL rewrites, take effect before sending + // the request to the backend. Only one of urlRedirect, service or + // routeAction.weightedBackendService can be set. + optional string service = 6 [json_name = "service"]; + + // When this rule is matched, the request is redirected to a URL specified by + // urlRedirect. Only one of urlRedirect, service or + // routeAction.weightedBackendService can be set. Not supported when the URL + // map is bound to a target gRPC proxy. + optional HttpRedirectAction url_redirect = 7 [json_name = "urlRedirect"]; +} + +// HttpRouteRuleMatch specifies a set of criteria for matching requests to an +// HttpRouteRule. All specified criteria must be satisfied for a match to occur. +message HttpRouteRuleMatch { + // For satisfying the matchRule condition, the path of the request must + // exactly match the value specified in fullPathMatch after removing any query + // parameters and anchor that may be part of the original URL. fullPathMatch + // must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch + // or regexMatch must be specified. + optional string full_path_match = 1 [json_name = "fullPathMatch"]; + + // Specifies a list of header match criteria, all of which must match + // corresponding headers in the request. + repeated HttpHeaderMatch header_matches = 2 [json_name = "headerMatches"]; + + // Specifies that prefixMatch and fullPathMatch matches are case sensitive. + // The default value is false. ignoreCase must not be used with regexMatch. + // Not supported when the URL map is bound to a target gRPC proxy. + optional bool ignore_case = 3 [json_name = "ignoreCase"]; + + // Opaque filter criteria used by the load balancer to restrict routing + // configuration to a limited set of xDS compliant clients. In their xDS + // requests to the load balancer, xDS clients present node metadata. When + // there is a match, the relevant routing configuration is made available to + // those proxies. For each metadataFilter in this list, if its + // filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels + // must match the corresponding label provided in the metadata. If its + // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must + // match with corresponding labels provided in the metadata. If multiple + // metadata filters are specified, all of them need to be satisfied in order + // to be considered a match. metadataFilters specified here is applied after + // those specified in ForwardingRule that refers to the UrlMap this + // HttpRouteRuleMatch belongs to. metadataFilters only applies to load + // balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not + // supported when the URL map is bound to a target gRPC proxy that has + // validateForProxyless field set to true. + repeated MetadataFilter metadata_filters = 4 [json_name = "metadataFilters"]; + + // If specified, the route is a pattern match expression that must match the + // :path header once the query string is removed. A pattern match allows you + // to match - The value must be between 1 and 1024 characters - The pattern + // must start with a leading slash ("/") - There may be no more than 5 + // operators in pattern Precisely one of prefix_match, full_path_match, + // regex_match or path_template_match must be set. + optional string path_template_match = 8 [json_name = "pathTemplateMatch"]; + + // For satisfying the matchRule condition, the request's path must begin with + // the specified prefixMatch. prefixMatch must begin with a /. The value must + // be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or + // regexMatch must be specified. + optional string prefix_match = 5 [json_name = "prefixMatch"]; + + // Specifies a list of query parameter match criteria, all of which must match + // corresponding query parameters in the request. Not supported when the URL + // map is bound to a target gRPC proxy. + repeated HttpQueryParameterMatch query_parameter_matches = 6 + [json_name = "queryParameterMatches"]; + + // For satisfying the matchRule condition, the path of the request must + // satisfy the regular expression specified in regexMatch after removing any + // query parameters and anchor supplied with the original URL. For more + // information about regular expression syntax, see Syntax. Only one of + // prefixMatch, fullPathMatch or regexMatch must be specified. Regular + // expressions can only be used when the loadBalancingScheme is set to + // INTERNAL_SELF_MANAGED. + optional string regex_match = 7 [json_name = "regexMatch"]; +} + +// HttpRouteRuleMatch criteria for field values that must stay within the +// specified integer range. +message Int64RangeMatch { + // The end of the range (exclusive) in signed long integer format. + optional string range_end = 1 [json_name = "rangeEnd"]; + + // The start of the range (inclusive) in signed long integer format. + optional string range_start = 2 [json_name = "rangeStart"]; +} + +// A matcher for the path portion of the URL. The BackendService from the +// longest-matched rule will serve the URL. If no rule was matched, the default +// service is used. +message PathMatcher { + // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns + // error responses when BackendServiceor BackendBucket responds with an error. + // This policy takes effect at the PathMatcher level and applies only when no + // policy has been defined for the error code at lower levels like RouteRule + // and PathRule within this PathMatcher. If an error code does not have a + // policy defined in defaultCustomErrorResponsePolicy, then a policy defined + // for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect. + // For example, consider a UrlMap with the following configuration: - + // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx + // and 4xx errors - A RouteRule for /coming_soon/ is configured for the error + // code 404. If the request is for www.myotherdomain.com and a 404 is + // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes + // effect. If a 404 response is encountered for the request + // www.example.com/current_events/, the pathMatcher's policy takes effect. If + // however, the request for www.example.com/coming_soon/ encounters a 404, the + // policy in RouteRule.customErrorResponsePolicy takes effect. If any of the + // requests in this example encounter a 500 error code, the policy at + // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in + // conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take + // precedence. Only once all retries are exhausted, the + // defaultCustomErrorResponsePolicy is applied. While attempting a retry, if + // load balancer is successful in reaching the service, the + // defaultCustomErrorResponsePolicy is ignored and the response from the + // service is returned to the client. defaultCustomErrorResponsePolicy is + // supported only for global external Application Load Balancers. + optional CustomErrorResponsePolicy default_custom_error_response_policy = 9 + [json_name = "defaultCustomErrorResponsePolicy"]; + + // defaultRouteAction takes effect when none of the pathRules or routeRules + // match. The load balancer performs advanced routing actions, such as URL + // rewrites and header transformations, before forwarding the request to the + // selected backend. Only one of defaultUrlRedirect, defaultService or + // defaultRouteAction.weightedBackendService can be set. URL maps for classic + // Application Load Balancers only support the urlRewrite action within a path + // matcher's defaultRouteAction. + optional HttpRouteAction default_route_action = 1 + [json_name = "defaultRouteAction"]; + + // The full or partial URL to the BackendService resource. This URL is used if + // none of the pathRules or routeRules defined by this PathMatcher are + // matched. For example, the following are all valid URLs to a BackendService + // resource: - https://www.googleapis.com/compute/v1/projects/project + // /global/backendServices/backendService - + // compute/v1/projects/project/global/backendServices/backendService - + // global/backendServices/backendService If defaultRouteAction is also + // specified, advanced routing actions, such as URL rewrites, take effect + // before sending the request to the backend. Only one of defaultUrlRedirect, + // defaultService or defaultRouteAction.weightedBackendService can be set. + // Authorization requires one or more of the following Google IAM permissions + // on the specified resource default_service: - compute.backendBuckets.use - + // compute.backendServices.use + optional string default_service = 2 [json_name = "defaultService"]; + + // When none of the specified pathRules or routeRules match, the request is + // redirected to a URL specified by defaultUrlRedirect. Only one of + // defaultUrlRedirect, defaultService or + // defaultRouteAction.weightedBackendService can be set. Not supported when + // the URL map is bound to a target gRPC proxy. + optional HttpRedirectAction default_url_redirect = 3 + [json_name = "defaultUrlRedirect"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 4 [json_name = "description"]; + + // Specifies changes to request and response headers that need to take effect + // for the selected backend service. HeaderAction specified here are applied + // after the matching HttpRouteRule HeaderAction and before the HeaderAction + // in the UrlMap HeaderAction is not supported for load balancers that have + // their loadBalancingScheme set to EXTERNAL. Not supported when the URL map + // is bound to a target gRPC proxy that has validateForProxyless field set to + // true. + optional HttpHeaderAction header_action = 5 [json_name = "headerAction"]; + + // The name to which this PathMatcher is referred by the HostRule. + optional string name = 6 [json_name = "name"]; + + // The list of path rules. Use this list instead of routeRules when routing + // based on simple path matching is all that's required. The order by which + // path rules are specified does not matter. Matches are always done on the + // longest-path-first basis. For example: a pathRule with a path /a/b/c/* will + // match before /a/b/* irrespective of the order in which those paths appear + // in this list. Within a given pathMatcher, only one of pathRules or + // routeRules must be set. + repeated PathRule path_rules = 7 [json_name = "pathRules"]; + + // The list of HTTP route rules. Use this list instead of pathRules when + // advanced route matching and routing actions are desired. routeRules are + // evaluated in order of priority, from the lowest to highest number. Within a + // given pathMatcher, you can set only one of pathRules or routeRules. + repeated HttpRouteRule route_rules = 8 [json_name = "routeRules"]; +} + +// A path-matching rule for a URL. If matched, will use the specified +// BackendService to handle the traffic arriving at this URL. +message PathRule { + // customErrorResponsePolicy specifies how the Load Balancer returns error + // responses when BackendServiceor BackendBucket responds with an error. If a + // policy for an error code is not configured for the PathRule, a policy for + // the error code configured in pathMatcher.defaultCustomErrorResponsePolicy + // is applied. If one is not specified in + // pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in + // UrlMap.defaultCustomErrorResponsePolicy takes effect. For example, consider + // a UrlMap with the following configuration: - + // UrlMap.defaultCustomErrorResponsePolicy are configured with policies for + // 5xx and 4xx errors - A PathRule for /coming_soon/ is configured for the + // error code 404. If the request is for www.myotherdomain.com and a 404 is + // encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes + // effect. If a 404 response is encountered for the request + // www.example.com/current_events/, the pathMatcher's policy takes effect. If + // however, the request for www.example.com/coming_soon/ encounters a 404, the + // policy in PathRule.customErrorResponsePolicy takes effect. If any of the + // requests in this example encounter a 500 error code, the policy at + // UrlMap.defaultCustomErrorResponsePolicy takes effect. + // customErrorResponsePolicy is supported only for global external Application + // Load Balancers. + optional CustomErrorResponsePolicy custom_error_response_policy = 5 + [json_name = "customErrorResponsePolicy"]; + + // The list of path patterns to match. Each must start with / and the only + // place a * is allowed is at the end following a /. The string fed to the + // path matcher does not include any text after the first ? or #, and those + // chars are not allowed here. + repeated string paths = 1 [json_name = "paths"]; + + // In response to a matching path, the load balancer performs advanced routing + // actions, such as URL rewrites and header transformations, before forwarding + // the request to the selected backend. Only one of urlRedirect, service or + // routeAction.weightedBackendService can be set. URL maps for classic + // Application Load Balancers only support the urlRewrite action within a path + // rule's routeAction. + optional HttpRouteAction route_action = 2 [json_name = "routeAction"]; + + // The full or partial URL of the backend service resource to which traffic is + // directed if this rule is matched. If routeAction is also specified, + // advanced routing actions, such as URL rewrites, take effect before sending + // the request to the backend. Only one of urlRedirect, service or + // routeAction.weightedBackendService can be set. + optional string service = 3 [json_name = "service"]; + + // When a path pattern is matched, the request is redirected to a URL + // specified by urlRedirect. Only one of urlRedirect, service or + // routeAction.weightedBackendService can be set. Not supported when the URL + // map is bound to a target gRPC proxy. + optional HttpRedirectAction url_redirect = 4 [json_name = "urlRedirect"]; +} + +// A policy that specifies how requests intended for the route's backends are +// shadowed to a separate mirrored backend service. The load balancer doesn't +// wait for responses from the shadow service. Before sending traffic to the +// shadow service, the host or authority header is suffixed with -shadow. +message RequestMirrorPolicy { + // The full or partial URL to the BackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference + // backends that are of the same type as the original backend service matched + // in the URL map. Serverless NEG backends are not currently supported as a + // mirrored backend service. + optional string backend_service = 1 [json_name = "backendService"]; +} + +message TestFailure { + // The actual output URL evaluated by a load balancer containing the scheme, + // host, path and query parameters. + optional string actual_output_url = 1 [json_name = "actualOutputUrl"]; + + // Actual HTTP status code for rule with `urlRedirect` calculated by load + // balancer + optional int32 actual_redirect_response_code = 2 + [json_name = "actualRedirectResponseCode"]; + + // BackendService or BackendBucket returned by load balancer. + optional string actual_service = 3 [json_name = "actualService"]; + + // The expected output URL evaluated by a load balancer containing the scheme, + // host, path and query parameters. + optional string expected_output_url = 4 [json_name = "expectedOutputUrl"]; + + // Expected HTTP status code for rule with `urlRedirect` calculated by load + // balancer + optional int32 expected_redirect_response_code = 5 + [json_name = "expectedRedirectResponseCode"]; + + // Expected BackendService or BackendBucket resource the given URL should be + // mapped to. + optional string expected_service = 6 [json_name = "expectedService"]; + + // HTTP headers of the request. + repeated UrlMapTestHeader headers = 7 [json_name = "headers"]; + + // Host portion of the URL. + optional string host = 8 [json_name = "host"]; + + // Path portion including query parameters in the URL. + optional string path = 9 [json_name = "path"]; +} + +// Represents a URL Map resource. Compute Engine has two URL Map resources: * +// [Global](/compute/docs/reference/rest/v1/urlMaps) * +// [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource +// is a component of certain types of cloud load balancers and Traffic Director: +// * urlMaps are used by global external Application Load Balancers, classic +// Application Load Balancers, and cross-region internal Application Load +// Balancers. * regionUrlMaps are used by internal Application Load Balancers, +// regional external Application Load Balancers and regional internal +// Application Load Balancers. For a list of supported URL map features by the +// load balancer type, see the Load balancing features: Routing and traffic +// management table. For a list of supported URL map features for Traffic +// Director, see the Traffic Director features: Routing and traffic management +// table. This resource defines mappings from hostnames and URL paths to either +// a backend service or a backend bucket. To use the global urlMaps resource, +// the backend service must have a loadBalancingScheme of either EXTERNAL, +// EXTERNAL_MANAGED, or INTERNAL_SELF_MANAGED. To use the regionUrlMaps +// resource, the backend service must have a loadBalancingScheme of +// INTERNAL_MANAGED. For more information, read URL Map Concepts. +message UrlMap { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns + // error responses when BackendServiceor BackendBucket responds with an error. + // This policy takes effect at the load balancer level and applies only when + // no policy has been defined for the error code at lower levels like + // PathMatcher, RouteRule and PathRule within this UrlMap. For example, + // consider a UrlMap with the following configuration: - + // defaultCustomErrorResponsePolicy containing policies for responding to 5xx + // and 4xx errors - A PathMatcher configured for *.example.com has + // defaultCustomErrorResponsePolicy for 4xx. If a request for + // http://www.example.com/ encounters a 404, the policy in + // pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the + // request for http://www.example.com/ encounters a 502, the policy in + // UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request + // that does not match any host in *.example.com such as + // http://www.myotherexample.com/, encounters a 404, + // UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in + // conjunction with defaultRouteAction.retryPolicy, retries take precedence. + // Only once all retries are exhausted, the defaultCustomErrorResponsePolicy + // is applied. While attempting a retry, if load balancer is successful in + // reaching the service, the defaultCustomErrorResponsePolicy is ignored and + // the response from the service is returned to the client. + // defaultCustomErrorResponsePolicy is supported only for global external + // Application Load Balancers. + optional CustomErrorResponsePolicy default_custom_error_response_policy = 16 + [json_name = "defaultCustomErrorResponsePolicy"]; + + // defaultRouteAction takes effect when none of the hostRules match. The load + // balancer performs advanced routing actions, such as URL rewrites and header + // transformations, before forwarding the request to the selected backend. + // Only one of defaultUrlRedirect, defaultService or + // defaultRouteAction.weightedBackendService can be set. URL maps for classic + // Application Load Balancers only support the urlRewrite action within + // defaultRouteAction. defaultRouteAction has no effect when the URL map is + // bound to a target gRPC proxy that has the validateForProxyless field set to + // true. + optional HttpRouteAction default_route_action = 2 + [json_name = "defaultRouteAction"]; + + // The full or partial URL of the defaultService resource to which traffic is + // directed if none of the hostRules match. If defaultRouteAction is also + // specified, advanced routing actions, such as URL rewrites, take effect + // before sending the request to the backend. Only one of defaultUrlRedirect, + // defaultService or defaultRouteAction.weightedBackendService can be set. + // defaultService has no effect when the URL map is bound to a target gRPC + // proxy that has the validateForProxyless field set to true. + optional string default_service = 3 [json_name = "defaultService"]; + + // When none of the specified hostRules match, the request is redirected to a + // URL specified by defaultUrlRedirect. Only one of defaultUrlRedirect, + // defaultService or defaultRouteAction.weightedBackendService can be set. Not + // supported when the URL map is bound to a target gRPC proxy. + optional HttpRedirectAction default_url_redirect = 4 + [json_name = "defaultUrlRedirect"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 5 [json_name = "description"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field is ignored when + // inserting a UrlMap. An up-to-date fingerprint must be provided in order to + // update the UrlMap, otherwise the request will fail with error 412 + // conditionNotMet. To see the latest fingerprint, make a get() request to + // retrieve a UrlMap. + optional string fingerprint = 6 [json_name = "fingerprint"]; + + // Specifies changes to request and response headers that need to take effect + // for the selected backendService. The headerAction specified here take + // effect after headerAction specified under pathMatcher. headerAction is not + // supported for load balancers that have their loadBalancingScheme set to + // EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy + // that has validateForProxyless field set to true. + optional HttpHeaderAction header_action = 7 [json_name = "headerAction"]; + + // The list of host rules to use against the URL. + repeated HostRule host_rules = 8 [json_name = "hostRules"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 9 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#urlMaps for url maps. + optional string kind = 10 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 11 [json_name = "name"]; + + // The list of named PathMatchers to use against the URL. + repeated PathMatcher path_matchers = 12 [json_name = "pathMatchers"]; + + // [Output Only] URL of the region where the regional URL map resides. This + // field is not applicable to global URL maps. You must specify this field as + // part of the HTTP request URL. It is not settable as a field in the request + // body. + optional string region = 13 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 14 [json_name = "selfLink"]; + + // The list of expected URL mapping tests. Request to update the UrlMap + // succeeds only if all test cases pass. You can specify a maximum of 100 + // tests per UrlMap. Not supported when the URL map is bound to a target gRPC + // proxy that has validateForProxyless field set to true. + repeated UrlMapTest tests = 15 [json_name = "tests"]; +} + +// Contains a list of UrlMap resources. +message UrlMapList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of UrlMap resources. + repeated UrlMap items = 2 [json_name = "items"]; + + // Type of resource. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +// Message for the expected URL mappings. +message UrlMapTest { + // Description of this test case. + optional string description = 1 [json_name = "description"]; + + // The expected output URL evaluated by the load balancer containing the + // scheme, host, path and query parameters. For rules that forward requests to + // backends, the test passes only when expectedOutputUrl matches the request + // forwarded by the load balancer to backends. For rules with urlRewrite, the + // test verifies that the forwarded request matches hostRewrite and + // pathPrefixRewrite in the urlRewrite action. When service is specified, + // expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test + // passes only if expectedOutputUrl matches the URL in the load balancer's + // redirect response. If urlRedirect specifies https_redirect, the test passes + // only if the scheme in expectedOutputUrl is also set to HTTPS. If + // urlRedirect specifies strip_query, the test passes only if + // expectedOutputUrl does not contain any query parameters. expectedOutputUrl + // is optional when service is specified. + optional string expected_output_url = 2 [json_name = "expectedOutputUrl"]; + + // For rules with urlRedirect, the test passes only if + // expectedRedirectResponseCode matches the HTTP status code in load + // balancer's redirect response. expectedRedirectResponseCode cannot be set + // when service is set. + optional int32 expected_redirect_response_code = 3 + [json_name = "expectedRedirectResponseCode"]; + + // HTTP headers for this request. If headers contains a host header, then host + // must also match the header value. + repeated UrlMapTestHeader headers = 4 [json_name = "headers"]; + + // Host portion of the URL. If headers contains a host header, then host must + // also match the header value. + optional string host = 5 [json_name = "host"]; + + // Path portion of the URL. + optional string path = 6 [json_name = "path"]; + + // Expected BackendService or BackendBucket resource the given URL should be + // mapped to. The service field cannot be set if expectedRedirectResponseCode + // is set. + optional string service = 7 [json_name = "service"]; +} + +// HTTP headers used in UrlMapTests. +message UrlMapTestHeader { + // Header name. + optional string name = 1 [json_name = "name"]; + + // Header value. + optional string value = 2 [json_name = "value"]; +} + +// Message representing the validation result for a UrlMap. +message UrlMapValidationResult { + repeated string load_errors = 1 [json_name = "loadErrors"]; + + // Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' + // indicates the reasons. + optional bool load_succeeded = 2 [json_name = "loadSucceeded"]; + + repeated TestFailure test_failures = 3 [json_name = "testFailures"]; + + // If successfully loaded, this field indicates whether the test passed. If + // false, 'testFailures's indicate the reason of failure. + optional bool test_passed = 4 [json_name = "testPassed"]; +} + +message UrlMapsValidateResponse { + optional UrlMapValidationResult result = 1 [json_name = "result"]; +} + +// The spec for modifying the path before sending the request to the matched +// backend service. +message UrlRewrite { + // Before forwarding the request to the selected service, the request's host + // header is replaced with contents of hostRewrite. The value must be from 1 + // to 255 characters. + optional string host_rewrite = 1 [json_name = "hostRewrite"]; + + // Before forwarding the request to the selected backend service, the matching + // portion of the request's path is replaced by pathPrefixRewrite. The value + // must be from 1 to 1024 characters. + optional string path_prefix_rewrite = 2 [json_name = "pathPrefixRewrite"]; + + // If specified, the pattern rewrites the URL path (based on the :path + // header) using the HTTP template syntax. A corresponding path_template_match + // must be specified. Any template variables must exist in the + // path_template_match field. - -At least one variable must be specified in + // the path_template_match field - You can omit variables from the rewritten + // URL - The * and ** operators cannot be matched unless they have a + // corresponding variable name - e.g. {format=*} or {var=**}. For example, a + // path_template_match of /static/{format=**} could be rewritten as + // /static/content/{format} to prefix /content to the URL. Variables can also + // be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be + // rewritten as /content/{format}/{country}/{suffix}. At least one non-empty + // routeRules[].matchRules[].path_template_match is required. Only one of + // path_prefix_rewrite or path_template_rewrite may be specified. + optional string path_template_rewrite = 3 [json_name = "pathTemplateRewrite"]; +} + +// In contrast to a single BackendService in HttpRouteAction to which all +// matching traffic is directed to, WeightedBackendService allows traffic to be +// split across multiple backend services. The volume of traffic for each +// backend service is proportional to the weight specified in each +// WeightedBackendService +message WeightedBackendService { + // The full or partial URL to the default BackendService resource. Before + // forwarding the request to backendService, the load balancer applies any + // relevant headerActions specified as part of this backendServiceWeight. + optional string backend_service = 1 [json_name = "backendService"]; + + // Specifies changes to request and response headers that need to take effect + // for the selected backendService. headerAction specified here take effect + // before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their + // loadBalancingScheme set to EXTERNAL. Not supported when the URL map is + // bound to a target gRPC proxy that has validateForProxyless field set to + // true. + optional HttpHeaderAction header_action = 2 [json_name = "headerAction"]; + + // Specifies the fraction of traffic sent to a backend service, computed as + // weight / (sum of all weightedBackendService weights in routeAction) . The + // selection of a backend service is determined only for new traffic. Once a + // user's request has been directed to a backend service, subsequent requests + // are sent to the same backend service as determined by the backend service's + // session affinity policy. Don't configure session affinity if you're using + // weighted traffic splitting. If you do, the weighted traffic splitting + // configuration takes precedence. The value must be from 0 to 1000. + optional uint32 weight = 3 [json_name = "weight"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_021.proto b/protos/google/cloud/compute/v1/internal/common_021.proto index 4d64b74ceb567..b5c9951bb68f4 100644 --- a/protos/google/cloud/compute/v1/internal/common_021.proto +++ b/protos/google/cloud/compute/v1/internal/common_021.proto @@ -15,1028 +15,75 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_001.proto"; -import "google/cloud/compute/v1/internal/common_003.proto"; -import "google/cloud/compute/v1/internal/common_020.proto"; -import "google/cloud/compute/v1/internal/common_034.proto"; -import "google/cloud/compute/v1/internal/common_039.proto"; -import "google/cloud/compute/v1/internal/common_081.proto"; -import "google/cloud/compute/v1/internal/common_145.proto"; - -message CustomerEncryptionKeyProtectedDisk { - // Decrypts data associated with the disk with a customer-supplied encryption - // key. - optional CustomerEncryptionKey disk_encryption_key = 1 - [json_name = "diskEncryptionKey"]; - - // Specifies a valid partial or full URL to an existing Persistent Disk - // resource. This field is only applicable for persistent disks. For example: - // "source": "/compute/v1/projects/project_id/zones/zone/disks/ disk_name - optional string source = 2 [json_name = "source"]; -} - -// A set of Display Device options -message DisplayDevice { - // Defines whether the instance has Display enabled. - optional bool enable_display = 1 [json_name = "enableDisplay"]; -} - -// A guest attributes entry. -message GuestAttributes { - // [Output Only] Type of the resource. Always compute#guestAttributes for - // guest attributes entry. - optional string kind = 1 [json_name = "kind"]; - - // The path to be queried. This can be the default namespace ('') or a nested - // namespace ('\/') or a specified key ('\/\'). - optional string query_path = 2 [json_name = "queryPath"]; - - // [Output Only] The value of the requested queried path. - optional GuestAttributesValue query_value = 3 [json_name = "queryValue"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 4 [json_name = "selfLink"]; - - // The key to search for. - optional string variable_key = 5 [json_name = "variableKey"]; - - // [Output Only] The value found for the requested key. - optional string variable_value = 6 [json_name = "variableValue"]; -} - -// A guest attributes namespace/key/value entry. -message GuestAttributesEntry { - // Key for the guest attribute entry. - optional string key = 1 [json_name = "key"]; - - // Namespace for the guest attribute entry. - optional string namespace = 2 [json_name = "namespace"]; - - // Value for the guest attribute entry. - optional string value = 3 [json_name = "value"]; -} - -// Array of guest attribute namespace/key/value tuples. -message GuestAttributesValue { - repeated GuestAttributesEntry items = 1 [json_name = "items"]; -} - -// Represents an Instance resource. An instance is a virtual machine that is -// hosted on Google Cloud Platform. For more information, read Virtual Machine -// Instances. -message Instance { - // Controls for advanced machine-related behavior features. - optional AdvancedMachineFeatures advanced_machine_features = 1 - [json_name = "advancedMachineFeatures"]; - - // Allows this instance to send and receive packets with non-matching - // destination or source IPs. This is required if you plan to use this - // instance to forward routes. For more information, see Enabling IP - // Forwarding . - optional bool can_ip_forward = 2 [json_name = "canIpForward"]; - - optional ConfidentialInstanceConfig confidential_instance_config = 3 - [json_name = "confidentialInstanceConfig"]; - - // [Output Only] The CPU platform used by this instance. - optional string cpu_platform = 4 [json_name = "cpuPlatform"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; - - // Whether the resource should be protected against deletion. - optional bool deletion_protection = 6 [json_name = "deletionProtection"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 7 [json_name = "description"]; - - // Array of disks associated with this instance. Persistent disks must be - // created before you can assign them. - repeated AttachedDisk disks = 8 [json_name = "disks"]; - - // Enables display device for the instance. - optional DisplayDevice display_device = 9 [json_name = "displayDevice"]; - - // Specifies a fingerprint for this resource, which is essentially a hash of - // the instance's contents and used for optimistic locking. The fingerprint is - // initially generated by Compute Engine and changes after every request to - // modify or update the instance. You must always provide an up-to-date - // fingerprint hash in order to update the instance. To see the latest - // fingerprint, make get() request to the instance. - optional string fingerprint = 10 [json_name = "fingerprint"]; - - // A list of the type and count of accelerator cards attached to the instance. - repeated AcceleratorConfig guest_accelerators = 11 - [json_name = "guestAccelerators"]; - - // Specifies the hostname of the instance. The specified hostname must be - // RFC1035 compliant. If hostname is not specified, the default hostname is - // [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and - // [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS. - optional string hostname = 12 [json_name = "hostname"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 13 [json_name = "id"]; - - // Encrypts suspended data for an instance with a customer-managed encryption - // key. If you are creating a new instance, this field will encrypt the local - // SSD and in-memory contents of the instance during the suspend operation. If - // you do not provide an encryption key when creating the instance, then the - // local SSD and in-memory contents will be encrypted using an automatically - // generated key during the suspend operation. - optional CustomerEncryptionKey instance_encryption_key = 45 - [json_name = "instanceEncryptionKey"]; - - // KeyRevocationActionType of the instance. Supported options are "STOP" and - // "NONE". The default value is "NONE" if it is not specified. - // KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED: Default value. This value is - // unused. - // NONE: Indicates user chose no operation. - // STOP: Indicates user chose to opt for VM shutdown on key revocation. - optional string key_revocation_action_type = 14 - [json_name = "keyRevocationActionType"]; - - // [Output Only] Type of the resource. Always compute#instance for instances. - optional string kind = 15 [json_name = "kind"]; - - // A fingerprint for this request, which is essentially a hash of the label's - // contents and used for optimistic locking. The fingerprint is initially - // generated by Compute Engine and changes after every request to modify or - // update labels. You must always provide an up-to-date fingerprint hash in - // order to update or change labels. To see the latest fingerprint, make get() - // request to the instance. - optional string label_fingerprint = 16 [json_name = "labelFingerprint"]; - - // Labels to apply to this instance. These can be later modified by the - // setLabels method. - map labels = 17 [json_name = "labels"]; - - // [Output Only] Last start timestamp in RFC3339 text format. - optional string last_start_timestamp = 18 [json_name = "lastStartTimestamp"]; - - // [Output Only] Last stop timestamp in RFC3339 text format. - optional string last_stop_timestamp = 19 [json_name = "lastStopTimestamp"]; - - // [Output Only] Last suspended timestamp in RFC3339 text format. - optional string last_suspended_timestamp = 20 - [json_name = "lastSuspendedTimestamp"]; - - // Full or partial URL of the machine type resource to use for this instance, - // in the format: zones/zone/machineTypes/machine-type. This is provided by - // the client when the instance is created. For example, the following is a - // valid partial url to a predefined machine type: - // zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine - // type, provide a URL to a machine type in the following format, where CPUS - // is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the - // total memory for this instance. Memory must be a multiple of 256 MB and - // must be supplied in MB (e.g. 5 GB of memory is 5120 MB): - // zones/zone/machineTypes/custom-CPUS-MEMORY For example: - // zones/us-central1-f/machineTypes/custom-4-5120 For a full list of - // restrictions, read the Specifications for custom machine types. - optional string machine_type = 21 [json_name = "machineType"]; - - // The metadata key/value pairs assigned to this instance. This includes - // custom metadata and predefined keys. - optional Metadata metadata = 22 [json_name = "metadata"]; - - // Specifies a minimum CPU platform for the VM instance. Applicable values are - // the friendly names of CPU platforms, such as minCpuPlatform: "Intel - // Haswell" or minCpuPlatform: "Intel Sandy Bridge". - optional string min_cpu_platform = 23 [json_name = "minCpuPlatform"]; - - // The name of the resource, provided by the client when initially creating - // the resource. The resource name must be 1-63 characters long, and comply - // with RFC1035. Specifically, the name must be 1-63 characters long and match - // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be - // a dash, lowercase letter, or digit, except the last character, which cannot - // be a dash. - optional string name = 24 [json_name = "name"]; - - // An array of network configurations for this instance. These specify how - // interfaces are configured to interact with other network services, such as - // connecting to the internet. Multiple interfaces are supported per instance. - repeated NetworkInterface network_interfaces = 25 - [json_name = "networkInterfaces"]; - - optional NetworkPerformanceConfig network_performance_config = 26 - [json_name = "networkPerformanceConfig"]; - - // Input only. [Input Only] Additional params passed with the request, but not - // persisted as part of resource payload. - optional InstanceParams params = 27 [json_name = "params"]; - - // The private IPv6 google access type for the VM. If not specified, use - // INHERIT_FROM_SUBNETWORK as default. - // ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE: Bidirectional private IPv6 access - // to/from Google services. If specified, the subnetwork who is attached to - // the instance's default network interface will be assigned an internal IPv6 - // prefix if it doesn't have before. - // ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE: Outbound private IPv6 access from VMs - // in this subnet to Google services. If specified, the subnetwork who is - // attached to the instance's default network interface will be assigned an - // internal IPv6 prefix if it doesn't have before. - // INHERIT_FROM_SUBNETWORK: Each network interface inherits - // PrivateIpv6GoogleAccess from its subnetwork. - optional string private_ipv6_google_access = 28 - [json_name = "privateIpv6GoogleAccess"]; - - // Specifies the reservations that this instance can consume from. - optional ReservationAffinity reservation_affinity = 29 - [json_name = "reservationAffinity"]; - - // Resource policies applied to this instance. - repeated string resource_policies = 30 [json_name = "resourcePolicies"]; - - // [Output Only] Specifies values set for instance attributes as compared to - // the values requested by user in the corresponding input only field. - optional ResourceStatus resource_status = 31 [json_name = "resourceStatus"]; - - // [Output Only] Reserved for future use. - optional bool satisfies_pzi = 46 [json_name = "satisfiesPzi"]; - - // [Output Only] Reserved for future use. - optional bool satisfies_pzs = 32 [json_name = "satisfiesPzs"]; - - // Sets the scheduling options for this instance. - optional Scheduling scheduling = 33 [json_name = "scheduling"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 34 [json_name = "selfLink"]; - - // A list of service accounts, with their specified scopes, authorized for - // this instance. Only one service account per VM instance is supported. - // Service accounts generate access tokens that can be accessed through the - // metadata server and used to authenticate applications on the instance. See - // Service Accounts for more information. - repeated ServiceAccount service_accounts = 35 [json_name = "serviceAccounts"]; - - optional ShieldedInstanceConfig shielded_instance_config = 36 - [json_name = "shieldedInstanceConfig"]; - - optional ShieldedInstanceIntegrityPolicy shielded_instance_integrity_policy = - 37 [json_name = "shieldedInstanceIntegrityPolicy"]; - - // Source machine image - optional string source_machine_image = 38 [json_name = "sourceMachineImage"]; - - // Source machine image encryption key when creating an instance from a - // machine image. - optional CustomerEncryptionKey source_machine_image_encryption_key = 39 - [json_name = "sourceMachineImageEncryptionKey"]; - - // [Output Only] Whether a VM has been restricted for start because Compute - // Engine has detected suspicious activity. - optional bool start_restricted = 40 [json_name = "startRestricted"]; - - // [Output Only] The status of the instance. One of the following values: - // PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, - // and TERMINATED. For more information about the status of the instance, see - // Instance life cycle. - // DEPROVISIONING: The instance is halted and we are performing tear down - // tasks like network deprogramming, releasing quota, IP, tearing down disks - // etc. - // PROVISIONING: Resources are being allocated for the instance. - // REPAIRING: The instance is in repair. - // RUNNING: The instance is running. - // STAGING: All required resources have been allocated and the instance is - // being started. - // STOPPED: The instance has stopped successfully. - // STOPPING: The instance is currently stopping (either being deleted or - // killed). - // SUSPENDED: The instance has suspended. - // SUSPENDING: The instance is suspending. - // TERMINATED: The instance has stopped (either by explicit action or - // underlying failure). - optional string status = 41 [json_name = "status"]; - - // [Output Only] An optional, human-readable explanation of the status. - optional string status_message = 42 [json_name = "statusMessage"]; - - // Tags to apply to this instance. Tags are used to identify valid sources or - // targets for network firewalls and are specified by the client during - // instance creation. The tags can be later modified by the setTags method. - // Each tag within the list must comply with RFC1035. Multiple tags can be - // specified via the 'tags.items' field. - optional Tags tags = 43 [json_name = "tags"]; - - // [Output Only] URL of the zone where the instance resides. You must specify - // this field as part of the HTTP request URL. It is not settable as a field - // in the request body. - optional string zone = 44 [json_name = "zone"]; -} - -message InstanceAggregatedList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // An object that contains a list of instances scoped by zone. - map items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#instanceAggregatedList for - // aggregated lists of Instance resources. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// Contains a list of instances. -message InstanceList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of Instance resources. - repeated Instance items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#instanceList for lists of - // Instance resources. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -// Contains a list of instance referrers. -message InstanceListReferrers { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of Reference resources. - repeated Reference items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#instanceListReferrers for - // lists of Instance referrers. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -// Additional instance params. -message InstanceParams { - // Resource manager tags to be bound to the instance. Tag keys and values have - // the same definition as resource manager tags. Keys must be in the format - // `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The - // field is ignored (both PUT & PATCH) when empty. - map resource_manager_tags = 1 - [json_name = "resourceManagerTags"]; -} - -message InstancesAddResourcePoliciesRequest { - // Resource policies to be added to this instance. - repeated string resource_policies = 1 [json_name = "resourcePolicies"]; -} - -message InstancesGetEffectiveFirewallsResponse { - // [Output Only] Effective firewalls from firewall policies. - repeated InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy - firewall_policys = 1 [json_name = "firewallPolicys"]; - - // Effective firewalls on the instance. - repeated Firewall firewalls = 2 [json_name = "firewalls"]; -} - -message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { - // [Output Only] Deprecated, please use short name instead. The display name - // of the firewall policy. - optional string display_name = 1 [json_name = "displayName"]; - - // [Output Only] The name of the firewall policy. - optional string name = 2 [json_name = "name"]; - - // [Output Only] The packet mirroring rules that apply to the instance. - repeated FirewallPolicyRule packet_mirroring_rules = 7 - [json_name = "packetMirroringRules"]; - - // [Output only] Priority of firewall policy association. Not applicable for - // type=HIERARCHY. - optional int32 priority = 6 [json_name = "priority"]; - - // [Output Only] The rules that apply to the instance. Only rules that target - // the specific VM instance are returned if target service accounts or target - // secure tags are specified in the rules. - repeated FirewallPolicyRule rules = 3 [json_name = "rules"]; - - // [Output Only] The short name of the firewall policy. - optional string short_name = 4 [json_name = "shortName"]; - - // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, - // NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. - // HIERARCHY: - // NETWORK: - // NETWORK_REGIONAL: - // SYSTEM_GLOBAL: - // SYSTEM_REGIONAL: - // UNSPECIFIED: - optional string type = 5 [json_name = "type"]; -} - -message InstancesRemoveResourcePoliciesRequest { - // Resource policies to be removed from this instance. - repeated string resource_policies = 1 [json_name = "resourcePolicies"]; -} - -message InstancesReportHostAsFaultyRequest { - // The disruption schedule for the VM. Required field, only allows IMMEDIATE. - // DISRUPTION_SCHEDULE_UNSPECIFIED: Not used. Required as per aip/126. - // FUTURE: Delay disruption for caller control. Will be default soon. - // IMMEDIATE: Default value. Disrupt the VM immediately. - optional string disruption_schedule = 1 [json_name = "disruptionSchedule"]; - - repeated InstancesReportHostAsFaultyRequestFaultReason fault_reasons = 2 - [json_name = "faultReasons"]; -} - -message InstancesReportHostAsFaultyRequestFaultReason { - // BEHAVIOR_UNSPECIFIED: Public reportable behaviors - // PERFORMANCE: - // SILENT_DATA_CORRUPTION: - // UNRECOVERABLE_GPU_ERROR: - optional string behavior = 1 [json_name = "behavior"]; - - optional string description = 2 [json_name = "description"]; -} - -message InstancesScopedList { - // [Output Only] A list of instances contained in this scope. - repeated Instance instances = 1 [json_name = "instances"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning which replaces the list of instances - // when the list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message InstancesSetLabelsRequest { - // Fingerprint of the previous set of labels for this resource, used to - // prevent conflicts. Provide the latest fingerprint value when making a - // request to add or change labels. - optional string label_fingerprint = 1 [json_name = "labelFingerprint"]; - - map labels = 2 [json_name = "labels"]; -} - -message InstancesSetMachineResourcesRequest { - // A list of the type and count of accelerator cards attached to the instance. - repeated AcceleratorConfig guest_accelerators = 1 - [json_name = "guestAccelerators"]; -} - -message InstancesSetMachineTypeRequest { - // Full or partial URL of the machine type resource. See Machine Types for a - // full list of machine types. For example: - // zones/us-central1-f/machineTypes/n1-standard-1 - optional string machine_type = 1 [json_name = "machineType"]; -} - -message InstancesSetMinCpuPlatformRequest { - // Minimum cpu/platform this instance should be started at. - optional string min_cpu_platform = 1 [json_name = "minCpuPlatform"]; -} - -message InstancesSetNameRequest { - // The current name of this resource, used to prevent conflicts. Provide the - // latest name when making a request to change name. - optional string current_name = 1 [json_name = "currentName"]; - - // The name to be applied to the instance. Needs to be RFC 1035 compliant. - optional string name = 2 [json_name = "name"]; -} - -message InstancesSetSecurityPolicyRequest { - // The network interfaces that the security policy will be applied to. Network - // interfaces use the nicN naming format. You can only set a security policy - // for network interfaces with an access config. - repeated string network_interfaces = 1 [json_name = "networkInterfaces"]; - - // A full or partial URL to a security policy to add to this instance. If this - // field is set to an empty string it will remove the associated security - // policy. - optional string security_policy = 2 [json_name = "securityPolicy"]; -} - -message InstancesSetServiceAccountRequest { - // Email address of the service account. - optional string email = 1 [json_name = "email"]; - - // The list of scopes to be made available for this service account. - repeated string scopes = 2 [json_name = "scopes"]; -} - -message InstancesStartWithEncryptionKeyRequest { - // Array of disks associated with this instance that are protected with a - // customer-supplied encryption key. In order to start the instance, the disk - // url and its corresponding key must be provided. If the disk is not - // protected with a customer-supplied encryption key it should not be - // specified. - repeated CustomerEncryptionKeyProtectedDisk disks = 1 [json_name = "disks"]; -} - -// Represents a reference to a resource. -message Reference { - // [Output Only] Type of the resource. Always compute#reference for - // references. - optional string kind = 1 [json_name = "kind"]; - - // A description of the reference type with no implied semantics. Possible - // values include: 1. MEMBER_OF - optional string reference_type = 2 [json_name = "referenceType"]; - - // URL of the resource which refers to the target. - optional string referrer = 3 [json_name = "referrer"]; - - // URL of the resource to which this reference points. - optional string target = 4 [json_name = "target"]; -} - -// Contains output only fields. Use this sub-message for actual values set on -// Instance attributes as compared to the value requested by the user (intent) -// in their instance CRUD calls. -message ResourceStatus { - // [Output Only] The precise location of your instance within the zone's data - // center, including the block, sub-block, and host. The field is formatted as - // follows: blockId/subBlockId/hostId. - optional string physical_host = 1 [json_name = "physicalHost"]; - - // [Output Only] A series of fields containing the global name of the Compute - // Engine cluster, as well as the ID of the block, sub-block, and host on - // which the running instance is located. - optional ResourceStatusPhysicalHostTopology physical_host_topology = 4 - [json_name = "physicalHostTopology"]; - - optional ResourceStatusScheduling scheduling = 3 [json_name = "scheduling"]; - - optional UpcomingMaintenance upcoming_maintenance = 2 - [json_name = "upcomingMaintenance"]; -} - -// Represents the physical host topology of the host on which the VM is running. -message ResourceStatusPhysicalHostTopology { - // [Output Only] The ID of the block in which the running instance is located. - // Instances within the same block experience low network latency. - optional string block = 1 [json_name = "block"]; - - // [Output Only] The global name of the Compute Engine cluster where the - // running instance is located. - optional string cluster = 2 [json_name = "cluster"]; - - // [Output Only] The ID of the host on which the running instance is located. - // Instances on the same host experience the lowest possible network latency. - optional string host = 3 [json_name = "host"]; - - // [Output Only] The ID of the sub-block in which the running instance is - // located. Instances in the same sub-block experience lower network latency - // than instances in the same block. - optional string subblock = 4 [json_name = "subblock"]; -} - -message ResourceStatusScheduling { - // Specifies the availability domain to place the instance in. The value must - // be a number between 1 and the number of availability domains specified in - // the spread placement policy attached to the instance. - optional int32 availability_domain = 1 [json_name = "availabilityDomain"]; -} - -// An instance's screenshot. -message Screenshot { - // [Output Only] The Base64-encoded screenshot data. - optional string contents = 1 [json_name = "contents"]; - - // [Output Only] Type of the resource. Always compute#screenshot for the - // screenshots. - optional string kind = 2 [json_name = "kind"]; -} - -// An instance serial console output. -message SerialPortOutput { - // [Output Only] The contents of the console output. - optional string contents = 1 [json_name = "contents"]; - - // [Output Only] Type of the resource. Always compute#serialPortOutput for - // serial port output. - optional string kind = 2 [json_name = "kind"]; - - // [Output Only] The position of the next byte of content, regardless of - // whether the content exists, following the output returned in the `contents` - // property. Use this value in the next request as the start parameter. - optional string next = 3 [json_name = "next"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 4 [json_name = "selfLink"]; - - // The starting byte position of the output that was returned. This should - // match the start parameter sent with the request. If the serial console - // output exceeds the size of the buffer (1 MB), older output is overwritten - // by newer content. The output start value will indicate the byte position of - // the output that was returned, which might be different than the `start` - // value that was specified in the request. - optional string start = 5 [json_name = "start"]; -} - -// A Shielded Instance Identity. -message ShieldedInstanceIdentity { - // An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the - // Shielded Instance's vTPM. - optional ShieldedInstanceIdentityEntry encryption_key = 1 - [json_name = "encryptionKey"]; - - // [Output Only] Type of the resource. Always compute#shieldedInstanceIdentity - // for shielded Instance identity entry. - optional string kind = 2 [json_name = "kind"]; - - // An Attestation Key (AK) made by the RSA 2048 algorithm issued to the - // Shielded Instance's vTPM. - optional ShieldedInstanceIdentityEntry signing_key = 3 - [json_name = "signingKey"]; -} - -// A Shielded Instance Identity Entry. -message ShieldedInstanceIdentityEntry { - // A PEM-encoded X.509 certificate. This field can be empty. - optional string ek_cert = 1 [json_name = "ekCert"]; - - // A PEM-encoded public key. - optional string ek_pub = 2 [json_name = "ekPub"]; -} - -// The policy describes the baseline against which Instance boot integrity is -// measured. -message ShieldedInstanceIntegrityPolicy { - // Updates the integrity policy baseline using the measurements from the VM - // instance's most recent boot. - optional bool update_auto_learn_policy = 1 - [json_name = "updateAutoLearnPolicy"]; +message CustomerEncryptionKey { + // The name of the encryption key that is stored in Google Cloud KMS. For + // example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ + // key_region/cryptoKeys/key The fully-qualifed key name may be returned for + // resource GET requests. For example: "kmsKeyName": + // "projects/kms_project_id/locations/region/keyRings/ + // key_region/cryptoKeys/key /cryptoKeyVersions/1 + optional string kms_key_name = 1 [json_name = "kmsKeyName"]; + + // The service account being used for the encryption request for the given KMS + // key. If absent, the Compute Engine default service account is used. For + // example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ + optional string kms_key_service_account = 2 + [json_name = "kmsKeyServiceAccount"]; + + // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 + // base64 to either encrypt or decrypt this resource. You can provide either + // the rawKey or the rsaEncryptedKey. For example: "rawKey": + // "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" + optional string raw_key = 3 [json_name = "rawKey"]; + + // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit + // customer-supplied encryption key to either encrypt or decrypt this + // resource. You can provide either the rawKey or the rsaEncryptedKey. For + // example: "rsaEncryptedKey": + // "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH + // z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD + // D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" + // The key must meet the following requirements before you can provide it to + // Compute Engine: 1. The key is wrapped using a RSA public key certificate + // provided by Google. 2. After being wrapped, the key must be encoded in RFC + // 4648 base64 encoding. Gets the RSA public key certificate provided by + // Google at: + // https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem + optional string rsa_encrypted_key = 4 [json_name = "rsaEncryptedKey"]; + + // [Output only] The RFC 4648 base64 encoded SHA-256 hash of the + // customer-supplied encryption key that protects this resource. + optional string sha256 = 5 [json_name = "sha256"]; +} + +// Guest OS features. +message GuestOsFeature { + // The ID of a supported feature. To add multiple values, use commas to + // separate values. Set to one or more of the following values: - + // VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - + // GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - + // SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more + // information, see Enabling guest operating system features. + // BARE_METAL_LINUX_COMPATIBLE: + // FEATURE_TYPE_UNSPECIFIED: + // GVNIC: + // IDPF: + // MULTI_IP_SUBNET: + // SECURE_BOOT: + // SEV_CAPABLE: + // SEV_LIVE_MIGRATABLE: + // SEV_LIVE_MIGRATABLE_V2: + // SEV_SNP_CAPABLE: + // SNP_SVSM_CAPABLE: + // TDX_CAPABLE: + // UEFI_COMPATIBLE: + // VIRTIO_SCSI_MULTIQUEUE: + // WINDOWS: + optional string type = 1 [json_name = "type"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_022.proto b/protos/google/cloud/compute/v1/internal/common_022.proto index 10fefe491625d..d98527ef0fd0b 100644 --- a/protos/google/cloud/compute/v1/internal/common_022.proto +++ b/protos/google/cloud/compute/v1/internal/common_022.proto @@ -15,43 +15,1028 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Deprecation status for a public resource. -message DeprecationStatus { - // An optional RFC3339 timestamp on or after which the state of this resource - // is intended to change to DELETED. This is only informational and the status - // will not change unless the client explicitly changes it. - optional string deleted = 1 [json_name = "deleted"]; - - // An optional RFC3339 timestamp on or after which the state of this resource - // is intended to change to DEPRECATED. This is only informational and the - // status will not change unless the client explicitly changes it. - optional string deprecated = 2 [json_name = "deprecated"]; - - // An optional RFC3339 timestamp on or after which the state of this resource - // is intended to change to OBSOLETE. This is only informational and the - // status will not change unless the client explicitly changes it. - optional string obsolete = 3 [json_name = "obsolete"]; - - // The URL of the suggested replacement for a deprecated resource. The - // suggested replacement resource must be the same kind of resource as the - // deprecated resource. - optional string replacement = 4 [json_name = "replacement"]; - - // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, - // OBSOLETE, or DELETED. Operations which communicate the end of life date for - // an image, can use ACTIVE. Operations which create a new resource using a - // DEPRECATED resource will return successfully, but with a warning indicating - // the deprecated resource and recommending its replacement. Operations which - // use OBSOLETE or DELETED resources will be rejected and result in an error. - // ACTIVE: - // DELETED: - // DEPRECATED: - // OBSOLETE: - optional string state = 5 [json_name = "state"]; +import "google/cloud/compute/v1/internal/common_001.proto"; +import "google/cloud/compute/v1/internal/common_003.proto"; +import "google/cloud/compute/v1/internal/common_021.proto"; +import "google/cloud/compute/v1/internal/common_034.proto"; +import "google/cloud/compute/v1/internal/common_039.proto"; +import "google/cloud/compute/v1/internal/common_081.proto"; +import "google/cloud/compute/v1/internal/common_146.proto"; + +message CustomerEncryptionKeyProtectedDisk { + // Decrypts data associated with the disk with a customer-supplied encryption + // key. + optional CustomerEncryptionKey disk_encryption_key = 1 + [json_name = "diskEncryptionKey"]; + + // Specifies a valid partial or full URL to an existing Persistent Disk + // resource. This field is only applicable for persistent disks. For example: + // "source": "/compute/v1/projects/project_id/zones/zone/disks/ disk_name + optional string source = 2 [json_name = "source"]; +} + +// A set of Display Device options +message DisplayDevice { + // Defines whether the instance has Display enabled. + optional bool enable_display = 1 [json_name = "enableDisplay"]; +} + +// A guest attributes entry. +message GuestAttributes { + // [Output Only] Type of the resource. Always compute#guestAttributes for + // guest attributes entry. + optional string kind = 1 [json_name = "kind"]; + + // The path to be queried. This can be the default namespace ('') or a nested + // namespace ('\/') or a specified key ('\/\'). + optional string query_path = 2 [json_name = "queryPath"]; + + // [Output Only] The value of the requested queried path. + optional GuestAttributesValue query_value = 3 [json_name = "queryValue"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 4 [json_name = "selfLink"]; + + // The key to search for. + optional string variable_key = 5 [json_name = "variableKey"]; + + // [Output Only] The value found for the requested key. + optional string variable_value = 6 [json_name = "variableValue"]; +} + +// A guest attributes namespace/key/value entry. +message GuestAttributesEntry { + // Key for the guest attribute entry. + optional string key = 1 [json_name = "key"]; + + // Namespace for the guest attribute entry. + optional string namespace = 2 [json_name = "namespace"]; + + // Value for the guest attribute entry. + optional string value = 3 [json_name = "value"]; +} + +// Array of guest attribute namespace/key/value tuples. +message GuestAttributesValue { + repeated GuestAttributesEntry items = 1 [json_name = "items"]; +} + +// Represents an Instance resource. An instance is a virtual machine that is +// hosted on Google Cloud Platform. For more information, read Virtual Machine +// Instances. +message Instance { + // Controls for advanced machine-related behavior features. + optional AdvancedMachineFeatures advanced_machine_features = 1 + [json_name = "advancedMachineFeatures"]; + + // Allows this instance to send and receive packets with non-matching + // destination or source IPs. This is required if you plan to use this + // instance to forward routes. For more information, see Enabling IP + // Forwarding . + optional bool can_ip_forward = 2 [json_name = "canIpForward"]; + + optional ConfidentialInstanceConfig confidential_instance_config = 3 + [json_name = "confidentialInstanceConfig"]; + + // [Output Only] The CPU platform used by this instance. + optional string cpu_platform = 4 [json_name = "cpuPlatform"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; + + // Whether the resource should be protected against deletion. + optional bool deletion_protection = 6 [json_name = "deletionProtection"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 7 [json_name = "description"]; + + // Array of disks associated with this instance. Persistent disks must be + // created before you can assign them. + repeated AttachedDisk disks = 8 [json_name = "disks"]; + + // Enables display device for the instance. + optional DisplayDevice display_device = 9 [json_name = "displayDevice"]; + + // Specifies a fingerprint for this resource, which is essentially a hash of + // the instance's contents and used for optimistic locking. The fingerprint is + // initially generated by Compute Engine and changes after every request to + // modify or update the instance. You must always provide an up-to-date + // fingerprint hash in order to update the instance. To see the latest + // fingerprint, make get() request to the instance. + optional string fingerprint = 10 [json_name = "fingerprint"]; + + // A list of the type and count of accelerator cards attached to the instance. + repeated AcceleratorConfig guest_accelerators = 11 + [json_name = "guestAccelerators"]; + + // Specifies the hostname of the instance. The specified hostname must be + // RFC1035 compliant. If hostname is not specified, the default hostname is + // [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and + // [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS. + optional string hostname = 12 [json_name = "hostname"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 13 [json_name = "id"]; + + // Encrypts suspended data for an instance with a customer-managed encryption + // key. If you are creating a new instance, this field will encrypt the local + // SSD and in-memory contents of the instance during the suspend operation. If + // you do not provide an encryption key when creating the instance, then the + // local SSD and in-memory contents will be encrypted using an automatically + // generated key during the suspend operation. + optional CustomerEncryptionKey instance_encryption_key = 45 + [json_name = "instanceEncryptionKey"]; + + // KeyRevocationActionType of the instance. Supported options are "STOP" and + // "NONE". The default value is "NONE" if it is not specified. + // KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED: Default value. This value is + // unused. + // NONE: Indicates user chose no operation. + // STOP: Indicates user chose to opt for VM shutdown on key revocation. + optional string key_revocation_action_type = 14 + [json_name = "keyRevocationActionType"]; + + // [Output Only] Type of the resource. Always compute#instance for instances. + optional string kind = 15 [json_name = "kind"]; + + // A fingerprint for this request, which is essentially a hash of the label's + // contents and used for optimistic locking. The fingerprint is initially + // generated by Compute Engine and changes after every request to modify or + // update labels. You must always provide an up-to-date fingerprint hash in + // order to update or change labels. To see the latest fingerprint, make get() + // request to the instance. + optional string label_fingerprint = 16 [json_name = "labelFingerprint"]; + + // Labels to apply to this instance. These can be later modified by the + // setLabels method. + map labels = 17 [json_name = "labels"]; + + // [Output Only] Last start timestamp in RFC3339 text format. + optional string last_start_timestamp = 18 [json_name = "lastStartTimestamp"]; + + // [Output Only] Last stop timestamp in RFC3339 text format. + optional string last_stop_timestamp = 19 [json_name = "lastStopTimestamp"]; + + // [Output Only] Last suspended timestamp in RFC3339 text format. + optional string last_suspended_timestamp = 20 + [json_name = "lastSuspendedTimestamp"]; + + // Full or partial URL of the machine type resource to use for this instance, + // in the format: zones/zone/machineTypes/machine-type. This is provided by + // the client when the instance is created. For example, the following is a + // valid partial url to a predefined machine type: + // zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine + // type, provide a URL to a machine type in the following format, where CPUS + // is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the + // total memory for this instance. Memory must be a multiple of 256 MB and + // must be supplied in MB (e.g. 5 GB of memory is 5120 MB): + // zones/zone/machineTypes/custom-CPUS-MEMORY For example: + // zones/us-central1-f/machineTypes/custom-4-5120 For a full list of + // restrictions, read the Specifications for custom machine types. + optional string machine_type = 21 [json_name = "machineType"]; + + // The metadata key/value pairs assigned to this instance. This includes + // metadata keys that were explicitly defined for the instance. + optional Metadata metadata = 22 [json_name = "metadata"]; + + // Specifies a minimum CPU platform for the VM instance. Applicable values are + // the friendly names of CPU platforms, such as minCpuPlatform: "Intel + // Haswell" or minCpuPlatform: "Intel Sandy Bridge". + optional string min_cpu_platform = 23 [json_name = "minCpuPlatform"]; + + // The name of the resource, provided by the client when initially creating + // the resource. The resource name must be 1-63 characters long, and comply + // with RFC1035. Specifically, the name must be 1-63 characters long and match + // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must be + // a dash, lowercase letter, or digit, except the last character, which cannot + // be a dash. + optional string name = 24 [json_name = "name"]; + + // An array of network configurations for this instance. These specify how + // interfaces are configured to interact with other network services, such as + // connecting to the internet. Multiple interfaces are supported per instance. + repeated NetworkInterface network_interfaces = 25 + [json_name = "networkInterfaces"]; + + optional NetworkPerformanceConfig network_performance_config = 26 + [json_name = "networkPerformanceConfig"]; + + // Input only. [Input Only] Additional params passed with the request, but not + // persisted as part of resource payload. + optional InstanceParams params = 27 [json_name = "params"]; + + // The private IPv6 google access type for the VM. If not specified, use + // INHERIT_FROM_SUBNETWORK as default. + // ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE: Bidirectional private IPv6 access + // to/from Google services. If specified, the subnetwork who is attached to + // the instance's default network interface will be assigned an internal IPv6 + // prefix if it doesn't have before. + // ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE: Outbound private IPv6 access from VMs + // in this subnet to Google services. If specified, the subnetwork who is + // attached to the instance's default network interface will be assigned an + // internal IPv6 prefix if it doesn't have before. + // INHERIT_FROM_SUBNETWORK: Each network interface inherits + // PrivateIpv6GoogleAccess from its subnetwork. + optional string private_ipv6_google_access = 28 + [json_name = "privateIpv6GoogleAccess"]; + + // Specifies the reservations that this instance can consume from. + optional ReservationAffinity reservation_affinity = 29 + [json_name = "reservationAffinity"]; + + // Resource policies applied to this instance. + repeated string resource_policies = 30 [json_name = "resourcePolicies"]; + + // [Output Only] Specifies values set for instance attributes as compared to + // the values requested by user in the corresponding input only field. + optional ResourceStatus resource_status = 31 [json_name = "resourceStatus"]; + + // [Output Only] Reserved for future use. + optional bool satisfies_pzi = 46 [json_name = "satisfiesPzi"]; + + // [Output Only] Reserved for future use. + optional bool satisfies_pzs = 32 [json_name = "satisfiesPzs"]; + + // Sets the scheduling options for this instance. + optional Scheduling scheduling = 33 [json_name = "scheduling"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 34 [json_name = "selfLink"]; + + // A list of service accounts, with their specified scopes, authorized for + // this instance. Only one service account per VM instance is supported. + // Service accounts generate access tokens that can be accessed through the + // metadata server and used to authenticate applications on the instance. See + // Service Accounts for more information. + repeated ServiceAccount service_accounts = 35 [json_name = "serviceAccounts"]; + + optional ShieldedInstanceConfig shielded_instance_config = 36 + [json_name = "shieldedInstanceConfig"]; + + optional ShieldedInstanceIntegrityPolicy shielded_instance_integrity_policy = + 37 [json_name = "shieldedInstanceIntegrityPolicy"]; + + // Source machine image + optional string source_machine_image = 38 [json_name = "sourceMachineImage"]; + + // Source machine image encryption key when creating an instance from a + // machine image. + optional CustomerEncryptionKey source_machine_image_encryption_key = 39 + [json_name = "sourceMachineImageEncryptionKey"]; + + // [Output Only] Whether a VM has been restricted for start because Compute + // Engine has detected suspicious activity. + optional bool start_restricted = 40 [json_name = "startRestricted"]; + + // [Output Only] The status of the instance. One of the following values: + // PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, + // and TERMINATED. For more information about the status of the instance, see + // Instance life cycle. + // DEPROVISIONING: The instance is halted and we are performing tear down + // tasks like network deprogramming, releasing quota, IP, tearing down disks + // etc. + // PROVISIONING: Resources are being allocated for the instance. + // REPAIRING: The instance is in repair. + // RUNNING: The instance is running. + // STAGING: All required resources have been allocated and the instance is + // being started. + // STOPPED: The instance has stopped successfully. + // STOPPING: The instance is currently stopping (either being deleted or + // killed). + // SUSPENDED: The instance has suspended. + // SUSPENDING: The instance is suspending. + // TERMINATED: The instance has stopped (either by explicit action or + // underlying failure). + optional string status = 41 [json_name = "status"]; + + // [Output Only] An optional, human-readable explanation of the status. + optional string status_message = 42 [json_name = "statusMessage"]; + + // Tags to apply to this instance. Tags are used to identify valid sources or + // targets for network firewalls and are specified by the client during + // instance creation. The tags can be later modified by the setTags method. + // Each tag within the list must comply with RFC1035. Multiple tags can be + // specified via the 'tags.items' field. + optional Tags tags = 43 [json_name = "tags"]; + + // [Output Only] URL of the zone where the instance resides. You must specify + // this field as part of the HTTP request URL. It is not settable as a field + // in the request body. + optional string zone = 44 [json_name = "zone"]; +} + +message InstanceAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // An object that contains a list of instances scoped by zone. + map items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#instanceAggregatedList for + // aggregated lists of Instance resources. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; +} + +// Contains a list of instances. +message InstanceList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of Instance resources. + repeated Instance items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#instanceList for lists of + // Instance resources. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +// Contains a list of instance referrers. +message InstanceListReferrers { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of Reference resources. + repeated Reference items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#instanceListReferrers for + // lists of Instance referrers. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +// Additional instance params. +message InstanceParams { + // Resource manager tags to be bound to the instance. Tag keys and values have + // the same definition as resource manager tags. Keys must be in the format + // `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The + // field is ignored (both PUT & PATCH) when empty. + map resource_manager_tags = 1 + [json_name = "resourceManagerTags"]; +} + +message InstancesAddResourcePoliciesRequest { + // Resource policies to be added to this instance. + repeated string resource_policies = 1 [json_name = "resourcePolicies"]; +} + +message InstancesGetEffectiveFirewallsResponse { + // [Output Only] Effective firewalls from firewall policies. + repeated InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy + firewall_policys = 1 [json_name = "firewallPolicys"]; + + // Effective firewalls on the instance. + repeated Firewall firewalls = 2 [json_name = "firewalls"]; +} + +message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { + // [Output Only] Deprecated, please use short name instead. The display name + // of the firewall policy. + optional string display_name = 1 [json_name = "displayName"]; + + // [Output Only] The name of the firewall policy. + optional string name = 2 [json_name = "name"]; + + // [Output Only] The packet mirroring rules that apply to the instance. + repeated FirewallPolicyRule packet_mirroring_rules = 7 + [json_name = "packetMirroringRules"]; + + // [Output only] Priority of firewall policy association. Not applicable for + // type=HIERARCHY. + optional int32 priority = 6 [json_name = "priority"]; + + // [Output Only] The rules that apply to the instance. Only rules that target + // the specific VM instance are returned if target service accounts or target + // secure tags are specified in the rules. + repeated FirewallPolicyRule rules = 3 [json_name = "rules"]; + + // [Output Only] The short name of the firewall policy. + optional string short_name = 4 [json_name = "shortName"]; + + // [Output Only] The type of the firewall policy. Can be one of HIERARCHY, + // NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. + // HIERARCHY: + // NETWORK: + // NETWORK_REGIONAL: + // SYSTEM_GLOBAL: + // SYSTEM_REGIONAL: + // UNSPECIFIED: + optional string type = 5 [json_name = "type"]; +} + +message InstancesRemoveResourcePoliciesRequest { + // Resource policies to be removed from this instance. + repeated string resource_policies = 1 [json_name = "resourcePolicies"]; +} + +message InstancesReportHostAsFaultyRequest { + // The disruption schedule for the VM. Required field, only allows IMMEDIATE. + // DISRUPTION_SCHEDULE_UNSPECIFIED: Not used. Required as per aip/126. + // FUTURE: Delay disruption for caller control. Will be default soon. + // IMMEDIATE: Default value. Disrupt the VM immediately. + optional string disruption_schedule = 1 [json_name = "disruptionSchedule"]; + + repeated InstancesReportHostAsFaultyRequestFaultReason fault_reasons = 2 + [json_name = "faultReasons"]; +} + +message InstancesReportHostAsFaultyRequestFaultReason { + // BEHAVIOR_UNSPECIFIED: Public reportable behaviors + // PERFORMANCE: + // SILENT_DATA_CORRUPTION: + // UNRECOVERABLE_GPU_ERROR: + optional string behavior = 1 [json_name = "behavior"]; + + optional string description = 2 [json_name = "description"]; +} + +message InstancesScopedList { + // [Output Only] A list of instances contained in this scope. + repeated Instance instances = 1 [json_name = "instances"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning which replaces the list of instances + // when the list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +message InstancesSetLabelsRequest { + // Fingerprint of the previous set of labels for this resource, used to + // prevent conflicts. Provide the latest fingerprint value when making a + // request to add or change labels. + optional string label_fingerprint = 1 [json_name = "labelFingerprint"]; + + map labels = 2 [json_name = "labels"]; +} + +message InstancesSetMachineResourcesRequest { + // A list of the type and count of accelerator cards attached to the instance. + repeated AcceleratorConfig guest_accelerators = 1 + [json_name = "guestAccelerators"]; +} + +message InstancesSetMachineTypeRequest { + // Full or partial URL of the machine type resource. See Machine Types for a + // full list of machine types. For example: + // zones/us-central1-f/machineTypes/n1-standard-1 + optional string machine_type = 1 [json_name = "machineType"]; +} + +message InstancesSetMinCpuPlatformRequest { + // Minimum cpu/platform this instance should be started at. + optional string min_cpu_platform = 1 [json_name = "minCpuPlatform"]; +} + +message InstancesSetNameRequest { + // The current name of this resource, used to prevent conflicts. Provide the + // latest name when making a request to change name. + optional string current_name = 1 [json_name = "currentName"]; + + // The name to be applied to the instance. Needs to be RFC 1035 compliant. + optional string name = 2 [json_name = "name"]; +} + +message InstancesSetSecurityPolicyRequest { + // The network interfaces that the security policy will be applied to. Network + // interfaces use the nicN naming format. You can only set a security policy + // for network interfaces with an access config. + repeated string network_interfaces = 1 [json_name = "networkInterfaces"]; + + // A full or partial URL to a security policy to add to this instance. If this + // field is set to an empty string it will remove the associated security + // policy. + optional string security_policy = 2 [json_name = "securityPolicy"]; +} + +message InstancesSetServiceAccountRequest { + // Email address of the service account. + optional string email = 1 [json_name = "email"]; + + // The list of scopes to be made available for this service account. + repeated string scopes = 2 [json_name = "scopes"]; +} + +message InstancesStartWithEncryptionKeyRequest { + // Array of disks associated with this instance that are protected with a + // customer-supplied encryption key. In order to start the instance, the disk + // url and its corresponding key must be provided. If the disk is not + // protected with a customer-supplied encryption key it should not be + // specified. + repeated CustomerEncryptionKeyProtectedDisk disks = 1 [json_name = "disks"]; +} + +// Represents a reference to a resource. +message Reference { + // [Output Only] Type of the resource. Always compute#reference for + // references. + optional string kind = 1 [json_name = "kind"]; + + // A description of the reference type with no implied semantics. Possible + // values include: 1. MEMBER_OF + optional string reference_type = 2 [json_name = "referenceType"]; + + // URL of the resource which refers to the target. + optional string referrer = 3 [json_name = "referrer"]; + + // URL of the resource to which this reference points. + optional string target = 4 [json_name = "target"]; +} + +// Contains output only fields. Use this sub-message for actual values set on +// Instance attributes as compared to the value requested by the user (intent) +// in their instance CRUD calls. +message ResourceStatus { + // [Output Only] The precise location of your instance within the zone's data + // center, including the block, sub-block, and host. The field is formatted as + // follows: blockId/subBlockId/hostId. + optional string physical_host = 1 [json_name = "physicalHost"]; + + // [Output Only] A series of fields containing the global name of the Compute + // Engine cluster, as well as the ID of the block, sub-block, and host on + // which the running instance is located. + optional ResourceStatusPhysicalHostTopology physical_host_topology = 4 + [json_name = "physicalHostTopology"]; + + optional ResourceStatusScheduling scheduling = 3 [json_name = "scheduling"]; + + optional UpcomingMaintenance upcoming_maintenance = 2 + [json_name = "upcomingMaintenance"]; +} + +// Represents the physical host topology of the host on which the VM is running. +message ResourceStatusPhysicalHostTopology { + // [Output Only] The ID of the block in which the running instance is located. + // Instances within the same block experience low network latency. + optional string block = 1 [json_name = "block"]; + + // [Output Only] The global name of the Compute Engine cluster where the + // running instance is located. + optional string cluster = 2 [json_name = "cluster"]; + + // [Output Only] The ID of the host on which the running instance is located. + // Instances on the same host experience the lowest possible network latency. + optional string host = 3 [json_name = "host"]; + + // [Output Only] The ID of the sub-block in which the running instance is + // located. Instances in the same sub-block experience lower network latency + // than instances in the same block. + optional string subblock = 4 [json_name = "subblock"]; +} + +message ResourceStatusScheduling { + // Specifies the availability domain to place the instance in. The value must + // be a number between 1 and the number of availability domains specified in + // the spread placement policy attached to the instance. + optional int32 availability_domain = 1 [json_name = "availabilityDomain"]; +} + +// An instance's screenshot. +message Screenshot { + // [Output Only] The Base64-encoded screenshot data. + optional string contents = 1 [json_name = "contents"]; + + // [Output Only] Type of the resource. Always compute#screenshot for the + // screenshots. + optional string kind = 2 [json_name = "kind"]; +} + +// An instance serial console output. +message SerialPortOutput { + // [Output Only] The contents of the console output. + optional string contents = 1 [json_name = "contents"]; + + // [Output Only] Type of the resource. Always compute#serialPortOutput for + // serial port output. + optional string kind = 2 [json_name = "kind"]; + + // [Output Only] The position of the next byte of content, regardless of + // whether the content exists, following the output returned in the `contents` + // property. Use this value in the next request as the start parameter. + optional string next = 3 [json_name = "next"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 4 [json_name = "selfLink"]; + + // The starting byte position of the output that was returned. This should + // match the start parameter sent with the request. If the serial console + // output exceeds the size of the buffer (1 MB), older output is overwritten + // by newer content. The output start value will indicate the byte position of + // the output that was returned, which might be different than the `start` + // value that was specified in the request. + optional string start = 5 [json_name = "start"]; +} + +// A Shielded Instance Identity. +message ShieldedInstanceIdentity { + // An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the + // Shielded Instance's vTPM. + optional ShieldedInstanceIdentityEntry encryption_key = 1 + [json_name = "encryptionKey"]; + + // [Output Only] Type of the resource. Always compute#shieldedInstanceIdentity + // for shielded Instance identity entry. + optional string kind = 2 [json_name = "kind"]; + + // An Attestation Key (AK) made by the RSA 2048 algorithm issued to the + // Shielded Instance's vTPM. + optional ShieldedInstanceIdentityEntry signing_key = 3 + [json_name = "signingKey"]; +} + +// A Shielded Instance Identity Entry. +message ShieldedInstanceIdentityEntry { + // A PEM-encoded X.509 certificate. This field can be empty. + optional string ek_cert = 1 [json_name = "ekCert"]; + + // A PEM-encoded public key. + optional string ek_pub = 2 [json_name = "ekPub"]; +} + +// The policy describes the baseline against which Instance boot integrity is +// measured. +message ShieldedInstanceIntegrityPolicy { + // Updates the integrity policy baseline using the measurements from the VM + // instance's most recent boot. + optional bool update_auto_learn_policy = 1 + [json_name = "updateAutoLearnPolicy"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_023.proto b/protos/google/cloud/compute/v1/internal/common_023.proto index 4156e9e05ba2a..1bdd148916f68 100644 --- a/protos/google/cloud/compute/v1/internal/common_023.proto +++ b/protos/google/cloud/compute/v1/internal/common_023.proto @@ -15,242 +15,43 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_014.proto"; - -message DiskAggregatedList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of DisksScopedList resources. - map items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#diskAggregatedList for - // aggregated lists of persistent disks. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -message DisksAddResourcePoliciesRequest { - // Full or relative path to the resource policy to be added to this disk. You - // can only specify one resource policy. - repeated string resource_policies = 1 [json_name = "resourcePolicies"]; -} - -message DisksRemoveResourcePoliciesRequest { - // Resource policies to be removed from this disk. - repeated string resource_policies = 1 [json_name = "resourcePolicies"]; -} - -message DisksResizeRequest { - // The new size of the persistent disk, which is specified in GB. - optional string size_gb = 1 [json_name = "sizeGb"]; -} - -message DisksScopedList { - // [Output Only] A list of disks contained in this scope. - repeated Disk disks = 1 [json_name = "disks"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning which replaces the list of disks when - // the list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message DisksStartAsyncReplicationRequest { - // The secondary disk to start asynchronous replication to. You can provide - // this as a partial or full URL to the resource. For example, the following - // are valid values: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /disks/disk - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /disks/disk - projects/project/zones/zone/disks/disk - - // projects/project/regions/region/disks/disk - zones/zone/disks/disk - - // regions/region/disks/disk - optional string async_secondary_disk = 1 [json_name = "asyncSecondaryDisk"]; +// Deprecation status for a public resource. +message DeprecationStatus { + // An optional RFC3339 timestamp on or after which the state of this resource + // is intended to change to DELETED. This is only informational and the status + // will not change unless the client explicitly changes it. + optional string deleted = 1 [json_name = "deleted"]; + + // An optional RFC3339 timestamp on or after which the state of this resource + // is intended to change to DEPRECATED. This is only informational and the + // status will not change unless the client explicitly changes it. + optional string deprecated = 2 [json_name = "deprecated"]; + + // An optional RFC3339 timestamp on or after which the state of this resource + // is intended to change to OBSOLETE. This is only informational and the + // status will not change unless the client explicitly changes it. + optional string obsolete = 3 [json_name = "obsolete"]; + + // The URL of the suggested replacement for a deprecated resource. The + // suggested replacement resource must be the same kind of resource as the + // deprecated resource. + optional string replacement = 4 [json_name = "replacement"]; + + // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, + // OBSOLETE, or DELETED. Operations which communicate the end of life date for + // an image, can use ACTIVE. Operations which create a new resource using a + // DEPRECATED resource will return successfully, but with a warning indicating + // the deprecated resource and recommending its replacement. Operations which + // use OBSOLETE or DELETED resources will be rejected and result in an error. + // ACTIVE: + // DELETED: + // DEPRECATED: + // OBSOLETE: + optional string state = 5 [json_name = "state"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_024.proto b/protos/google/cloud/compute/v1/internal/common_024.proto index fa0f09e9702ec..d9b97686a9fbd 100644 --- a/protos/google/cloud/compute/v1/internal/common_024.proto +++ b/protos/google/cloud/compute/v1/internal/common_024.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_025.proto b/protos/google/cloud/compute/v1/internal/common_025.proto index fc741f36ef8d8..dd49b0e479cc4 100644 --- a/protos/google/cloud/compute/v1/internal/common_025.proto +++ b/protos/google/cloud/compute/v1/internal/common_025.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_026.proto b/protos/google/cloud/compute/v1/internal/common_026.proto index 8bc05ff9fe4b3..48e2c7316d2d6 100644 --- a/protos/google/cloud/compute/v1/internal/common_026.proto +++ b/protos/google/cloud/compute/v1/internal/common_026.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; // Represents a Disk Type resource. Google Compute Engine has two Disk Type // resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * diff --git a/protos/google/cloud/compute/v1/internal/common_027.proto b/protos/google/cloud/compute/v1/internal/common_027.proto index 466666a62e839..e31eb781bbed4 100644 --- a/protos/google/cloud/compute/v1/internal/common_027.proto +++ b/protos/google/cloud/compute/v1/internal/common_027.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_028.proto b/protos/google/cloud/compute/v1/internal/common_028.proto index fe5c17d566900..1d537d0a6b7ec 100644 --- a/protos/google/cloud/compute/v1/internal/common_028.proto +++ b/protos/google/cloud/compute/v1/internal/common_028.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_029.proto b/protos/google/cloud/compute/v1/internal/common_029.proto index 0dea528b54ff7..3c36bd63640bb 100644 --- a/protos/google/cloud/compute/v1/internal/common_029.proto +++ b/protos/google/cloud/compute/v1/internal/common_029.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_030.proto b/protos/google/cloud/compute/v1/internal/common_030.proto index cffa666ce9e97..ee0f760b28879 100644 --- a/protos/google/cloud/compute/v1/internal/common_030.proto +++ b/protos/google/cloud/compute/v1/internal/common_030.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -238,6 +238,10 @@ message Network { // - projects/{project_id}/global/networkProfiles/{network_profile_name} optional string network_profile = 19 [json_name = "networkProfile"]; + // Input only. [Input Only] Additional params passed with the request, but not + // persisted as part of resource payload. + optional NetworkParams params = 20 [json_name = "params"]; + // [Output Only] A list of network peerings for the resource. repeated NetworkPeering peerings = 14 [json_name = "peerings"]; @@ -366,6 +370,20 @@ message NetworkList { optional Warning warning = 6 [json_name = "warning"]; } +// Additional network parameters. +message NetworkParams { + // Tag keys/values directly bound to this resource. Tag keys and values have + // the same definition as resource manager tags. The field is allowed for + // INSERT only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format { : }. For example the following are + // valid inputs: * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : + // "tagValues/456"} * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: * Invalid combinations of ID & namespaced format is not supported. + // For instance: {"123/environment" : "tagValues/444"} is invalid. + map resource_manager_tags = 1 + [json_name = "resourceManagerTags"]; +} + // A network peering attached to a network resource. The message includes the // peering name, peer network, peering state, and a flag indicating whether // Google Compute Engine should automatically create routes for the peering. diff --git a/protos/google/cloud/compute/v1/internal/common_031.proto b/protos/google/cloud/compute/v1/internal/common_031.proto index 470d01c24b53e..23232fe16f676 100644 --- a/protos/google/cloud/compute/v1/internal/common_031.proto +++ b/protos/google/cloud/compute/v1/internal/common_031.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_032.proto b/protos/google/cloud/compute/v1/internal/common_032.proto index a74712f51ae6f..d6f4c787f9861 100644 --- a/protos/google/cloud/compute/v1/internal/common_032.proto +++ b/protos/google/cloud/compute/v1/internal/common_032.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_033.proto b/protos/google/cloud/compute/v1/internal/common_033.proto index 4f3189c7ef188..f69f93773dc09 100644 --- a/protos/google/cloud/compute/v1/internal/common_033.proto +++ b/protos/google/cloud/compute/v1/internal/common_033.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_034.proto b/protos/google/cloud/compute/v1/internal/common_034.proto index d58ee5c1097da..1cda0a1e98565 100644 --- a/protos/google/cloud/compute/v1/internal/common_034.proto +++ b/protos/google/cloud/compute/v1/internal/common_034.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_035.proto b/protos/google/cloud/compute/v1/internal/common_035.proto index ab4c8bf074dd2..1c78b96f427b9 100644 --- a/protos/google/cloud/compute/v1/internal/common_035.proto +++ b/protos/google/cloud/compute/v1/internal/common_035.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_036.proto b/protos/google/cloud/compute/v1/internal/common_036.proto index 4e12e9b3286b5..0bdfdd71406f3 100644 --- a/protos/google/cloud/compute/v1/internal/common_036.proto +++ b/protos/google/cloud/compute/v1/internal/common_036.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_037.proto b/protos/google/cloud/compute/v1/internal/common_037.proto index 87683f409401f..da91e1d022f9b 100644 --- a/protos/google/cloud/compute/v1/internal/common_037.proto +++ b/protos/google/cloud/compute/v1/internal/common_037.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_038.proto b/protos/google/cloud/compute/v1/internal/common_038.proto index 0e00e2bba8201..e81339ef5c6e9 100644 --- a/protos/google/cloud/compute/v1/internal/common_038.proto +++ b/protos/google/cloud/compute/v1/internal/common_038.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_039.proto b/protos/google/cloud/compute/v1/internal/common_039.proto index f54a278b8d87c..fd18a067f510d 100644 --- a/protos/google/cloud/compute/v1/internal/common_039.proto +++ b/protos/google/cloud/compute/v1/internal/common_039.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -121,6 +121,15 @@ message FirewallPolicyRuleMatcher { // is 5000. repeated string dest_ip_ranges = 1 [json_name = "destIpRanges"]; + // Network type of the traffic destination. Allowed values are: - UNSPECIFIED + // - INTERNET - NON_INTERNET + // INTERNET: + // INTRA_VPC: + // NON_INTERNET: + // UNSPECIFIED: + // VPC_NETWORKS: + optional string dest_network_type = 13 [json_name = "destNetworkType"]; + // Region codes whose IP addresses will be used to match for destination of // traffic. Should be specified as 2 letter country code defined as per ISO // 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes @@ -148,6 +157,18 @@ message FirewallPolicyRuleMatcher { // 5000. repeated string src_ip_ranges = 3 [json_name = "srcIpRanges"]; + // Network type of the traffic source. Allowed values are: - UNSPECIFIED - + // INTERNET - INTRA_VPC - NON_INTERNET - VPC_NETWORKS + // INTERNET: + // INTRA_VPC: + // NON_INTERNET: + // UNSPECIFIED: + // VPC_NETWORKS: + optional string src_network_type = 14 [json_name = "srcNetworkType"]; + + // Networks of the traffic source. It can be either a full or partial url. + repeated string src_networks = 15 [json_name = "srcNetworks"]; + // Region codes whose IP addresses will be used to match for source of // traffic. Should be specified as 2 letter country code defined as per ISO // 3166 alpha-2 country codes. ex."US" Maximum number of source region codes diff --git a/protos/google/cloud/compute/v1/internal/common_040.proto b/protos/google/cloud/compute/v1/internal/common_040.proto index 9f1fc62961768..97a6763582326 100644 --- a/protos/google/cloud/compute/v1/internal/common_040.proto +++ b/protos/google/cloud/compute/v1/internal/common_040.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_041.proto b/protos/google/cloud/compute/v1/internal/common_041.proto index e197f6c65bbb6..b889b3f6af5dc 100644 --- a/protos/google/cloud/compute/v1/internal/common_041.proto +++ b/protos/google/cloud/compute/v1/internal/common_041.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -326,6 +326,9 @@ message ForwardingRule { // [Output Only] Server-defined URL for the resource. optional string self_link = 27 [json_name = "selfLink"]; + // [Output Only] Server-defined URL for this resource with the resource id. + optional string self_link_with_id = 38 [json_name = "selfLinkWithId"]; + // Service Directory resources to register this forwarding rule with. // Currently, only supports a single Service Directory resource. repeated ForwardingRuleServiceDirectoryRegistration diff --git a/protos/google/cloud/compute/v1/internal/common_042.proto b/protos/google/cloud/compute/v1/internal/common_042.proto index 7c6516e5eb7c2..66e54a43ca72f 100644 --- a/protos/google/cloud/compute/v1/internal/common_042.proto +++ b/protos/google/cloud/compute/v1/internal/common_042.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_043.proto b/protos/google/cloud/compute/v1/internal/common_043.proto index a022f563b3e02..ff5d5b754385f 100644 --- a/protos/google/cloud/compute/v1/internal/common_043.proto +++ b/protos/google/cloud/compute/v1/internal/common_043.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_044.proto b/protos/google/cloud/compute/v1/internal/common_044.proto index b9f51fc0b268e..5bf2b27b7d767 100644 --- a/protos/google/cloud/compute/v1/internal/common_044.proto +++ b/protos/google/cloud/compute/v1/internal/common_044.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_045.proto b/protos/google/cloud/compute/v1/internal/common_045.proto index d50f3f2dbd46d..79e0715d550ff 100644 --- a/protos/google/cloud/compute/v1/internal/common_045.proto +++ b/protos/google/cloud/compute/v1/internal/common_045.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_046.proto b/protos/google/cloud/compute/v1/internal/common_046.proto index 64c801b940ee0..86f9651b04cba 100644 --- a/protos/google/cloud/compute/v1/internal/common_046.proto +++ b/protos/google/cloud/compute/v1/internal/common_046.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_047.proto b/protos/google/cloud/compute/v1/internal/common_047.proto index 357413e231465..baa5984d4ce31 100644 --- a/protos/google/cloud/compute/v1/internal/common_047.proto +++ b/protos/google/cloud/compute/v1/internal/common_047.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_048.proto b/protos/google/cloud/compute/v1/internal/common_048.proto index a44ce502839dc..f0bc977764953 100644 --- a/protos/google/cloud/compute/v1/internal/common_048.proto +++ b/protos/google/cloud/compute/v1/internal/common_048.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_146.proto"; // Maintenance Info for ReservationBlocks. message GroupMaintenanceInfo { diff --git a/protos/google/cloud/compute/v1/internal/common_049.proto b/protos/google/cloud/compute/v1/internal/common_049.proto index 2c8c45a049b37..509424e219ef4 100644 --- a/protos/google/cloud/compute/v1/internal/common_049.proto +++ b/protos/google/cloud/compute/v1/internal/common_049.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_050.proto b/protos/google/cloud/compute/v1/internal/common_050.proto index 8362e1dcfa82a..e8d3590ef5c83 100644 --- a/protos/google/cloud/compute/v1/internal/common_050.proto +++ b/protos/google/cloud/compute/v1/internal/common_050.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_051.proto b/protos/google/cloud/compute/v1/internal/common_051.proto index db64f28a9d8fb..bd830c16d99e7 100644 --- a/protos/google/cloud/compute/v1/internal/common_051.proto +++ b/protos/google/cloud/compute/v1/internal/common_051.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_052.proto b/protos/google/cloud/compute/v1/internal/common_052.proto index 2d2e009e7bd18..b295856eeddb6 100644 --- a/protos/google/cloud/compute/v1/internal/common_052.proto +++ b/protos/google/cloud/compute/v1/internal/common_052.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_053.proto b/protos/google/cloud/compute/v1/internal/common_053.proto index a9074aaf73e29..62caba69a32c6 100644 --- a/protos/google/cloud/compute/v1/internal/common_053.proto +++ b/protos/google/cloud/compute/v1/internal/common_053.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_054.proto b/protos/google/cloud/compute/v1/internal/common_054.proto index 2406c58fa83c0..4ea70fddf54fd 100644 --- a/protos/google/cloud/compute/v1/internal/common_054.proto +++ b/protos/google/cloud/compute/v1/internal/common_054.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_055.proto b/protos/google/cloud/compute/v1/internal/common_055.proto index fea84271b3f27..193b3a31959cf 100644 --- a/protos/google/cloud/compute/v1/internal/common_055.proto +++ b/protos/google/cloud/compute/v1/internal/common_055.proto @@ -15,14 +15,14 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_020.proto"; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_021.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; import "google/cloud/compute/v1/internal/common_033.proto"; // Represents an Image resource. You can use images to create boot disks for diff --git a/protos/google/cloud/compute/v1/internal/common_056.proto b/protos/google/cloud/compute/v1/internal/common_056.proto index d40004c4572dc..604ab784260d8 100644 --- a/protos/google/cloud/compute/v1/internal/common_056.proto +++ b/protos/google/cloud/compute/v1/internal/common_056.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_057.proto b/protos/google/cloud/compute/v1/internal/common_057.proto index af6750e09ce79..7e9f6c151a592 100644 --- a/protos/google/cloud/compute/v1/internal/common_057.proto +++ b/protos/google/cloud/compute/v1/internal/common_057.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_058.proto b/protos/google/cloud/compute/v1/internal/common_058.proto index 688b6c15eb86e..dbe3e1d6d44a8 100644 --- a/protos/google/cloud/compute/v1/internal/common_058.proto +++ b/protos/google/cloud/compute/v1/internal/common_058.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -24,8 +24,8 @@ package google.cloud.cpp.compute.v1; import "google/cloud/compute/v1/internal/common_001.proto"; import "google/cloud/compute/v1/internal/common_029.proto"; import "google/cloud/compute/v1/internal/common_078.proto"; -import "google/cloud/compute/v1/internal/common_119.proto"; -import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_120.proto"; +import "google/cloud/compute/v1/internal/common_146.proto"; message InstanceConsumptionData { // Resources consumed by the instance. diff --git a/protos/google/cloud/compute/v1/internal/common_059.proto b/protos/google/cloud/compute/v1/internal/common_059.proto index fd3b3800ad1f3..4d35b8515ccdd 100644 --- a/protos/google/cloud/compute/v1/internal/common_059.proto +++ b/protos/google/cloud/compute/v1/internal/common_059.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_060.proto b/protos/google/cloud/compute/v1/internal/common_060.proto index 72e2accb61987..7d52f07829641 100644 --- a/protos/google/cloud/compute/v1/internal/common_060.proto +++ b/protos/google/cloud/compute/v1/internal/common_060.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_061.proto b/protos/google/cloud/compute/v1/internal/common_061.proto index c59cce2628fe0..c747532857ec4 100644 --- a/protos/google/cloud/compute/v1/internal/common_061.proto +++ b/protos/google/cloud/compute/v1/internal/common_061.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_062.proto b/protos/google/cloud/compute/v1/internal/common_062.proto index 1bdcea503719f..91bc8eb6a6bd5 100644 --- a/protos/google/cloud/compute/v1/internal/common_062.proto +++ b/protos/google/cloud/compute/v1/internal/common_062.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_063.proto b/protos/google/cloud/compute/v1/internal/common_063.proto index 1324fd11b32e9..a7b000e904086 100644 --- a/protos/google/cloud/compute/v1/internal/common_063.proto +++ b/protos/google/cloud/compute/v1/internal/common_063.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_064.proto b/protos/google/cloud/compute/v1/internal/common_064.proto index 48645debe1873..7c315fe5a710b 100644 --- a/protos/google/cloud/compute/v1/internal/common_064.proto +++ b/protos/google/cloud/compute/v1/internal/common_064.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_065.proto b/protos/google/cloud/compute/v1/internal/common_065.proto index 494686dfe803a..6969fabe3636e 100644 --- a/protos/google/cloud/compute/v1/internal/common_065.proto +++ b/protos/google/cloud/compute/v1/internal/common_065.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_066.proto b/protos/google/cloud/compute/v1/internal/common_066.proto index f650291babb37..51d0dda48e0e1 100644 --- a/protos/google/cloud/compute/v1/internal/common_066.proto +++ b/protos/google/cloud/compute/v1/internal/common_066.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_067.proto b/protos/google/cloud/compute/v1/internal/common_067.proto index c7b19bf6d0d04..0d9564b6de4a2 100644 --- a/protos/google/cloud/compute/v1/internal/common_067.proto +++ b/protos/google/cloud/compute/v1/internal/common_067.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_068.proto b/protos/google/cloud/compute/v1/internal/common_068.proto index 16a884648abe6..607312fab86fe 100644 --- a/protos/google/cloud/compute/v1/internal/common_068.proto +++ b/protos/google/cloud/compute/v1/internal/common_068.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_069.proto b/protos/google/cloud/compute/v1/internal/common_069.proto index 0286dc7b2a6fe..01c127dcf642a 100644 --- a/protos/google/cloud/compute/v1/internal/common_069.proto +++ b/protos/google/cloud/compute/v1/internal/common_069.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_070.proto b/protos/google/cloud/compute/v1/internal/common_070.proto index bc64c337b5a23..4b005f2a44dbd 100644 --- a/protos/google/cloud/compute/v1/internal/common_070.proto +++ b/protos/google/cloud/compute/v1/internal/common_070.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_071.proto b/protos/google/cloud/compute/v1/internal/common_071.proto index 61cad2978f2cf..3fea923fd3bb6 100644 --- a/protos/google/cloud/compute/v1/internal/common_071.proto +++ b/protos/google/cloud/compute/v1/internal/common_071.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_072.proto b/protos/google/cloud/compute/v1/internal/common_072.proto index a18e79929048b..393eefb78c0bc 100644 --- a/protos/google/cloud/compute/v1/internal/common_072.proto +++ b/protos/google/cloud/compute/v1/internal/common_072.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_073.proto b/protos/google/cloud/compute/v1/internal/common_073.proto index 43fe999b67d4c..596aa61d4cc79 100644 --- a/protos/google/cloud/compute/v1/internal/common_073.proto +++ b/protos/google/cloud/compute/v1/internal/common_073.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_074.proto b/protos/google/cloud/compute/v1/internal/common_074.proto index f1e4688165c51..987dce8102f4c 100644 --- a/protos/google/cloud/compute/v1/internal/common_074.proto +++ b/protos/google/cloud/compute/v1/internal/common_074.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_075.proto b/protos/google/cloud/compute/v1/internal/common_075.proto index ac697b4bb8828..8e059bfa68617 100644 --- a/protos/google/cloud/compute/v1/internal/common_075.proto +++ b/protos/google/cloud/compute/v1/internal/common_075.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_076.proto b/protos/google/cloud/compute/v1/internal/common_076.proto index 3e1f9e88c9b55..5424ef727e7fc 100644 --- a/protos/google/cloud/compute/v1/internal/common_076.proto +++ b/protos/google/cloud/compute/v1/internal/common_076.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_077.proto b/protos/google/cloud/compute/v1/internal/common_077.proto index 34073bbde3abf..679b73060f3bb 100644 --- a/protos/google/cloud/compute/v1/internal/common_077.proto +++ b/protos/google/cloud/compute/v1/internal/common_077.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_078.proto b/protos/google/cloud/compute/v1/internal/common_078.proto index 813600f4fb650..ce6a458831f67 100644 --- a/protos/google/cloud/compute/v1/internal/common_078.proto +++ b/protos/google/cloud/compute/v1/internal/common_078.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_079.proto b/protos/google/cloud/compute/v1/internal/common_079.proto index 62a82089a6056..e85eee94f85aa 100644 --- a/protos/google/cloud/compute/v1/internal/common_079.proto +++ b/protos/google/cloud/compute/v1/internal/common_079.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -23,7 +23,7 @@ package google.cloud.cpp.compute.v1; import "google/cloud/compute/v1/internal/common_001.proto"; import "google/cloud/compute/v1/internal/common_003.proto"; -import "google/cloud/compute/v1/internal/common_020.proto"; +import "google/cloud/compute/v1/internal/common_021.proto"; import "google/cloud/compute/v1/internal/common_081.proto"; // Represents a machine image resource. A machine image is a Compute Engine diff --git a/protos/google/cloud/compute/v1/internal/common_080.proto b/protos/google/cloud/compute/v1/internal/common_080.proto index 67ace9f3d6d67..f46c018790dc7 100644 --- a/protos/google/cloud/compute/v1/internal/common_080.proto +++ b/protos/google/cloud/compute/v1/internal/common_080.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; // Represents a Machine Type resource. You can use specific machine types for // your VM instances based on performance and pricing requirements. For more diff --git a/protos/google/cloud/compute/v1/internal/common_081.proto b/protos/google/cloud/compute/v1/internal/common_081.proto index 85a653cb246fc..ab6da77f9f370 100644 --- a/protos/google/cloud/compute/v1/internal/common_081.proto +++ b/protos/google/cloud/compute/v1/internal/common_081.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_082.proto b/protos/google/cloud/compute/v1/internal/common_082.proto index af2068955ffac..2bdb1d81919b6 100644 --- a/protos/google/cloud/compute/v1/internal/common_082.proto +++ b/protos/google/cloud/compute/v1/internal/common_082.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_083.proto b/protos/google/cloud/compute/v1/internal/common_083.proto index dfb7a7c5b065a..d60b8a069b857 100644 --- a/protos/google/cloud/compute/v1/internal/common_083.proto +++ b/protos/google/cloud/compute/v1/internal/common_083.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_084.proto b/protos/google/cloud/compute/v1/internal/common_084.proto index 595b8e859f12a..ba4d45023e3ee 100644 --- a/protos/google/cloud/compute/v1/internal/common_084.proto +++ b/protos/google/cloud/compute/v1/internal/common_084.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_085.proto b/protos/google/cloud/compute/v1/internal/common_085.proto index 3a87ec2adce0d..04d2ab7e7a84b 100644 --- a/protos/google/cloud/compute/v1/internal/common_085.proto +++ b/protos/google/cloud/compute/v1/internal/common_085.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_086.proto b/protos/google/cloud/compute/v1/internal/common_086.proto index 75fb02713676e..d8f25825fe0ea 100644 --- a/protos/google/cloud/compute/v1/internal/common_086.proto +++ b/protos/google/cloud/compute/v1/internal/common_086.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_087.proto b/protos/google/cloud/compute/v1/internal/common_087.proto index 899265b871f35..1124fc1ac1017 100644 --- a/protos/google/cloud/compute/v1/internal/common_087.proto +++ b/protos/google/cloud/compute/v1/internal/common_087.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_088.proto b/protos/google/cloud/compute/v1/internal/common_088.proto index 932bbafbac119..9e7d397aa11bb 100644 --- a/protos/google/cloud/compute/v1/internal/common_088.proto +++ b/protos/google/cloud/compute/v1/internal/common_088.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_089.proto b/protos/google/cloud/compute/v1/internal/common_089.proto index 5286a304f6eca..c6727a1969643 100644 --- a/protos/google/cloud/compute/v1/internal/common_089.proto +++ b/protos/google/cloud/compute/v1/internal/common_089.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; // Represent a sole-tenant Node Type resource. Each node within a node group // must have a node type. A node type specifies the total amount of cores and diff --git a/protos/google/cloud/compute/v1/internal/common_090.proto b/protos/google/cloud/compute/v1/internal/common_090.proto index a84af29033c14..d33a0972de0ee 100644 --- a/protos/google/cloud/compute/v1/internal/common_090.proto +++ b/protos/google/cloud/compute/v1/internal/common_090.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_091.proto b/protos/google/cloud/compute/v1/internal/common_091.proto index 913a05f4357f9..13bb1a2ede6a5 100644 --- a/protos/google/cloud/compute/v1/internal/common_091.proto +++ b/protos/google/cloud/compute/v1/internal/common_091.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_092.proto b/protos/google/cloud/compute/v1/internal/common_092.proto index d86b73430f424..38d8258bc9696 100644 --- a/protos/google/cloud/compute/v1/internal/common_092.proto +++ b/protos/google/cloud/compute/v1/internal/common_092.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_093.proto b/protos/google/cloud/compute/v1/internal/common_093.proto index 80409fab18168..c2b3d0ac56357 100644 --- a/protos/google/cloud/compute/v1/internal/common_093.proto +++ b/protos/google/cloud/compute/v1/internal/common_093.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_094.proto b/protos/google/cloud/compute/v1/internal/common_094.proto index 312954bd8e87c..e045bb76cae1b 100644 --- a/protos/google/cloud/compute/v1/internal/common_094.proto +++ b/protos/google/cloud/compute/v1/internal/common_094.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_116.proto"; +import "google/cloud/compute/v1/internal/common_117.proto"; message PreconfiguredWafSet { // List of entities that are currently supported for WAF rules. diff --git a/protos/google/cloud/compute/v1/internal/common_095.proto b/protos/google/cloud/compute/v1/internal/common_095.proto index d9bfe76c73366..3776710a658f7 100644 --- a/protos/google/cloud/compute/v1/internal/common_095.proto +++ b/protos/google/cloud/compute/v1/internal/common_095.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_096.proto b/protos/google/cloud/compute/v1/internal/common_096.proto index 957d95e155b9e..a2e2a3cf08354 100644 --- a/protos/google/cloud/compute/v1/internal/common_096.proto +++ b/protos/google/cloud/compute/v1/internal/common_096.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_097.proto b/protos/google/cloud/compute/v1/internal/common_097.proto index d5e989716deb1..2fd29d391ee31 100644 --- a/protos/google/cloud/compute/v1/internal/common_097.proto +++ b/protos/google/cloud/compute/v1/internal/common_097.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_098.proto b/protos/google/cloud/compute/v1/internal/common_098.proto index 477a680144825..3c065037e7bdf 100644 --- a/protos/google/cloud/compute/v1/internal/common_098.proto +++ b/protos/google/cloud/compute/v1/internal/common_098.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_099.proto b/protos/google/cloud/compute/v1/internal/common_099.proto index 7084df0a233d2..6b970b0032770 100644 --- a/protos/google/cloud/compute/v1/internal/common_099.proto +++ b/protos/google/cloud/compute/v1/internal/common_099.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +import "google/cloud/compute/v1/internal/common_023.proto"; import "google/cloud/compute/v1/internal/common_098.proto"; // Represents a Region resource. A region is a geographical area where a diff --git a/protos/google/cloud/compute/v1/internal/common_100.proto b/protos/google/cloud/compute/v1/internal/common_100.proto index 58520000d6b74..db4a1084c75bf 100644 --- a/protos/google/cloud/compute/v1/internal/common_100.proto +++ b/protos/google/cloud/compute/v1/internal/common_100.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_101.proto b/protos/google/cloud/compute/v1/internal/common_101.proto index 9a388dff1b1d7..933fbf7a9f8b8 100644 --- a/protos/google/cloud/compute/v1/internal/common_101.proto +++ b/protos/google/cloud/compute/v1/internal/common_101.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_102.proto b/protos/google/cloud/compute/v1/internal/common_102.proto index 9bb4eaaf998b1..c073885fcb430 100644 --- a/protos/google/cloud/compute/v1/internal/common_102.proto +++ b/protos/google/cloud/compute/v1/internal/common_102.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_103.proto b/protos/google/cloud/compute/v1/internal/common_103.proto index fd18b4fa69f21..a319f37322b14 100644 --- a/protos/google/cloud/compute/v1/internal/common_103.proto +++ b/protos/google/cloud/compute/v1/internal/common_103.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_104.proto b/protos/google/cloud/compute/v1/internal/common_104.proto index 21a4f20a03bac..b131ab224ce6b 100644 --- a/protos/google/cloud/compute/v1/internal/common_104.proto +++ b/protos/google/cloud/compute/v1/internal/common_104.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_105.proto b/protos/google/cloud/compute/v1/internal/common_105.proto index f56d251449db6..f035346163da7 100644 --- a/protos/google/cloud/compute/v1/internal/common_105.proto +++ b/protos/google/cloud/compute/v1/internal/common_105.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_106.proto b/protos/google/cloud/compute/v1/internal/common_106.proto index c6484e6ab3ae3..e60533470a9ec 100644 --- a/protos/google/cloud/compute/v1/internal/common_106.proto +++ b/protos/google/cloud/compute/v1/internal/common_106.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_107.proto b/protos/google/cloud/compute/v1/internal/common_107.proto index 32bbaac6b5803..c2068fe6e1402 100644 --- a/protos/google/cloud/compute/v1/internal/common_107.proto +++ b/protos/google/cloud/compute/v1/internal/common_107.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_108.proto b/protos/google/cloud/compute/v1/internal/common_108.proto index e1deb4a4ec57e..7cd9759074b83 100644 --- a/protos/google/cloud/compute/v1/internal/common_108.proto +++ b/protos/google/cloud/compute/v1/internal/common_108.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_109.proto b/protos/google/cloud/compute/v1/internal/common_109.proto index 12f1f0c772201..53beefcc0f126 100644 --- a/protos/google/cloud/compute/v1/internal/common_109.proto +++ b/protos/google/cloud/compute/v1/internal/common_109.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_110.proto b/protos/google/cloud/compute/v1/internal/common_110.proto index 1addd419026bd..d952d2a56cc3a 100644 --- a/protos/google/cloud/compute/v1/internal/common_110.proto +++ b/protos/google/cloud/compute/v1/internal/common_110.proto @@ -15,13 +15,13 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_019.proto"; +import "google/cloud/compute/v1/internal/common_020.proto"; message RegionUrlMapsValidateRequest { // Content of the UrlMap to be validated. diff --git a/protos/google/cloud/compute/v1/internal/common_111.proto b/protos/google/cloud/compute/v1/internal/common_111.proto index 73e8f4ad146a0..5de855c125b40 100644 --- a/protos/google/cloud/compute/v1/internal/common_111.proto +++ b/protos/google/cloud/compute/v1/internal/common_111.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/v1/internal/common_112.proto b/protos/google/cloud/compute/v1/internal/common_112.proto index 7420640082ca7..1974847f516ab 100644 --- a/protos/google/cloud/compute/v1/internal/common_112.proto +++ b/protos/google/cloud/compute/v1/internal/common_112.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -57,6 +57,17 @@ message ReservationBlock { optional GroupMaintenanceInfo reservation_maintenance = 8 [json_name = "reservationMaintenance"]; + // [Output Only] The number of reservation subBlocks associated with this + // reservation block. + optional int32 reservation_sub_block_count = 13 + [json_name = "reservationSubBlockCount"]; + + // [Output Only] The number of in-use reservation subBlocks associated with + // this reservation block. If at least one VM is running on a subBlock, it is + // considered in-use. + optional int32 reservation_sub_block_in_use_count = 14 + [json_name = "reservationSubBlockInUseCount"]; + // [Output Only] Server-defined fully-qualified URL for this resource. optional string self_link = 9 [json_name = "selfLink"]; diff --git a/protos/google/cloud/compute/v1/internal/common_113.proto b/protos/google/cloud/compute/v1/internal/common_113.proto index ef20017849167..8b5798f818cdf 100644 --- a/protos/google/cloud/compute/v1/internal/common_113.proto +++ b/protos/google/cloud/compute/v1/internal/common_113.proto @@ -15,385 +15,95 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message ResourcePoliciesScopedList { - // A list of resourcePolicies contained in this scope. - repeated ResourcePolicy resource_policies = 1 - [json_name = "resourcePolicies"]; +// Represents a reservation subBlock resource. +message ReservationSubBlock { + // [Output Only] The number of hosts that are allocated in this reservation + // subBlock. + optional int32 count = 1 [json_name = "count"]; - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // Informational warning which replaces the list of resourcePolicies when the - // list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -// Represents a Resource Policy resource. You can use resource policies to -// schedule actions for some Compute Engine resources. For example, you can use -// them to schedule persistent disk snapshots. -message ResourcePolicy { // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - optional string description = 2 [json_name = "description"]; - - // Resource policy for disk consistency groups. - optional ResourcePolicyDiskConsistencyGroupPolicy - disk_consistency_group_policy = 13 - [json_name = "diskConsistencyGroupPolicy"]; - - // Resource policy for instances for placement configuration. - optional ResourcePolicyGroupPlacementPolicy group_placement_policy = 3 - [json_name = "groupPlacementPolicy"]; + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 4 [json_name = "id"]; - - // Resource policy for scheduling instance operations. - optional ResourcePolicyInstanceSchedulePolicy instance_schedule_policy = 5 - [json_name = "instanceSchedulePolicy"]; + optional string id = 3 [json_name = "id"]; - // [Output Only] Type of the resource. Always compute#resource_policies for - // resource policies. - optional string kind = 6 [json_name = "kind"]; + // [Output Only] The number of instances that are currently in use on this + // reservation subBlock. + optional int32 in_use_count = 4 [json_name = "inUseCount"]; - // The name of the resource, provided by the client when initially creating - // the resource. The resource name must be 1-63 characters long, and comply - // with RFC1035. Specifically, the name must be 1-63 characters long and match - // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be - // a dash, lowercase letter, or digit, except the last character, which cannot - // be a dash. - optional string name = 7 [json_name = "name"]; + // [Output Only] Type of the resource. Always compute#reservationSubBlock for + // reservation subBlocks. + optional string kind = 5 [json_name = "kind"]; - optional string region = 8 [json_name = "region"]; + // [Output Only] The name of this reservation subBlock generated by Google + // Compute Engine. The name must be 1-63 characters long, and comply with + // RFC1035 @pattern [a-z](?:[-a-z0-9]{0,61}[a-z0-9])? + optional string name = 6 [json_name = "name"]; - // [Output Only] The system status of the resource policy. - optional ResourcePolicyResourceStatus resource_status = 9 - [json_name = "resourceStatus"]; + // [Output Only] The physical topology of the reservation subBlock. + optional ReservationSubBlockPhysicalTopology physical_topology = 7 + [json_name = "physicalTopology"]; // [Output Only] Server-defined fully-qualified URL for this resource. - optional string self_link = 10 [json_name = "selfLink"]; + optional string self_link = 8 [json_name = "selfLink"]; - // Resource policy for persistent disks for creating snapshots. - optional ResourcePolicySnapshotSchedulePolicy snapshot_schedule_policy = 11 - [json_name = "snapshotSchedulePolicy"]; + // [Output Only] Server-defined URL for this resource with the resource id. + optional string self_link_with_id = 9 [json_name = "selfLinkWithId"]; - // [Output Only] The status of resource policy creation. - // CREATING: Resource policy is being created. - // DELETING: Resource policy is being deleted. - // EXPIRED: Resource policy is expired and will not run again. + // [Output Only] Status of the reservation subBlock. + // CREATING: Resources are being allocated for the reservation subBlock. + // DELETING: Reservation subBlock is currently being deleted. // INVALID: - // READY: Resource policy is ready to be used. - optional string status = 12 [json_name = "status"]; -} - -// Contains a list of resourcePolicies. -message ResourcePolicyAggregatedList { - optional string etag = 1 [json_name = "etag"]; - - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 2 [json_name = "id"]; - - // A list of ResourcePolicy resources. - map items = 3 [json_name = "items"]; - - // Type of resource. - optional string kind = 4 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 7 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; + // READY: Reservation subBlock has allocated all its resources. + optional string status = 10 [json_name = "status"]; - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 8 [json_name = "warning"]; -} - -// Time window specified for daily operations. -message ResourcePolicyDailyCycle { - // Defines a schedule with units measured in days. The value determines how - // many days pass between the start of each cycle. - optional int32 days_in_cycle = 1 [json_name = "daysInCycle"]; - - // [Output only] A predetermined duration for the window, automatically chosen - // to be the smallest possible in the given scenario. - optional string duration = 2 [json_name = "duration"]; - - // Start time of the window. This must be in UTC format that resolves to one - // of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 - // and 08:00 are valid. - optional string start_time = 3 [json_name = "startTime"]; + // [Output Only] Zone in which the reservation subBlock resides. + optional string zone = 11 [json_name = "zone"]; } -// Resource policy for disk consistency groups. -message ResourcePolicyDiskConsistencyGroupPolicy {} +message ReservationSubBlockPhysicalTopology { + // The hash of the capacity block within the cluster. + optional string block = 1 [json_name = "block"]; -// A GroupPlacementPolicy specifies resource placement configuration. It -// specifies the failure bucket separation -message ResourcePolicyGroupPlacementPolicy { - // The number of availability domains to spread instances across. If two - // instances are in different availability domain, they are not in the same - // low latency network. - optional int32 availability_domain_count = 1 - [json_name = "availabilityDomainCount"]; + // The cluster name of the reservation subBlock. + optional string cluster = 2 [json_name = "cluster"]; - // Specifies network collocation - // COLLOCATED: - // UNSPECIFIED_COLLOCATION: - optional string collocation = 2 [json_name = "collocation"]; - - // Number of VMs in this placement group. Google does not recommend that you - // use this field unless you use a compact policy and you want your policy to - // work only if it contains this exact number of VMs. - optional int32 vm_count = 3 [json_name = "vmCount"]; -} - -// Time window specified for hourly operations. -message ResourcePolicyHourlyCycle { - // [Output only] Duration of the time window, automatically chosen to be - // smallest possible in the given scenario. - optional string duration = 1 [json_name = "duration"]; - - // Defines a schedule with units measured in hours. The value determines how - // many hours pass between the start of each cycle. - optional int32 hours_in_cycle = 2 [json_name = "hoursInCycle"]; - - // Time within the window to start the operations. It must be in format - // "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - optional string start_time = 3 [json_name = "startTime"]; -} - -// An InstanceSchedulePolicy specifies when and how frequent certain operations -// are performed on the instance. -message ResourcePolicyInstanceSchedulePolicy { - // The expiration time of the schedule. The timestamp is an RFC3339 string. - optional string expiration_time = 1 [json_name = "expirationTime"]; - - // The start time of the schedule. The timestamp is an RFC3339 string. - optional string start_time = 2 [json_name = "startTime"]; - - // Specifies the time zone to be used in interpreting Schedule.schedule. The - // value of this field must be a time zone name from the tz database: - // https://wikipedia.org/wiki/Tz_database. - optional string time_zone = 3 [json_name = "timeZone"]; - - // Specifies the schedule for starting instances. - optional ResourcePolicyInstanceSchedulePolicySchedule vm_start_schedule = 4 - [json_name = "vmStartSchedule"]; - - // Specifies the schedule for stopping instances. - optional ResourcePolicyInstanceSchedulePolicySchedule vm_stop_schedule = 5 - [json_name = "vmStopSchedule"]; + // The hash of the capacity sub-block within the capacity block. + optional string sub_block = 3 [json_name = "subBlock"]; } -// Schedule for an instance operation. -message ResourcePolicyInstanceSchedulePolicySchedule { - // Specifies the frequency for the operation, using the unix-cron format. - optional string schedule = 1 [json_name = "schedule"]; +message ReservationSubBlocksGetResponse { + optional ReservationSubBlock resource = 1 [json_name = "resource"]; } -message ResourcePolicyList { - optional string etag = 1 [json_name = "etag"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 2 [json_name = "id"]; +// A list of reservation subBlocks under a single reservation. +message ReservationSubBlocksListResponse { + // Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; - // [Output Only] A list of ResourcePolicy resources. - repeated ResourcePolicy items = 3 [json_name = "items"]; + // A list of reservation subBlock resources. + repeated ReservationSubBlock items = 2 [json_name = "items"]; - // [Output Only] Type of resource.Always compute#resourcePoliciesList for - // listsof resourcePolicies - optional string kind = 4 [json_name = "kind"]; + // Type of the resource. Always compute#reservationSubBlock for a list of + // reservation subBlocks. + optional string kind = 3 [json_name = "kind"]; - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; + // This token allows you to get the next page of results for list requests. If + // the number of results is larger than maxResults, use the nextPageToken as a + // value for the query parameter pageToken in the next list request. + // Subsequent list requests will have their own nextPageToken to continue + // paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; - // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; + // Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -478,119 +188,6 @@ message ResourcePolicyList { optional string message = 3 [json_name = "message"]; } - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// Contains output only fields. Use this sub-message for all output fields set -// on ResourcePolicy. The internal structure of this "status" field should mimic -// the structure of ResourcePolicy proto specification. -message ResourcePolicyResourceStatus { - // [Output Only] Specifies a set of output values reffering to the - // instance_schedule_policy system status. This field should have the same - // name as corresponding policy field. - optional ResourcePolicyResourceStatusInstanceSchedulePolicyStatus - instance_schedule_policy = 1 [json_name = "instanceSchedulePolicy"]; -} - -message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus { - // [Output Only] The last time the schedule successfully ran. The timestamp is - // an RFC3339 string. - optional string last_run_start_time = 1 [json_name = "lastRunStartTime"]; - - // [Output Only] The next time the schedule is planned to run. The actual time - // might be slightly different. The timestamp is an RFC3339 string. - optional string next_run_start_time = 2 [json_name = "nextRunStartTime"]; -} - -// A snapshot schedule policy specifies when and how frequently snapshots are to -// be created for the target disk. Also specifies how many and how long these -// scheduled snapshots should be retained. -message ResourcePolicySnapshotSchedulePolicy { - // Retention policy applied to snapshots created by this resource policy. - optional ResourcePolicySnapshotSchedulePolicyRetentionPolicy - retention_policy = 1 [json_name = "retentionPolicy"]; - - // A Vm Maintenance Policy specifies what kind of infrastructure maintenance - // we are allowed to perform on this VM and when. Schedule that is applied to - // disks covered by this policy. - optional ResourcePolicySnapshotSchedulePolicySchedule schedule = 2 - [json_name = "schedule"]; - - // Properties with which snapshots are created such as labels, encryption - // keys. - optional ResourcePolicySnapshotSchedulePolicySnapshotProperties - snapshot_properties = 3 [json_name = "snapshotProperties"]; -} - -// Policy for retention of scheduled snapshots. -message ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - // Maximum age of the snapshot that is allowed to be kept. - optional int32 max_retention_days = 1 [json_name = "maxRetentionDays"]; - - // Specifies the behavior to apply to scheduled snapshots when the source disk - // is deleted. - // APPLY_RETENTION_POLICY: - // KEEP_AUTO_SNAPSHOTS: - // UNSPECIFIED_ON_SOURCE_DISK_DELETE: - optional string on_source_disk_delete = 2 [json_name = "onSourceDiskDelete"]; -} - -// A schedule for disks where the schedueled operations are performed. -message ResourcePolicySnapshotSchedulePolicySchedule { - optional ResourcePolicyDailyCycle daily_schedule = 1 - [json_name = "dailySchedule"]; - - optional ResourcePolicyHourlyCycle hourly_schedule = 2 - [json_name = "hourlySchedule"]; - - optional ResourcePolicyWeeklyCycle weekly_schedule = 3 - [json_name = "weeklySchedule"]; -} - -// Specified snapshot properties for scheduled snapshots created by this policy. -message ResourcePolicySnapshotSchedulePolicySnapshotProperties { - // Chain name that the snapshot is created in. - optional string chain_name = 1 [json_name = "chainName"]; - - // Indication to perform a 'guest aware' snapshot. - optional bool guest_flush = 2 [json_name = "guestFlush"]; - - // Labels to apply to scheduled snapshots. These can be later modified by the - // setLabels method. Label values may be empty. - map labels = 3 [json_name = "labels"]; - - // Cloud Storage bucket storage location of the auto snapshot (regional or - // multi-regional). - repeated string storage_locations = 4 [json_name = "storageLocations"]; -} - -// Time window specified for weekly operations. -message ResourcePolicyWeeklyCycle { - // Up to 7 intervals/windows, one for each day of the week. - repeated ResourcePolicyWeeklyCycleDayOfWeek day_of_weeks = 1 - [json_name = "dayOfWeeks"]; -} - -message ResourcePolicyWeeklyCycleDayOfWeek { - // Defines a schedule that runs on specific days of the week. Specify one or - // more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, - // THURSDAY, FRIDAY, SATURDAY, SUNDAY. - // FRIDAY: - // INVALID: - // MONDAY: - // SATURDAY: - // SUNDAY: - // THURSDAY: - // TUESDAY: - // WEDNESDAY: - optional string day = 1 [json_name = "day"]; - - // [Output only] Duration of the time window, automatically chosen to be - // smallest possible in the given scenario. - optional string duration = 2 [json_name = "duration"]; - - // Time within the window to start the operations. It must be in format - // "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - optional string start_time = 3 [json_name = "startTime"]; + // Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_114.proto b/protos/google/cloud/compute/v1/internal/common_114.proto index 01ff2099df2c6..57e6391042e76 100644 --- a/protos/google/cloud/compute/v1/internal/common_114.proto +++ b/protos/google/cloud/compute/v1/internal/common_114.proto @@ -15,153 +15,393 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Route resource. A route defines a path from VM instances in the -// VPC network to a specific destination. This destination can be inside or -// outside the VPC network. For more information, read the Routes overview. -message Route { - // [Output Only] AS path. - repeated RouteAsPath as_paths = 1 [json_name = "asPaths"]; +message ResourcePoliciesScopedList { + // A list of resourcePolicies contained in this scope. + repeated ResourcePolicy resource_policies = 1 + [json_name = "resourcePolicies"]; + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // Informational warning which replaces the list of resourcePolicies when the + // list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +// Represents a Resource Policy resource. You can use resource policies to +// schedule actions for some Compute Engine resources. For example, you can use +// them to schedule persistent disk snapshots. +message ResourcePolicy { // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + optional string description = 2 [json_name = "description"]; - // An optional description of this resource. Provide this field when you - // create the resource. - optional string description = 3 [json_name = "description"]; + // Resource policy for disk consistency groups. + optional ResourcePolicyDiskConsistencyGroupPolicy + disk_consistency_group_policy = 13 + [json_name = "diskConsistencyGroupPolicy"]; - // The destination range of outgoing packets that this route applies to. Both - // IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) - // or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will - // be displayed using RFC 5952 compressed format. - optional string dest_range = 4 [json_name = "destRange"]; + // Resource policy for instances for placement configuration. + optional ResourcePolicyGroupPlacementPolicy group_placement_policy = 3 + [json_name = "groupPlacementPolicy"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 5 [json_name = "id"]; + optional string id = 4 [json_name = "id"]; - // [Output Only] Type of this resource. Always compute#routes for Route - // resources. + // Resource policy for scheduling instance operations. + optional ResourcePolicyInstanceSchedulePolicy instance_schedule_policy = 5 + [json_name = "instanceSchedulePolicy"]; + + // [Output Only] Type of the resource. Always compute#resource_policies for + // resource policies. optional string kind = 6 [json_name = "kind"]; - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a - // lowercase letter, and all following characters (except for the last - // character) must be a dash, lowercase letter, or digit. The last character - // must be a lowercase letter or digit. + // The name of the resource, provided by the client when initially creating + // the resource. The resource name must be 1-63 characters long, and comply + // with RFC1035. Specifically, the name must be 1-63 characters long and match + // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must be + // a dash, lowercase letter, or digit, except the last character, which cannot + // be a dash. optional string name = 7 [json_name = "name"]; - // Fully-qualified URL of the network that this route applies to. - optional string network = 8 [json_name = "network"]; - - // The URL to a gateway that should handle matching packets. You can only - // specify the internet gateway using a full or partial valid URL: projects/ - // project/global/gateways/default-internet-gateway - optional string next_hop_gateway = 9 [json_name = "nextHopGateway"]; - - // [Output Only] The full resource name of the Network Connectivity Center hub - // that will handle matching packets. - optional string next_hop_hub = 22 [json_name = "nextHopHub"]; - - // The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that - // should handle matching packets or the IP address of the forwarding Rule. - // For example, the following are all valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /forwardingRules/forwardingRule - - // regions/region/forwardingRules/forwardingRule If an IP address is provided, - // must specify an IPv4 address in dot-decimal notation or an IPv6 address in - // RFC 4291 format. For example, the following are all valid IP addresses: - - // 10.128.0.56 - 2001:db8::2d9:51:0:0 - 2001:db8:0:0:2d9:51:0:0 IPv6 addresses - // will be displayed using RFC 5952 compressed format (e.g. - // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. - optional string next_hop_ilb = 10 [json_name = "nextHopIlb"]; - - // The URL to an instance that should handle matching packets. You can specify - // this as a full or partial URL. For example: - // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/ - optional string next_hop_instance = 11 [json_name = "nextHopInstance"]; - - // [Output only] Internal fixed region-to-region cost that Google Cloud - // calculates based on factors such as network performance, distance, and - // available bandwidth between regions. - optional uint32 next_hop_inter_region_cost = 23 - [json_name = "nextHopInterRegionCost"]; - - // The network IP address of an instance that should handle matching packets. - // Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 - // address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC - // 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 - // addresses will be displayed using RFC 5952 compressed format (e.g. - // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. - optional string next_hop_ip = 12 [json_name = "nextHopIp"]; - - // [Output Only] Multi-Exit Discriminator, a BGP route metric that indicates - // the desirability of a particular route in a network. - optional uint32 next_hop_med = 24 [json_name = "nextHopMed"]; - - // The URL of the local network if it should handle matching packets. - optional string next_hop_network = 13 [json_name = "nextHopNetwork"]; - - // [Output Only] Indicates the origin of the route. Can be IGP (Interior - // Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. - // EGP: - // IGP: - // INCOMPLETE: - optional string next_hop_origin = 25 [json_name = "nextHopOrigin"]; - - // [Output Only] The network peering name that should handle matching packets, - // which should conform to RFC1035. - optional string next_hop_peering = 14 [json_name = "nextHopPeering"]; - - // The URL to a VpnTunnel that should handle matching packets. - optional string next_hop_vpn_tunnel = 15 [json_name = "nextHopVpnTunnel"]; - - // Input only. [Input Only] Additional params passed with the request, but not - // persisted as part of resource payload. - optional RouteParams params = 26 [json_name = "params"]; - - // The priority of this route. Priority is used to break ties in cases where - // there is more than one matching route of equal prefix length. In cases - // where multiple routes have equal prefix length, the one with the - // lowest-numbered priority value wins. The default value is `1000`. The - // priority value must be from `0` to `65535`, inclusive. - optional uint32 priority = 16 [json_name = "priority"]; - - // [Output only] The status of the route. - // ACTIVE: This route is processed and active. - // DROPPED: The route is dropped due to the VPC exceeding the dynamic route - // limit. For dynamic route limit, please refer to the Learned route example - // INACTIVE: This route is processed but inactive due to failure from the - // backend. The backend may have rejected the route - // PENDING: This route is being processed internally. The status will change - // once processed. - optional string route_status = 17 [json_name = "routeStatus"]; - - // [Output Only] The type of this route, which can be one of the following - // values: - 'TRANSIT' for a transit route that this router learned from - // another Cloud Router and will readvertise to one of its BGP peers - - // 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned - // from a BGP peer of this router - 'STATIC' for a static route - // BGP: - // STATIC: - // SUBNET: - // TRANSIT: - optional string route_type = 18 [json_name = "routeType"]; + optional string region = 8 [json_name = "region"]; + + // [Output Only] The system status of the resource policy. + optional ResourcePolicyResourceStatus resource_status = 9 + [json_name = "resourceStatus"]; // [Output Only] Server-defined fully-qualified URL for this resource. - optional string self_link = 19 [json_name = "selfLink"]; + optional string self_link = 10 [json_name = "selfLink"]; + + // Resource policy for persistent disks for creating snapshots. + optional ResourcePolicySnapshotSchedulePolicy snapshot_schedule_policy = 11 + [json_name = "snapshotSchedulePolicy"]; + + // [Output Only] The status of resource policy creation. + // CREATING: Resource policy is being created. + // DELETING: Resource policy is being deleted. + // EXPIRED: Resource policy is expired and will not run again. + // INVALID: + // READY: Resource policy is ready to be used. + optional string status = 12 [json_name = "status"]; + + optional ResourcePolicyWorkloadPolicy workload_policy = 14 + [json_name = "workloadPolicy"]; +} + +// Contains a list of resourcePolicies. +message ResourcePolicyAggregatedList { + optional string etag = 1 [json_name = "etag"]; + + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 2 [json_name = "id"]; + + // A list of ResourcePolicy resources. + map items = 3 [json_name = "items"]; + + // Type of resource. + optional string kind = 4 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 5 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 6 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 7 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; - // A list of instance tags to which this route applies. - repeated string tags = 20 [json_name = "tags"]; + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } - message WarningsItem { + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 8 [json_name = "warning"]; +} + +// Time window specified for daily operations. +message ResourcePolicyDailyCycle { + // Defines a schedule with units measured in days. The value determines how + // many days pass between the start of each cycle. + optional int32 days_in_cycle = 1 [json_name = "daysInCycle"]; + + // [Output only] A predetermined duration for the window, automatically chosen + // to be the smallest possible in the given scenario. + optional string duration = 2 [json_name = "duration"]; + + // Start time of the window. This must be in UTC format that resolves to one + // of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 + // and 08:00 are valid. + optional string start_time = 3 [json_name = "startTime"]; +} + +// Resource policy for disk consistency groups. +message ResourcePolicyDiskConsistencyGroupPolicy {} + +// A GroupPlacementPolicy specifies resource placement configuration. It +// specifies the failure bucket separation +message ResourcePolicyGroupPlacementPolicy { + // The number of availability domains to spread instances across. If two + // instances are in different availability domain, they are not in the same + // low latency network. + optional int32 availability_domain_count = 1 + [json_name = "availabilityDomainCount"]; + + // Specifies network collocation + // COLLOCATED: + // UNSPECIFIED_COLLOCATION: + optional string collocation = 2 [json_name = "collocation"]; + + // Specifies the shape of the GPU slice, in slice based GPU families eg. A4X. + optional string gpu_topology = 4 [json_name = "gpuTopology"]; + + // Number of VMs in this placement group. Google does not recommend that you + // use this field unless you use a compact policy and you want your policy to + // work only if it contains this exact number of VMs. + optional int32 vm_count = 3 [json_name = "vmCount"]; +} + +// Time window specified for hourly operations. +message ResourcePolicyHourlyCycle { + // [Output only] Duration of the time window, automatically chosen to be + // smallest possible in the given scenario. + optional string duration = 1 [json_name = "duration"]; + + // Defines a schedule with units measured in hours. The value determines how + // many hours pass between the start of each cycle. + optional int32 hours_in_cycle = 2 [json_name = "hoursInCycle"]; + + // Time within the window to start the operations. It must be in format + // "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + optional string start_time = 3 [json_name = "startTime"]; +} + +// An InstanceSchedulePolicy specifies when and how frequent certain operations +// are performed on the instance. +message ResourcePolicyInstanceSchedulePolicy { + // The expiration time of the schedule. The timestamp is an RFC3339 string. + optional string expiration_time = 1 [json_name = "expirationTime"]; + + // The start time of the schedule. The timestamp is an RFC3339 string. + optional string start_time = 2 [json_name = "startTime"]; + + // Specifies the time zone to be used in interpreting Schedule.schedule. The + // value of this field must be a time zone name from the tz database: + // https://wikipedia.org/wiki/Tz_database. + optional string time_zone = 3 [json_name = "timeZone"]; + + // Specifies the schedule for starting instances. + optional ResourcePolicyInstanceSchedulePolicySchedule vm_start_schedule = 4 + [json_name = "vmStartSchedule"]; + + // Specifies the schedule for stopping instances. + optional ResourcePolicyInstanceSchedulePolicySchedule vm_stop_schedule = 5 + [json_name = "vmStopSchedule"]; +} + +// Schedule for an instance operation. +message ResourcePolicyInstanceSchedulePolicySchedule { + // Specifies the frequency for the operation, using the unix-cron format. + optional string schedule = 1 [json_name = "schedule"]; +} + +message ResourcePolicyList { + optional string etag = 1 [json_name = "etag"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 2 [json_name = "id"]; + + // [Output Only] A list of ResourcePolicy resources. + repeated ResourcePolicy items = 3 [json_name = "items"]; + + // [Output Only] Type of resource.Always compute#resourcePoliciesList for + // listsof resourcePolicies + optional string kind = 4 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 5 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 6 [json_name = "selfLink"]; + + message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by @@ -244,39 +484,135 @@ message Route { optional string message = 3 [json_name = "message"]; } - // [Output Only] If potential misconfigurations are detected for this route, - // this field will be populated with warning messages. - repeated WarningsItem warnings = 21 [json_name = "warnings"]; + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; +} + +// Contains output only fields. Use this sub-message for all output fields set +// on ResourcePolicy. The internal structure of this "status" field should mimic +// the structure of ResourcePolicy proto specification. +message ResourcePolicyResourceStatus { + // [Output Only] Specifies a set of output values reffering to the + // instance_schedule_policy system status. This field should have the same + // name as corresponding policy field. + optional ResourcePolicyResourceStatusInstanceSchedulePolicyStatus + instance_schedule_policy = 1 [json_name = "instanceSchedulePolicy"]; +} + +message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus { + // [Output Only] The last time the schedule successfully ran. The timestamp is + // an RFC3339 string. + optional string last_run_start_time = 1 [json_name = "lastRunStartTime"]; + + // [Output Only] The next time the schedule is planned to run. The actual time + // might be slightly different. The timestamp is an RFC3339 string. + optional string next_run_start_time = 2 [json_name = "nextRunStartTime"]; +} + +// A snapshot schedule policy specifies when and how frequently snapshots are to +// be created for the target disk. Also specifies how many and how long these +// scheduled snapshots should be retained. +message ResourcePolicySnapshotSchedulePolicy { + // Retention policy applied to snapshots created by this resource policy. + optional ResourcePolicySnapshotSchedulePolicyRetentionPolicy + retention_policy = 1 [json_name = "retentionPolicy"]; + + // A Vm Maintenance Policy specifies what kind of infrastructure maintenance + // we are allowed to perform on this VM and when. Schedule that is applied to + // disks covered by this policy. + optional ResourcePolicySnapshotSchedulePolicySchedule schedule = 2 + [json_name = "schedule"]; + + // Properties with which snapshots are created such as labels, encryption + // keys. + optional ResourcePolicySnapshotSchedulePolicySnapshotProperties + snapshot_properties = 3 [json_name = "snapshotProperties"]; +} + +// Policy for retention of scheduled snapshots. +message ResourcePolicySnapshotSchedulePolicyRetentionPolicy { + // Maximum age of the snapshot that is allowed to be kept. + optional int32 max_retention_days = 1 [json_name = "maxRetentionDays"]; + + // Specifies the behavior to apply to scheduled snapshots when the source disk + // is deleted. + // APPLY_RETENTION_POLICY: + // KEEP_AUTO_SNAPSHOTS: + // UNSPECIFIED_ON_SOURCE_DISK_DELETE: + optional string on_source_disk_delete = 2 [json_name = "onSourceDiskDelete"]; +} + +// A schedule for disks where the schedueled operations are performed. +message ResourcePolicySnapshotSchedulePolicySchedule { + optional ResourcePolicyDailyCycle daily_schedule = 1 + [json_name = "dailySchedule"]; + + optional ResourcePolicyHourlyCycle hourly_schedule = 2 + [json_name = "hourlySchedule"]; + + optional ResourcePolicyWeeklyCycle weekly_schedule = 3 + [json_name = "weeklySchedule"]; +} + +// Specified snapshot properties for scheduled snapshots created by this policy. +message ResourcePolicySnapshotSchedulePolicySnapshotProperties { + // Chain name that the snapshot is created in. + optional string chain_name = 1 [json_name = "chainName"]; + + // Indication to perform a 'guest aware' snapshot. + optional bool guest_flush = 2 [json_name = "guestFlush"]; + + // Labels to apply to scheduled snapshots. These can be later modified by the + // setLabels method. Label values may be empty. + map labels = 3 [json_name = "labels"]; + + // Cloud Storage bucket storage location of the auto snapshot (regional or + // multi-regional). + repeated string storage_locations = 4 [json_name = "storageLocations"]; } -message RouteAsPath { - // [Output Only] The AS numbers of the AS Path. - repeated uint32 as_lists = 1 [json_name = "asLists"]; - - // [Output Only] The type of the AS Path, which can be one of the following - // values: - 'AS_SET': unordered set of autonomous systems that the route in - // has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the - // route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member - // Autonomous Systems in the local confederation that the route has traversed - // - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local - // confederation that the route has traversed - // AS_CONFED_SEQUENCE: - // AS_CONFED_SET: - // AS_SEQUENCE: - // AS_SET: - optional string path_segment_type = 2 [json_name = "pathSegmentType"]; +// Time window specified for weekly operations. +message ResourcePolicyWeeklyCycle { + // Up to 7 intervals/windows, one for each day of the week. + repeated ResourcePolicyWeeklyCycleDayOfWeek day_of_weeks = 1 + [json_name = "dayOfWeeks"]; } -// Additional route parameters. -message RouteParams { - // Tag keys/values directly bound to this resource. Tag keys and values have - // the same definition as resource manager tags. The field is allowed for - // INSERT only. The keys/values to set on the resource should be specified in - // either ID { : } or Namespaced format { : }. For example the following are - // valid inputs: * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : - // "tagValues/456"} * {"123/environment" : "production", "345/abc" : "xyz"} - // Note: * Invalid combinations of ID & namespaced format is not supported. - // For instance: {"123/environment" : "tagValues/444"} is invalid. - map resource_manager_tags = 1 - [json_name = "resourceManagerTags"]; +message ResourcePolicyWeeklyCycleDayOfWeek { + // Defines a schedule that runs on specific days of the week. Specify one or + // more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, + // THURSDAY, FRIDAY, SATURDAY, SUNDAY. + // FRIDAY: + // INVALID: + // MONDAY: + // SATURDAY: + // SUNDAY: + // THURSDAY: + // TUESDAY: + // WEDNESDAY: + optional string day = 1 [json_name = "day"]; + + // [Output only] Duration of the time window, automatically chosen to be + // smallest possible in the given scenario. + optional string duration = 2 [json_name = "duration"]; + + // Time within the window to start the operations. It must be in format + // "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + optional string start_time = 3 [json_name = "startTime"]; +} + +// Represents the workload policy. +message ResourcePolicyWorkloadPolicy { + optional string accelerator_topology = 1 [json_name = "acceleratorTopology"]; + + // BLOCK: VMs must be provisioned in the same block. + // CLUSTER: VMs must be provisioned in the same cluster. + // SUBBLOCK: VMs must be provisioned in the same subblock. + optional string max_topology_distance = 2 [json_name = "maxTopologyDistance"]; + + // HIGH_AVAILABILITY: VMs will be provisioned in such a way which provides + // high availability. + // HIGH_THROUGHPUT: VMs will be provisioned in such a way which provides high + // throughput. + optional string type = 3 [json_name = "type"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_115.proto b/protos/google/cloud/compute/v1/internal/common_115.proto index 5ced743e70d3d..5784637ef8167 100644 --- a/protos/google/cloud/compute/v1/internal/common_115.proto +++ b/protos/google/cloud/compute/v1/internal/common_115.proto @@ -15,36 +15,153 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_114.proto"; +// Represents a Route resource. A route defines a path from VM instances in the +// VPC network to a specific destination. This destination can be inside or +// outside the VPC network. For more information, read the Routes overview. +message Route { + // [Output Only] AS path. + repeated RouteAsPath as_paths = 1 [json_name = "asPaths"]; -// Contains a list of Route resources. -message RouteList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - // A list of Route resources. - repeated Route items = 2 [json_name = "items"]; + // An optional description of this resource. Provide this field when you + // create the resource. + optional string description = 3 [json_name = "description"]; - // Type of resource. - optional string kind = 3 [json_name = "kind"]; + // The destination range of outgoing packets that this route applies to. Both + // IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) + // or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will + // be displayed using RFC 5952 compressed format. + optional string dest_range = 4 [json_name = "destRange"]; - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 5 [json_name = "id"]; - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; + // [Output Only] Type of this resource. Always compute#routes for Route + // resources. + optional string kind = 6 [json_name = "kind"]; - message Warning { + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a + // lowercase letter, and all following characters (except for the last + // character) must be a dash, lowercase letter, or digit. The last character + // must be a lowercase letter or digit. + optional string name = 7 [json_name = "name"]; + + // Fully-qualified URL of the network that this route applies to. + optional string network = 8 [json_name = "network"]; + + // The URL to a gateway that should handle matching packets. You can only + // specify the internet gateway using a full or partial valid URL: projects/ + // project/global/gateways/default-internet-gateway + optional string next_hop_gateway = 9 [json_name = "nextHopGateway"]; + + // [Output Only] The full resource name of the Network Connectivity Center hub + // that will handle matching packets. + optional string next_hop_hub = 22 [json_name = "nextHopHub"]; + + // The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that + // should handle matching packets or the IP address of the forwarding Rule. + // For example, the following are all valid URLs: - + // https://www.googleapis.com/compute/v1/projects/project/regions/region + // /forwardingRules/forwardingRule - + // regions/region/forwardingRules/forwardingRule If an IP address is provided, + // must specify an IPv4 address in dot-decimal notation or an IPv6 address in + // RFC 4291 format. For example, the following are all valid IP addresses: - + // 10.128.0.56 - 2001:db8::2d9:51:0:0 - 2001:db8:0:0:2d9:51:0:0 IPv6 addresses + // will be displayed using RFC 5952 compressed format (e.g. + // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. + optional string next_hop_ilb = 10 [json_name = "nextHopIlb"]; + + // The URL to an instance that should handle matching packets. You can specify + // this as a full or partial URL. For example: + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/ + optional string next_hop_instance = 11 [json_name = "nextHopInstance"]; + + // [Output only] Internal fixed region-to-region cost that Google Cloud + // calculates based on factors such as network performance, distance, and + // available bandwidth between regions. + optional uint32 next_hop_inter_region_cost = 23 + [json_name = "nextHopInterRegionCost"]; + + // The network IP address of an instance that should handle matching packets. + // Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 + // address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC + // 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 + // addresses will be displayed using RFC 5952 compressed format (e.g. + // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. + optional string next_hop_ip = 12 [json_name = "nextHopIp"]; + + // [Output Only] Multi-Exit Discriminator, a BGP route metric that indicates + // the desirability of a particular route in a network. + optional uint32 next_hop_med = 24 [json_name = "nextHopMed"]; + + // The URL of the local network if it should handle matching packets. + optional string next_hop_network = 13 [json_name = "nextHopNetwork"]; + + // [Output Only] Indicates the origin of the route. Can be IGP (Interior + // Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. + // EGP: + // IGP: + // INCOMPLETE: + optional string next_hop_origin = 25 [json_name = "nextHopOrigin"]; + + // [Output Only] The network peering name that should handle matching packets, + // which should conform to RFC1035. + optional string next_hop_peering = 14 [json_name = "nextHopPeering"]; + + // The URL to a VpnTunnel that should handle matching packets. + optional string next_hop_vpn_tunnel = 15 [json_name = "nextHopVpnTunnel"]; + + // Input only. [Input Only] Additional params passed with the request, but not + // persisted as part of resource payload. + optional RouteParams params = 26 [json_name = "params"]; + + // The priority of this route. Priority is used to break ties in cases where + // there is more than one matching route of equal prefix length. In cases + // where multiple routes have equal prefix length, the one with the + // lowest-numbered priority value wins. The default value is `1000`. The + // priority value must be from `0` to `65535`, inclusive. + optional uint32 priority = 16 [json_name = "priority"]; + + // [Output only] The status of the route. + // ACTIVE: This route is processed and active. + // DROPPED: The route is dropped due to the VPC exceeding the dynamic route + // limit. For dynamic route limit, please refer to the Learned route example + // INACTIVE: This route is processed but inactive due to failure from the + // backend. The backend may have rejected the route + // PENDING: This route is being processed internally. The status will change + // once processed. + optional string route_status = 17 [json_name = "routeStatus"]; + + // [Output Only] The type of this route, which can be one of the following + // values: - 'TRANSIT' for a transit route that this router learned from + // another Cloud Router and will readvertise to one of its BGP peers - + // 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned + // from a BGP peer of this router - 'STATIC' for a static route + // BGP: + // STATIC: + // SUBNET: + // TRANSIT: + optional string route_type = 18 [json_name = "routeType"]; + + // [Output Only] Server-defined fully-qualified URL for this resource. + optional string self_link = 19 [json_name = "selfLink"]; + + // A list of instance tags to which this route applies. + repeated string tags = 20 [json_name = "tags"]; + + message WarningsItem { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by @@ -127,6 +244,39 @@ message RouteList { optional string message = 3 [json_name = "message"]; } - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + // [Output Only] If potential misconfigurations are detected for this route, + // this field will be populated with warning messages. + repeated WarningsItem warnings = 21 [json_name = "warnings"]; +} + +message RouteAsPath { + // [Output Only] The AS numbers of the AS Path. + repeated uint32 as_lists = 1 [json_name = "asLists"]; + + // [Output Only] The type of the AS Path, which can be one of the following + // values: - 'AS_SET': unordered set of autonomous systems that the route in + // has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the + // route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member + // Autonomous Systems in the local confederation that the route has traversed + // - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local + // confederation that the route has traversed + // AS_CONFED_SEQUENCE: + // AS_CONFED_SET: + // AS_SEQUENCE: + // AS_SET: + optional string path_segment_type = 2 [json_name = "pathSegmentType"]; +} + +// Additional route parameters. +message RouteParams { + // Tag keys/values directly bound to this resource. Tag keys and values have + // the same definition as resource manager tags. The field is allowed for + // INSERT only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format { : }. For example the following are + // valid inputs: * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : + // "tagValues/456"} * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: * Invalid combinations of ID & namespaced format is not supported. + // For instance: {"123/environment" : "tagValues/444"} is invalid. + map resource_manager_tags = 1 + [json_name = "resourceManagerTags"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_116.proto b/protos/google/cloud/compute/v1/internal/common_116.proto index 1094b3938941b..00fe77c6b81dc 100644 --- a/protos/google/cloud/compute/v1/internal/common_116.proto +++ b/protos/google/cloud/compute/v1/internal/common_116.proto @@ -15,251 +15,23 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_031.proto"; +import "google/cloud/compute/v1/internal/common_115.proto"; -// Represents a Google Cloud Armor security policy resource. Only external -// backend services that use load balancers can reference a security policy. For -// more information, see Google Cloud Armor security policy overview. -message SecurityPolicy { - optional SecurityPolicyAdaptiveProtectionConfig adaptive_protection_config = 1 - [json_name = "adaptiveProtectionConfig"]; - - optional SecurityPolicyAdvancedOptionsConfig advanced_options_config = 2 - [json_name = "advancedOptionsConfig"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; - - optional SecurityPolicyDdosProtectionConfig ddos_protection_config = 4 - [json_name = "ddosProtectionConfig"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 5 [json_name = "description"]; - - // Specifies a fingerprint for this resource, which is essentially a hash of - // the metadata's contents and used for optimistic locking. The fingerprint is - // initially generated by Compute Engine and changes after every request to - // modify or update metadata. You must always provide an up-to-date - // fingerprint hash in order to update or change metadata, otherwise the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make get() request to the security policy. - optional string fingerprint = 6 [json_name = "fingerprint"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 7 [json_name = "id"]; - - // [Output only] Type of the resource. Always compute#securityPolicyfor - // security policies - optional string kind = 8 [json_name = "kind"]; - - // A fingerprint for the labels being applied to this security policy, which - // is essentially a hash of the labels set used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels. To see the - // latest fingerprint, make get() request to the security policy. - optional string label_fingerprint = 15 [json_name = "labelFingerprint"]; - - // Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - map labels = 16 [json_name = "labels"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 9 [json_name = "name"]; - - optional SecurityPolicyRecaptchaOptionsConfig recaptcha_options_config = 10 - [json_name = "recaptchaOptionsConfig"]; - - // [Output Only] URL of the region where the regional security policy resides. - // This field is not applicable to global security policies. - optional string region = 11 [json_name = "region"]; - - // A list of rules that belong to this policy. There must always be a default - // rule which is a rule with priority 2147483647 and match all condition (for - // the match condition this means match "*" for srcIpRanges and for the - // networkMatch condition every field must be either match "*" or not set). If - // no rules are provided when creating a security policy, a default rule with - // action "allow" will be added. - repeated SecurityPolicyRule rules = 12 [json_name = "rules"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 13 [json_name = "selfLink"]; - - // The type indicates the intended use of the security policy. - CLOUD_ARMOR: - // Cloud Armor backend security policies can be configured to filter incoming - // HTTP requests targeting backend services. They filter requests before they - // hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security - // policies can be configured to filter incoming HTTP requests targeting - // backend services (including Cloud CDN-enabled) as well as backend buckets - // (Cloud Storage). They filter requests before the request is served from - // Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal - // service policies can be configured to filter HTTP requests targeting - // services managed by Traffic Director in a service mesh. They filter - // requests before the request is served from the application. - - // CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to - // filter packets targeting network load balancing resources such as backend - // services, target pools, target instances, and instances with external IPs. - // They filter requests before the request is served from the application. - // This field can be set only at resource creation time. - // CLOUD_ARMOR: - // CLOUD_ARMOR_EDGE: - // CLOUD_ARMOR_NETWORK: - optional string type = 14 [json_name = "type"]; - - // Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A - // user-defined field consists of up to 4 bytes extracted from a fixed offset - // in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an - // optional mask to select certain bits. Rules may then specify matching - // values for these fields. Example: userDefinedFields: - name: - // "ipv4_fragment_offset" base: IPV4 offset: 6 size: 2 mask: "0x1fff" - repeated SecurityPolicyUserDefinedField user_defined_fields = 17 - [json_name = "userDefinedFields"]; -} - -// Configuration options for Cloud Armor Adaptive Protection (CAAP). -message SecurityPolicyAdaptiveProtectionConfig { - // If set to true, enables Cloud Armor Machine Learning. - optional SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig - layer7_ddos_defense_config = 1 [json_name = "layer7DdosDefenseConfig"]; -} - -// Configuration options for L7 DDoS detection. This field is only supported in -// Global Security Policies of type CLOUD_ARMOR. -message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { - // If set to true, enables CAAP for L7 DDoS detection. This field is only - // supported in Global Security Policies of type CLOUD_ARMOR. - optional bool enable = 1 [json_name = "enable"]; - - // Rule visibility can be one of the following: STANDARD - opaque rules. - // (default) PREMIUM - transparent rules. This field is only supported in - // Global Security Policies of type CLOUD_ARMOR. - // PREMIUM: - // STANDARD: - optional string rule_visibility = 2 [json_name = "ruleVisibility"]; - - // Configuration options for layer7 adaptive protection for various - // customizable thresholds. - repeated - SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig - threshold_configs = 3 [json_name = "thresholdConfigs"]; -} - -message -SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig { - optional float auto_deploy_confidence_threshold = 1 - [json_name = "autoDeployConfidenceThreshold"]; - - optional int32 auto_deploy_expiration_sec = 2 - [json_name = "autoDeployExpirationSec"]; - - optional float auto_deploy_impacted_baseline_threshold = 3 - [json_name = "autoDeployImpactedBaselineThreshold"]; - - optional float auto_deploy_load_threshold = 4 - [json_name = "autoDeployLoadThreshold"]; - - optional float detection_absolute_qps = 6 - [json_name = "detectionAbsoluteQps"]; - - optional float detection_load_threshold = 7 - [json_name = "detectionLoadThreshold"]; - - optional float detection_relative_to_baseline_qps = 8 - [json_name = "detectionRelativeToBaselineQps"]; - - // The name must be 1-63 characters long, and comply with RFC1035. The name - // must be unique within the security policy. - optional string name = 5 [json_name = "name"]; - - // Configuration options for enabling Adaptive Protection to operate on - // specified granular traffic units. - repeated - SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig - traffic_granularity_configs = 9 - [json_name = "trafficGranularityConfigs"]; -} - -// Configurations to specifc granular traffic units processed by Adaptive -// Protection. -message -SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig { - // If enabled, traffic matching each unique value for the specified type - // constitutes a separate traffic unit. It can only be set to true if `value` - // is empty. - optional bool enable_each_unique_value = 1 - [json_name = "enableEachUniqueValue"]; - - // Type of this configuration. - // HTTP_HEADER_HOST: - // HTTP_PATH: - // UNSPECIFIED_TYPE: - optional string type = 2 [json_name = "type"]; - - // Requests that match this value constitute a granular traffic unit. - optional string value = 3 [json_name = "value"]; -} - -message SecurityPolicyAdvancedOptionsConfig { - // Custom configuration to apply the JSON parsing. Only applicable when - // json_parsing is set to STANDARD. - optional SecurityPolicyAdvancedOptionsConfigJsonCustomConfig - json_custom_config = 1 [json_name = "jsonCustomConfig"]; - - // DISABLED: - // STANDARD: - // STANDARD_WITH_GRAPHQL: - optional string json_parsing = 2 [json_name = "jsonParsing"]; - - // NORMAL: - // VERBOSE: - optional string log_level = 3 [json_name = "logLevel"]; - - // An optional list of case-insensitive request header names to use for - // resolving the callers client IP address. - repeated string user_ip_request_headers = 4 - [json_name = "userIpRequestHeaders"]; -} - -message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { - // A list of custom Content-Type header values to apply the JSON parsing. As - // per RFC 1341, a Content-Type header value has the following format: - // Content-Type := type "/" subtype *[";" parameter] When configuring a custom - // Content-Type header value, only the type/subtype needs to be specified, and - // the parameters should be excluded. - repeated string content_types = 1 [json_name = "contentTypes"]; -} - -message SecurityPolicyDdosProtectionConfig { - // ADVANCED: - // ADVANCED_PREVIEW: - // STANDARD: - optional string ddos_protection = 1 [json_name = "ddosProtection"]; -} - -message SecurityPolicyList { +// Contains a list of Route resources. +message RouteList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of SecurityPolicy resources. - repeated SecurityPolicy items = 2 [json_name = "items"]; + // A list of Route resources. + repeated Route items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#securityPolicyList for - // listsof securityPolicies + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -269,6 +41,9 @@ message SecurityPolicyList { // continue paging through the results. optional string next_page_token = 4 [json_name = "nextPageToken"]; + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -353,463 +128,5 @@ message SecurityPolicyList { } // [Output Only] Informational warning message. - optional Warning warning = 5 [json_name = "warning"]; -} - -message SecurityPolicyRecaptchaOptionsConfig { - // An optional field to supply a reCAPTCHA site key to be used for all the - // rules using the redirect action with the type of GOOGLE_RECAPTCHA under the - // security policy. The specified site key needs to be created from the - // reCAPTCHA API. The user is responsible for the validity of the specified - // site key. If not specified, a Google-managed site key is used. This field - // is only supported in Global Security Policies of type CLOUD_ARMOR. - optional string redirect_site_key = 1 [json_name = "redirectSiteKey"]; -} - -// Represents a rule that describes one or more match conditions along with the -// action to be taken when traffic matches this condition (allow or deny). -message SecurityPolicyRule { - // The Action to perform when the rule is matched. The following are the valid - // actions: - allow: allow access to target. - deny(STATUS): deny access to - // target, returns the HTTP response code specified. Valid values for `STATUS` - // are 403, 404, and 502. - rate_based_ban: limit client traffic to the - // configured threshold and ban the client if the traffic exceeds the - // threshold. Configure parameters for this action in RateLimitOptions. - // Requires rate_limit_options to be set. - redirect: redirect to a different - // target. This can either be an internal reCAPTCHA redirect, or an external - // URL-based redirect via a 302 response. Parameters for this action can be - // configured via redirectOptions. This action is only supported in Global - // Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to - // the configured threshold. Configure parameters for this action in - // rateLimitOptions. Requires rate_limit_options to be set for this. - optional string action = 1 [json_name = "action"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 2 [json_name = "description"]; - - // Optional, additional actions that are performed on headers. This field is - // only supported in Global Security Policies of type CLOUD_ARMOR. - optional SecurityPolicyRuleHttpHeaderAction header_action = 3 - [json_name = "headerAction"]; - - // [Output only] Type of the resource. Always compute#securityPolicyRule for - // security policy rules - optional string kind = 4 [json_name = "kind"]; - - // A match condition that incoming traffic is evaluated against. If it - // evaluates to true, the corresponding 'action' is enforced. - optional SecurityPolicyRuleMatcher match = 5 [json_name = "match"]; - - // A match condition that incoming packets are evaluated against for - // CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding - // 'action' is enforced. The match criteria for a rule consists of built-in - // match fields (like 'srcIpRanges') and potentially multiple user-defined - // match fields ('userDefinedFields'). Field values may be extracted directly - // from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may - // not be present in every packet (e.g. 'srcPorts'). A user-defined field is - // only present if the base header is found in the packet and the entire field - // is in bounds. Each match field may specify which values can match it, - // listing one or more ranges, prefixes, or exact values that are considered a - // match for the field. A field value must be present in order to match a - // specified match field. If no match values are specified for a match field, - // then any field value is considered to match it, and it's not required to be - // present. For strings specifying '*' is also equivalent to match all. For a - // packet to match a rule, all specified match fields must match the - // corresponding field values derived from the packet. Example: networkMatch: - // srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - - // name: "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition - // matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a - // user-defined field named "ipv4_fragment_offset" with a value between 1 and - // 0x1fff inclusive. - optional SecurityPolicyRuleNetworkMatcher network_match = 11 - [json_name = "networkMatch"]; - - // Preconfigured WAF configuration to be applied for the rule. If the rule - // does not evaluate preconfigured WAF rules, i.e., if - // evaluatePreconfiguredWaf() is not used, this field will have no effect. - optional SecurityPolicyRulePreconfiguredWafConfig preconfigured_waf_config = 6 - [json_name = "preconfiguredWafConfig"]; - - // If set to true, the specified action is not enforced. - optional bool preview = 7 [json_name = "preview"]; - - // An integer indicating the priority of a rule in the list. The priority must - // be a positive value between 0 and 2147483647. Rules are evaluated from - // highest to lowest priority where 0 is the highest priority and 2147483647 - // is the lowest priority. - optional int32 priority = 8 [json_name = "priority"]; - - // Must be specified if the action is "rate_based_ban" or "throttle". Cannot - // be specified for any other actions. - optional SecurityPolicyRuleRateLimitOptions rate_limit_options = 9 - [json_name = "rateLimitOptions"]; - - // Parameters defining the redirect action. Cannot be specified for any other - // actions. This field is only supported in Global Security Policies of type - // CLOUD_ARMOR. - optional SecurityPolicyRuleRedirectOptions redirect_options = 10 - [json_name = "redirectOptions"]; -} - -message SecurityPolicyRuleHttpHeaderAction { - // The list of request headers to add or overwrite if they're already present. - repeated SecurityPolicyRuleHttpHeaderActionHttpHeaderOption - request_headers_to_adds = 1 [json_name = "requestHeadersToAdds"]; -} - -message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { - // The name of the header to set. - optional string header_name = 1 [json_name = "headerName"]; - - // The value to set the named header to. - optional string header_value = 2 [json_name = "headerValue"]; -} - -// Represents a match condition that incoming traffic is evaluated against. -// Exactly one field must be specified. -message SecurityPolicyRuleMatcher { - // The configuration options available when specifying versioned_expr. This - // field must be specified if versioned_expr is specified and cannot be - // specified if versioned_expr is not specified. - optional SecurityPolicyRuleMatcherConfig config = 1 [json_name = "config"]; - - // User defined CEVAL expression. A CEVAL expression is used to specify match - // criteria such as origin.ip, source.region_code and contents in the request - // header. Expressions containing `evaluateThreatIntelligence` require Cloud - // Armor Managed Protection Plus tier and are not supported in Edge Policies - // nor in Regional Policies. Expressions containing - // `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed - // Protection Plus tier and are only supported in Global Security Policies. - optional Expr expr = 2 [json_name = "expr"]; - - // The configuration options available when specifying a user defined CEVAL - // expression (i.e., 'expr'). - optional SecurityPolicyRuleMatcherExprOptions expr_options = 4 - [json_name = "exprOptions"]; - - // Preconfigured versioned expression. If this field is specified, config must - // also be specified. Available preconfigured expressions along with their - // requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range - // field in config. - // SRC_IPS_V1: Matches the source IP address of a request to the IP ranges - // supplied in config. - optional string versioned_expr = 3 [json_name = "versionedExpr"]; -} - -message SecurityPolicyRuleMatcherConfig { - // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. - repeated string src_ip_ranges = 1 [json_name = "srcIpRanges"]; -} - -message SecurityPolicyRuleMatcherExprOptions { - // reCAPTCHA configuration options to be applied for the rule. If the rule - // does not evaluate reCAPTCHA tokens, this field has no effect. - optional SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions - recaptcha_options = 1 [json_name = "recaptchaOptions"]; -} - -message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions { - // A list of site keys to be used during the validation of reCAPTCHA - // action-tokens. The provided site keys need to be created from reCAPTCHA API - // under the same project where the security policy is created. - repeated string action_token_site_keys = 1 - [json_name = "actionTokenSiteKeys"]; - - // A list of site keys to be used during the validation of reCAPTCHA - // session-tokens. The provided site keys need to be created from reCAPTCHA - // API under the same project where the security policy is created. - repeated string session_token_site_keys = 2 - [json_name = "sessionTokenSiteKeys"]; -} - -// Represents a match condition that incoming network traffic is evaluated -// against. -message SecurityPolicyRuleNetworkMatcher { - // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - repeated string dest_ip_ranges = 1 [json_name = "destIpRanges"]; - - // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit - // unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - repeated string dest_ports = 2 [json_name = "destPorts"]; - - // IPv4 protocol / IPv6 next header (after extension headers). Each element - // can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), - // or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", - // "ipip", or "sctp". - repeated string ip_protocols = 3 [json_name = "ipProtocols"]; - - // BGP Autonomous System Number associated with the source IP address. - repeated uint32 src_asns = 4 [json_name = "srcAsns"]; - - // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - repeated string src_ip_ranges = 5 [json_name = "srcIpRanges"]; - - // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned - // decimal number (e.g. "80") or range (e.g. "0-1023"). - repeated string src_ports = 6 [json_name = "srcPorts"]; - - // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP - // address. - repeated string src_region_codes = 7 [json_name = "srcRegionCodes"]; - - // User-defined fields. Each element names a defined field and lists the - // matching values for that field. - repeated SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch - user_defined_fields = 8 [json_name = "userDefinedFields"]; -} - -message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch { - // Name of the user-defined field, as given in the definition. - optional string name = 1 [json_name = "name"]; - - // Matching values of the field. Each element can be a 32-bit unsigned decimal - // or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. - // "0x400-0x7ff"). - repeated string values = 2 [json_name = "values"]; -} - -message SecurityPolicyRulePreconfiguredWafConfig { - // A list of exclusions to apply during preconfigured WAF evaluation. - repeated SecurityPolicyRulePreconfiguredWafConfigExclusion exclusions = 1 - [json_name = "exclusions"]; -} - -message SecurityPolicyRulePreconfiguredWafConfigExclusion { - // A list of request cookie names whose value will be excluded from inspection - // during preconfigured WAF evaluation. - repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams - request_cookies_to_exclude = 1 [json_name = "requestCookiesToExclude"]; - - // A list of request header names whose value will be excluded from inspection - // during preconfigured WAF evaluation. - repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams - request_headers_to_exclude = 2 [json_name = "requestHeadersToExclude"]; - - // A list of request query parameter names whose value will be excluded from - // inspection during preconfigured WAF evaluation. Note that the parameter can - // be in the query string or in the POST body. - repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams - request_query_params_to_exclude = 3 - [json_name = "requestQueryParamsToExclude"]; - - // A list of request URIs from the request line to be excluded from inspection - // during preconfigured WAF evaluation. When specifying this field, the query - // or fragment part should be excluded. - repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams - request_uris_to_exclude = 4 [json_name = "requestUrisToExclude"]; - - // A list of target rule IDs under the WAF rule set to apply the preconfigured - // WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule - // set. - repeated string target_rule_ids = 5 [json_name = "targetRuleIds"]; - - // Target WAF rule set to apply the preconfigured WAF exclusion. - optional string target_rule_set = 6 [json_name = "targetRuleSet"]; -} - -message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams { - // The match operator for the field. - // CONTAINS: The operator matches if the field value contains the specified - // value. - // ENDS_WITH: The operator matches if the field value ends with the specified - // value. - // EQUALS: The operator matches if the field value equals the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // STARTS_WITH: The operator matches if the field value starts with the - // specified value. - optional string op = 1 [json_name = "op"]; - - // The value of the field. - optional string val = 2 [json_name = "val"]; -} - -message SecurityPolicyRuleRateLimitOptions { - // Can only be specified if the action for the rule is "rate_based_ban". If - // specified, determines the time (in seconds) the traffic will continue to be - // banned by the rate limit after the rate falls below the threshold. - optional int32 ban_duration_sec = 1 [json_name = "banDurationSec"]; - - // Can only be specified if the action for the rule is "rate_based_ban". If - // specified, the key will be banned for the configured 'ban_duration_sec' - // when the number of requests that exceed the 'rate_limit_threshold' also - // exceed this 'ban_threshold'. - optional SecurityPolicyRuleRateLimitOptionsThreshold ban_threshold = 2 - [json_name = "banThreshold"]; - - // Action to take for requests that are under the configured rate limit - // threshold. Valid option is "allow" only. - optional string conform_action = 3 [json_name = "conformAction"]; - - // Determines the key to enforce the rate_limit_threshold on. Possible values - // are: - ALL: A single rate limit threshold is applied to all the requests - // matching this rule. This is the default value if "enforceOnKey" is not - // configured. - IP: The source IP address of the request is the key. Each IP - // has this limit enforced separately. - HTTP_HEADER: The value of the HTTP - // header whose name is configured under "enforceOnKeyName". The key value is - // truncated to the first 128 bytes of the header value. If no such header is - // present in the request, the key type defaults to ALL. - XFF_IP: The first - // IP address (i.e. the originating client IP address) specified in the list - // of IPs under X-Forwarded-For HTTP header. If no such header is present or - // the value is not a valid IP, the key defaults to the source IP address of - // the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie - // whose name is configured under "enforceOnKeyName". The key value is - // truncated to the first 128 bytes of the cookie value. If no such cookie is - // present in the request, the key type defaults to ALL. - HTTP_PATH: The URL - // path of the HTTP request. The key value is truncated to the first 128 - // bytes. - SNI: Server name indication in the TLS session of the HTTPS - // request. The key value is truncated to the first 128 bytes. The key type - // defaults to ALL on a HTTP session. - REGION_CODE: The country/region from - // which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL - // fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not - // available, the key type defaults to ALL. - USER_IP: The IP address of the - // originating client, which is resolved based on "userIpRequestHeaders" - // configured with the security policy. If there is no "userIpRequestHeaders" - // configuration or an IP address cannot be resolved from it, the key type - // defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the - // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key - // type defaults to ALL. - // ALL: - // HTTP_COOKIE: - // HTTP_HEADER: - // HTTP_PATH: - // IP: - // REGION_CODE: - // SNI: - // TLS_JA3_FINGERPRINT: - // TLS_JA4_FINGERPRINT: - // USER_IP: - // XFF_IP: - optional string enforce_on_key = 4 [json_name = "enforceOnKey"]; - - // If specified, any combination of values of - // enforce_on_key_type/enforce_on_key_name is treated as the key on which - // ratelimit threshold/action is enforced. You can specify up to 3 - // enforce_on_key_configs. If enforce_on_key_configs is specified, - // enforce_on_key must not be specified. - repeated SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig - enforce_on_key_configs = 9 [json_name = "enforceOnKeyConfigs"]; - - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key - // value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the - // key value. - optional string enforce_on_key_name = 5 [json_name = "enforceOnKeyName"]; - - // Action to take for requests that are above the configured rate limit - // threshold, to either deny with a specified HTTP response code, or redirect - // to a different endpoint. Valid options are `deny(STATUS)`, where valid - // values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the - // redirect parameters come from `exceedRedirectOptions` below. The `redirect` - // action is only supported in Global Security Policies of type CLOUD_ARMOR. - optional string exceed_action = 6 [json_name = "exceedAction"]; - - // Parameters defining the redirect action that is used as the exceed action. - // Cannot be specified if the exceed action is not redirect. This field is - // only supported in Global Security Policies of type CLOUD_ARMOR. - optional SecurityPolicyRuleRedirectOptions exceed_redirect_options = 7 - [json_name = "exceedRedirectOptions"]; - - // Threshold at which to begin ratelimiting. - optional SecurityPolicyRuleRateLimitOptionsThreshold rate_limit_threshold = 8 - [json_name = "rateLimitThreshold"]; -} - -message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key - // value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the - // key value. - optional string enforce_on_key_name = 1 [json_name = "enforceOnKeyName"]; - - // Determines the key to enforce the rate_limit_threshold on. Possible values - // are: - ALL: A single rate limit threshold is applied to all the requests - // matching this rule. This is the default value if "enforceOnKeyConfigs" is - // not configured. - IP: The source IP address of the request is the key. Each - // IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP - // header whose name is configured under "enforceOnKeyName". The key value is - // truncated to the first 128 bytes of the header value. If no such header is - // present in the request, the key type defaults to ALL. - XFF_IP: The first - // IP address (i.e. the originating client IP address) specified in the list - // of IPs under X-Forwarded-For HTTP header. If no such header is present or - // the value is not a valid IP, the key defaults to the source IP address of - // the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie - // whose name is configured under "enforceOnKeyName". The key value is - // truncated to the first 128 bytes of the cookie value. If no such cookie is - // present in the request, the key type defaults to ALL. - HTTP_PATH: The URL - // path of the HTTP request. The key value is truncated to the first 128 - // bytes. - SNI: Server name indication in the TLS session of the HTTPS - // request. The key value is truncated to the first 128 bytes. The key type - // defaults to ALL on a HTTP session. - REGION_CODE: The country/region from - // which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL - // fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not - // available, the key type defaults to ALL. - USER_IP: The IP address of the - // originating client, which is resolved based on "userIpRequestHeaders" - // configured with the security policy. If there is no "userIpRequestHeaders" - // configuration or an IP address cannot be resolved from it, the key type - // defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the - // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key - // type defaults to ALL. - // ALL: - // HTTP_COOKIE: - // HTTP_HEADER: - // HTTP_PATH: - // IP: - // REGION_CODE: - // SNI: - // TLS_JA3_FINGERPRINT: - // TLS_JA4_FINGERPRINT: - // USER_IP: - // XFF_IP: - optional string enforce_on_key_type = 2 [json_name = "enforceOnKeyType"]; -} - -message SecurityPolicyRuleRateLimitOptionsThreshold { - // Number of HTTP(S) requests for calculating the threshold. - optional int32 count = 1 [json_name = "count"]; - - // Interval over which the threshold is computed. - optional int32 interval_sec = 2 [json_name = "intervalSec"]; -} - -message SecurityPolicyRuleRedirectOptions { - // Target for the redirect action. This is required if the type is - // EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - optional string target = 1 [json_name = "target"]; - - // Type of the redirect action. - // EXTERNAL_302: - // GOOGLE_RECAPTCHA: - optional string type = 2 [json_name = "type"]; -} - -message SecurityPolicyUserDefinedField { - // The base relative to which 'offset' is measured. Possible values are: - - // IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the - // beginning of the IPv6 header. - TCP: Points to the beginning of the TCP - // header, skipping over any IPv4 options or IPv6 extension headers. Not - // present for non-first fragments. - UDP: Points to the beginning of the UDP - // header, skipping over any IPv4 options or IPv6 extension headers. Not - // present for non-first fragments. required - // IPV4: - // IPV6: - // TCP: - // UDP: - optional string base = 1 [json_name = "base"]; - - // If specified, apply this mask (bitwise AND) to the field to ignore bits - // before matching. Encoded as a hexadecimal number (starting with "0x"). The - // last byte of the field (in network byte order) corresponds to the least - // significant byte of the mask. - optional string mask = 2 [json_name = "mask"]; - - // The name of this field. Must be unique within the policy. - optional string name = 3 [json_name = "name"]; - - // Offset of the first byte of the field (in network byte order) relative to - // 'base'. - optional int32 offset = 4 [json_name = "offset"]; - - // Size of the field in bytes. Valid values: 1-4. - optional int32 size = 5 [json_name = "size"]; + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_117.proto b/protos/google/cloud/compute/v1/internal/common_117.proto index 31b0759cd0a38..f54378b473de6 100644 --- a/protos/google/cloud/compute/v1/internal/common_117.proto +++ b/protos/google/cloud/compute/v1/internal/common_117.proto @@ -15,12 +15,801 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message SecurityPolicyReference { - optional string security_policy = 1 [json_name = "securityPolicy"]; +import "google/cloud/compute/v1/internal/common_031.proto"; + +// Represents a Google Cloud Armor security policy resource. Only external +// backend services that use load balancers can reference a security policy. For +// more information, see Google Cloud Armor security policy overview. +message SecurityPolicy { + optional SecurityPolicyAdaptiveProtectionConfig adaptive_protection_config = 1 + [json_name = "adaptiveProtectionConfig"]; + + optional SecurityPolicyAdvancedOptionsConfig advanced_options_config = 2 + [json_name = "advancedOptionsConfig"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; + + optional SecurityPolicyDdosProtectionConfig ddos_protection_config = 4 + [json_name = "ddosProtectionConfig"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 5 [json_name = "description"]; + + // Specifies a fingerprint for this resource, which is essentially a hash of + // the metadata's contents and used for optimistic locking. The fingerprint is + // initially generated by Compute Engine and changes after every request to + // modify or update metadata. You must always provide an up-to-date + // fingerprint hash in order to update or change metadata, otherwise the + // request will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make get() request to the security policy. + optional string fingerprint = 6 [json_name = "fingerprint"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 7 [json_name = "id"]; + + // [Output only] Type of the resource. Always compute#securityPolicyfor + // security policies + optional string kind = 8 [json_name = "kind"]; + + // A fingerprint for the labels being applied to this security policy, which + // is essentially a hash of the labels set used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide an + // up-to-date fingerprint hash in order to update or change labels. To see the + // latest fingerprint, make get() request to the security policy. + optional string label_fingerprint = 15 [json_name = "labelFingerprint"]; + + // Labels for this resource. These can only be added or modified by the + // setLabels method. Each label key/value pair must comply with RFC1035. Label + // values may be empty. + map labels = 16 [json_name = "labels"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 9 [json_name = "name"]; + + optional SecurityPolicyRecaptchaOptionsConfig recaptcha_options_config = 10 + [json_name = "recaptchaOptionsConfig"]; + + // [Output Only] URL of the region where the regional security policy resides. + // This field is not applicable to global security policies. + optional string region = 11 [json_name = "region"]; + + // A list of rules that belong to this policy. There must always be a default + // rule which is a rule with priority 2147483647 and match all condition (for + // the match condition this means match "*" for srcIpRanges and for the + // networkMatch condition every field must be either match "*" or not set). If + // no rules are provided when creating a security policy, a default rule with + // action "allow" will be added. + repeated SecurityPolicyRule rules = 12 [json_name = "rules"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 13 [json_name = "selfLink"]; + + // The type indicates the intended use of the security policy. - CLOUD_ARMOR: + // Cloud Armor backend security policies can be configured to filter incoming + // HTTP requests targeting backend services. They filter requests before they + // hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security + // policies can be configured to filter incoming HTTP requests targeting + // backend services (including Cloud CDN-enabled) as well as backend buckets + // (Cloud Storage). They filter requests before the request is served from + // Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal + // service policies can be configured to filter HTTP requests targeting + // services managed by Traffic Director in a service mesh. They filter + // requests before the request is served from the application. - + // CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to + // filter packets targeting network load balancing resources such as backend + // services, target pools, target instances, and instances with external IPs. + // They filter requests before the request is served from the application. + // This field can be set only at resource creation time. + // CLOUD_ARMOR: + // CLOUD_ARMOR_EDGE: + // CLOUD_ARMOR_NETWORK: + optional string type = 14 [json_name = "type"]; + + // Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A + // user-defined field consists of up to 4 bytes extracted from a fixed offset + // in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an + // optional mask to select certain bits. Rules may then specify matching + // values for these fields. Example: userDefinedFields: - name: + // "ipv4_fragment_offset" base: IPV4 offset: 6 size: 2 mask: "0x1fff" + repeated SecurityPolicyUserDefinedField user_defined_fields = 17 + [json_name = "userDefinedFields"]; +} + +// Configuration options for Cloud Armor Adaptive Protection (CAAP). +message SecurityPolicyAdaptiveProtectionConfig { + // If set to true, enables Cloud Armor Machine Learning. + optional SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig + layer7_ddos_defense_config = 1 [json_name = "layer7DdosDefenseConfig"]; +} + +// Configuration options for L7 DDoS detection. This field is only supported in +// Global Security Policies of type CLOUD_ARMOR. +message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { + // If set to true, enables CAAP for L7 DDoS detection. This field is only + // supported in Global Security Policies of type CLOUD_ARMOR. + optional bool enable = 1 [json_name = "enable"]; + + // Rule visibility can be one of the following: STANDARD - opaque rules. + // (default) PREMIUM - transparent rules. This field is only supported in + // Global Security Policies of type CLOUD_ARMOR. + // PREMIUM: + // STANDARD: + optional string rule_visibility = 2 [json_name = "ruleVisibility"]; + + // Configuration options for layer7 adaptive protection for various + // customizable thresholds. + repeated + SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig + threshold_configs = 3 [json_name = "thresholdConfigs"]; +} + +message +SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig { + optional float auto_deploy_confidence_threshold = 1 + [json_name = "autoDeployConfidenceThreshold"]; + + optional int32 auto_deploy_expiration_sec = 2 + [json_name = "autoDeployExpirationSec"]; + + optional float auto_deploy_impacted_baseline_threshold = 3 + [json_name = "autoDeployImpactedBaselineThreshold"]; + + optional float auto_deploy_load_threshold = 4 + [json_name = "autoDeployLoadThreshold"]; + + optional float detection_absolute_qps = 6 + [json_name = "detectionAbsoluteQps"]; + + optional float detection_load_threshold = 7 + [json_name = "detectionLoadThreshold"]; + + optional float detection_relative_to_baseline_qps = 8 + [json_name = "detectionRelativeToBaselineQps"]; + + // The name must be 1-63 characters long, and comply with RFC1035. The name + // must be unique within the security policy. + optional string name = 5 [json_name = "name"]; + + // Configuration options for enabling Adaptive Protection to operate on + // specified granular traffic units. + repeated + SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig + traffic_granularity_configs = 9 + [json_name = "trafficGranularityConfigs"]; +} + +// Configurations to specifc granular traffic units processed by Adaptive +// Protection. +message +SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig { + // If enabled, traffic matching each unique value for the specified type + // constitutes a separate traffic unit. It can only be set to true if `value` + // is empty. + optional bool enable_each_unique_value = 1 + [json_name = "enableEachUniqueValue"]; + + // Type of this configuration. + // HTTP_HEADER_HOST: + // HTTP_PATH: + // UNSPECIFIED_TYPE: + optional string type = 2 [json_name = "type"]; + + // Requests that match this value constitute a granular traffic unit. + optional string value = 3 [json_name = "value"]; +} + +message SecurityPolicyAdvancedOptionsConfig { + // Custom configuration to apply the JSON parsing. Only applicable when + // json_parsing is set to STANDARD. + optional SecurityPolicyAdvancedOptionsConfigJsonCustomConfig + json_custom_config = 1 [json_name = "jsonCustomConfig"]; + + // DISABLED: + // STANDARD: + // STANDARD_WITH_GRAPHQL: + optional string json_parsing = 2 [json_name = "jsonParsing"]; + + // NORMAL: + // VERBOSE: + optional string log_level = 3 [json_name = "logLevel"]; + + // An optional list of case-insensitive request header names to use for + // resolving the callers client IP address. + repeated string user_ip_request_headers = 4 + [json_name = "userIpRequestHeaders"]; +} + +message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { + // A list of custom Content-Type header values to apply the JSON parsing. As + // per RFC 1341, a Content-Type header value has the following format: + // Content-Type := type "/" subtype *[";" parameter] When configuring a custom + // Content-Type header value, only the type/subtype needs to be specified, and + // the parameters should be excluded. + repeated string content_types = 1 [json_name = "contentTypes"]; +} + +message SecurityPolicyDdosProtectionConfig { + // ADVANCED: + // ADVANCED_PREVIEW: + // STANDARD: + optional string ddos_protection = 1 [json_name = "ddosProtection"]; +} + +message SecurityPolicyList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of SecurityPolicy resources. + repeated SecurityPolicy items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#securityPolicyList for + // listsof securityPolicies + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 5 [json_name = "warning"]; +} + +message SecurityPolicyRecaptchaOptionsConfig { + // An optional field to supply a reCAPTCHA site key to be used for all the + // rules using the redirect action with the type of GOOGLE_RECAPTCHA under the + // security policy. The specified site key needs to be created from the + // reCAPTCHA API. The user is responsible for the validity of the specified + // site key. If not specified, a Google-managed site key is used. This field + // is only supported in Global Security Policies of type CLOUD_ARMOR. + optional string redirect_site_key = 1 [json_name = "redirectSiteKey"]; +} + +// Represents a rule that describes one or more match conditions along with the +// action to be taken when traffic matches this condition (allow or deny). +message SecurityPolicyRule { + // The Action to perform when the rule is matched. The following are the valid + // actions: - allow: allow access to target. - deny(STATUS): deny access to + // target, returns the HTTP response code specified. Valid values for `STATUS` + // are 403, 404, and 502. - rate_based_ban: limit client traffic to the + // configured threshold and ban the client if the traffic exceeds the + // threshold. Configure parameters for this action in RateLimitOptions. + // Requires rate_limit_options to be set. - redirect: redirect to a different + // target. This can either be an internal reCAPTCHA redirect, or an external + // URL-based redirect via a 302 response. Parameters for this action can be + // configured via redirectOptions. This action is only supported in Global + // Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to + // the configured threshold. Configure parameters for this action in + // rateLimitOptions. Requires rate_limit_options to be set for this. + optional string action = 1 [json_name = "action"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 2 [json_name = "description"]; + + // Optional, additional actions that are performed on headers. This field is + // only supported in Global Security Policies of type CLOUD_ARMOR. + optional SecurityPolicyRuleHttpHeaderAction header_action = 3 + [json_name = "headerAction"]; + + // [Output only] Type of the resource. Always compute#securityPolicyRule for + // security policy rules + optional string kind = 4 [json_name = "kind"]; + + // A match condition that incoming traffic is evaluated against. If it + // evaluates to true, the corresponding 'action' is enforced. + optional SecurityPolicyRuleMatcher match = 5 [json_name = "match"]; + + // A match condition that incoming packets are evaluated against for + // CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding + // 'action' is enforced. The match criteria for a rule consists of built-in + // match fields (like 'srcIpRanges') and potentially multiple user-defined + // match fields ('userDefinedFields'). Field values may be extracted directly + // from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may + // not be present in every packet (e.g. 'srcPorts'). A user-defined field is + // only present if the base header is found in the packet and the entire field + // is in bounds. Each match field may specify which values can match it, + // listing one or more ranges, prefixes, or exact values that are considered a + // match for the field. A field value must be present in order to match a + // specified match field. If no match values are specified for a match field, + // then any field value is considered to match it, and it's not required to be + // present. For strings specifying '*' is also equivalent to match all. For a + // packet to match a rule, all specified match fields must match the + // corresponding field values derived from the packet. Example: networkMatch: + // srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - + // name: "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition + // matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a + // user-defined field named "ipv4_fragment_offset" with a value between 1 and + // 0x1fff inclusive. + optional SecurityPolicyRuleNetworkMatcher network_match = 11 + [json_name = "networkMatch"]; + + // Preconfigured WAF configuration to be applied for the rule. If the rule + // does not evaluate preconfigured WAF rules, i.e., if + // evaluatePreconfiguredWaf() is not used, this field will have no effect. + optional SecurityPolicyRulePreconfiguredWafConfig preconfigured_waf_config = 6 + [json_name = "preconfiguredWafConfig"]; + + // If set to true, the specified action is not enforced. + optional bool preview = 7 [json_name = "preview"]; + + // An integer indicating the priority of a rule in the list. The priority must + // be a positive value between 0 and 2147483647. Rules are evaluated from + // highest to lowest priority where 0 is the highest priority and 2147483647 + // is the lowest priority. + optional int32 priority = 8 [json_name = "priority"]; + + // Must be specified if the action is "rate_based_ban" or "throttle". Cannot + // be specified for any other actions. + optional SecurityPolicyRuleRateLimitOptions rate_limit_options = 9 + [json_name = "rateLimitOptions"]; + + // Parameters defining the redirect action. Cannot be specified for any other + // actions. This field is only supported in Global Security Policies of type + // CLOUD_ARMOR. + optional SecurityPolicyRuleRedirectOptions redirect_options = 10 + [json_name = "redirectOptions"]; +} + +message SecurityPolicyRuleHttpHeaderAction { + // The list of request headers to add or overwrite if they're already present. + repeated SecurityPolicyRuleHttpHeaderActionHttpHeaderOption + request_headers_to_adds = 1 [json_name = "requestHeadersToAdds"]; +} + +message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { + // The name of the header to set. + optional string header_name = 1 [json_name = "headerName"]; + + // The value to set the named header to. + optional string header_value = 2 [json_name = "headerValue"]; +} + +// Represents a match condition that incoming traffic is evaluated against. +// Exactly one field must be specified. +message SecurityPolicyRuleMatcher { + // The configuration options available when specifying versioned_expr. This + // field must be specified if versioned_expr is specified and cannot be + // specified if versioned_expr is not specified. + optional SecurityPolicyRuleMatcherConfig config = 1 [json_name = "config"]; + + // User defined CEVAL expression. A CEVAL expression is used to specify match + // criteria such as origin.ip, source.region_code and contents in the request + // header. Expressions containing `evaluateThreatIntelligence` require Cloud + // Armor Managed Protection Plus tier and are not supported in Edge Policies + // nor in Regional Policies. Expressions containing + // `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed + // Protection Plus tier and are only supported in Global Security Policies. + optional Expr expr = 2 [json_name = "expr"]; + + // The configuration options available when specifying a user defined CEVAL + // expression (i.e., 'expr'). + optional SecurityPolicyRuleMatcherExprOptions expr_options = 4 + [json_name = "exprOptions"]; + + // Preconfigured versioned expression. If this field is specified, config must + // also be specified. Available preconfigured expressions along with their + // requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range + // field in config. + // SRC_IPS_V1: Matches the source IP address of a request to the IP ranges + // supplied in config. + optional string versioned_expr = 3 [json_name = "versionedExpr"]; +} + +message SecurityPolicyRuleMatcherConfig { + // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. + repeated string src_ip_ranges = 1 [json_name = "srcIpRanges"]; +} + +message SecurityPolicyRuleMatcherExprOptions { + // reCAPTCHA configuration options to be applied for the rule. If the rule + // does not evaluate reCAPTCHA tokens, this field has no effect. + optional SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions + recaptcha_options = 1 [json_name = "recaptchaOptions"]; +} + +message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions { + // A list of site keys to be used during the validation of reCAPTCHA + // action-tokens. The provided site keys need to be created from reCAPTCHA API + // under the same project where the security policy is created. + repeated string action_token_site_keys = 1 + [json_name = "actionTokenSiteKeys"]; + + // A list of site keys to be used during the validation of reCAPTCHA + // session-tokens. The provided site keys need to be created from reCAPTCHA + // API under the same project where the security policy is created. + repeated string session_token_site_keys = 2 + [json_name = "sessionTokenSiteKeys"]; +} + +// Represents a match condition that incoming network traffic is evaluated +// against. +message SecurityPolicyRuleNetworkMatcher { + // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + repeated string dest_ip_ranges = 1 [json_name = "destIpRanges"]; + + // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit + // unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + repeated string dest_ports = 2 [json_name = "destPorts"]; + + // IPv4 protocol / IPv6 next header (after extension headers). Each element + // can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), + // or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", + // "ipip", or "sctp". + repeated string ip_protocols = 3 [json_name = "ipProtocols"]; + + // BGP Autonomous System Number associated with the source IP address. + repeated uint32 src_asns = 4 [json_name = "srcAsns"]; + + // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + repeated string src_ip_ranges = 5 [json_name = "srcIpRanges"]; + + // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned + // decimal number (e.g. "80") or range (e.g. "0-1023"). + repeated string src_ports = 6 [json_name = "srcPorts"]; + + // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP + // address. + repeated string src_region_codes = 7 [json_name = "srcRegionCodes"]; + + // User-defined fields. Each element names a defined field and lists the + // matching values for that field. + repeated SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch + user_defined_fields = 8 [json_name = "userDefinedFields"]; +} + +message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch { + // Name of the user-defined field, as given in the definition. + optional string name = 1 [json_name = "name"]; + + // Matching values of the field. Each element can be a 32-bit unsigned decimal + // or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. + // "0x400-0x7ff"). + repeated string values = 2 [json_name = "values"]; +} + +message SecurityPolicyRulePreconfiguredWafConfig { + // A list of exclusions to apply during preconfigured WAF evaluation. + repeated SecurityPolicyRulePreconfiguredWafConfigExclusion exclusions = 1 + [json_name = "exclusions"]; +} + +message SecurityPolicyRulePreconfiguredWafConfigExclusion { + // A list of request cookie names whose value will be excluded from inspection + // during preconfigured WAF evaluation. + repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams + request_cookies_to_exclude = 1 [json_name = "requestCookiesToExclude"]; + + // A list of request header names whose value will be excluded from inspection + // during preconfigured WAF evaluation. + repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams + request_headers_to_exclude = 2 [json_name = "requestHeadersToExclude"]; + + // A list of request query parameter names whose value will be excluded from + // inspection during preconfigured WAF evaluation. Note that the parameter can + // be in the query string or in the POST body. + repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams + request_query_params_to_exclude = 3 + [json_name = "requestQueryParamsToExclude"]; + + // A list of request URIs from the request line to be excluded from inspection + // during preconfigured WAF evaluation. When specifying this field, the query + // or fragment part should be excluded. + repeated SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams + request_uris_to_exclude = 4 [json_name = "requestUrisToExclude"]; + + // A list of target rule IDs under the WAF rule set to apply the preconfigured + // WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule + // set. + repeated string target_rule_ids = 5 [json_name = "targetRuleIds"]; + + // Target WAF rule set to apply the preconfigured WAF exclusion. + optional string target_rule_set = 6 [json_name = "targetRuleSet"]; +} + +message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams { + // The match operator for the field. + // CONTAINS: The operator matches if the field value contains the specified + // value. + // ENDS_WITH: The operator matches if the field value ends with the specified + // value. + // EQUALS: The operator matches if the field value equals the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // STARTS_WITH: The operator matches if the field value starts with the + // specified value. + optional string op = 1 [json_name = "op"]; + + // The value of the field. + optional string val = 2 [json_name = "val"]; +} + +message SecurityPolicyRuleRateLimitOptions { + // Can only be specified if the action for the rule is "rate_based_ban". If + // specified, determines the time (in seconds) the traffic will continue to be + // banned by the rate limit after the rate falls below the threshold. + optional int32 ban_duration_sec = 1 [json_name = "banDurationSec"]; + + // Can only be specified if the action for the rule is "rate_based_ban". If + // specified, the key will be banned for the configured 'ban_duration_sec' + // when the number of requests that exceed the 'rate_limit_threshold' also + // exceed this 'ban_threshold'. + optional SecurityPolicyRuleRateLimitOptionsThreshold ban_threshold = 2 + [json_name = "banThreshold"]; + + // Action to take for requests that are under the configured rate limit + // threshold. Valid option is "allow" only. + optional string conform_action = 3 [json_name = "conformAction"]; + + // Determines the key to enforce the rate_limit_threshold on. Possible values + // are: - ALL: A single rate limit threshold is applied to all the requests + // matching this rule. This is the default value if "enforceOnKey" is not + // configured. - IP: The source IP address of the request is the key. Each IP + // has this limit enforced separately. - HTTP_HEADER: The value of the HTTP + // header whose name is configured under "enforceOnKeyName". The key value is + // truncated to the first 128 bytes of the header value. If no such header is + // present in the request, the key type defaults to ALL. - XFF_IP: The first + // IP address (i.e. the originating client IP address) specified in the list + // of IPs under X-Forwarded-For HTTP header. If no such header is present or + // the value is not a valid IP, the key defaults to the source IP address of + // the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie + // whose name is configured under "enforceOnKeyName". The key value is + // truncated to the first 128 bytes of the cookie value. If no such cookie is + // present in the request, the key type defaults to ALL. - HTTP_PATH: The URL + // path of the HTTP request. The key value is truncated to the first 128 + // bytes. - SNI: Server name indication in the TLS session of the HTTPS + // request. The key value is truncated to the first 128 bytes. The key type + // defaults to ALL on a HTTP session. - REGION_CODE: The country/region from + // which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL + // fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not + // available, the key type defaults to ALL. - USER_IP: The IP address of the + // originating client, which is resolved based on "userIpRequestHeaders" + // configured with the security policy. If there is no "userIpRequestHeaders" + // configuration or an IP address cannot be resolved from it, the key type + // defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key + // type defaults to ALL. + // ALL: + // HTTP_COOKIE: + // HTTP_HEADER: + // HTTP_PATH: + // IP: + // REGION_CODE: + // SNI: + // TLS_JA3_FINGERPRINT: + // TLS_JA4_FINGERPRINT: + // USER_IP: + // XFF_IP: + optional string enforce_on_key = 4 [json_name = "enforceOnKey"]; + + // If specified, any combination of values of + // enforce_on_key_type/enforce_on_key_name is treated as the key on which + // ratelimit threshold/action is enforced. You can specify up to 3 + // enforce_on_key_configs. If enforce_on_key_configs is specified, + // enforce_on_key must not be specified. + repeated SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig + enforce_on_key_configs = 9 [json_name = "enforceOnKeyConfigs"]; + + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key + // value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the + // key value. + optional string enforce_on_key_name = 5 [json_name = "enforceOnKeyName"]; + + // Action to take for requests that are above the configured rate limit + // threshold, to either deny with a specified HTTP response code, or redirect + // to a different endpoint. Valid options are `deny(STATUS)`, where valid + // values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the + // redirect parameters come from `exceedRedirectOptions` below. The `redirect` + // action is only supported in Global Security Policies of type CLOUD_ARMOR. + optional string exceed_action = 6 [json_name = "exceedAction"]; + + // Parameters defining the redirect action that is used as the exceed action. + // Cannot be specified if the exceed action is not redirect. This field is + // only supported in Global Security Policies of type CLOUD_ARMOR. + optional SecurityPolicyRuleRedirectOptions exceed_redirect_options = 7 + [json_name = "exceedRedirectOptions"]; + + // Threshold at which to begin ratelimiting. + optional SecurityPolicyRuleRateLimitOptionsThreshold rate_limit_threshold = 8 + [json_name = "rateLimitThreshold"]; +} + +message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key + // value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the + // key value. + optional string enforce_on_key_name = 1 [json_name = "enforceOnKeyName"]; + + // Determines the key to enforce the rate_limit_threshold on. Possible values + // are: - ALL: A single rate limit threshold is applied to all the requests + // matching this rule. This is the default value if "enforceOnKeyConfigs" is + // not configured. - IP: The source IP address of the request is the key. Each + // IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP + // header whose name is configured under "enforceOnKeyName". The key value is + // truncated to the first 128 bytes of the header value. If no such header is + // present in the request, the key type defaults to ALL. - XFF_IP: The first + // IP address (i.e. the originating client IP address) specified in the list + // of IPs under X-Forwarded-For HTTP header. If no such header is present or + // the value is not a valid IP, the key defaults to the source IP address of + // the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie + // whose name is configured under "enforceOnKeyName". The key value is + // truncated to the first 128 bytes of the cookie value. If no such cookie is + // present in the request, the key type defaults to ALL. - HTTP_PATH: The URL + // path of the HTTP request. The key value is truncated to the first 128 + // bytes. - SNI: Server name indication in the TLS session of the HTTPS + // request. The key value is truncated to the first 128 bytes. The key type + // defaults to ALL on a HTTP session. - REGION_CODE: The country/region from + // which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL + // fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not + // available, the key type defaults to ALL. - USER_IP: The IP address of the + // originating client, which is resolved based on "userIpRequestHeaders" + // configured with the security policy. If there is no "userIpRequestHeaders" + // configuration or an IP address cannot be resolved from it, the key type + // defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key + // type defaults to ALL. + // ALL: + // HTTP_COOKIE: + // HTTP_HEADER: + // HTTP_PATH: + // IP: + // REGION_CODE: + // SNI: + // TLS_JA3_FINGERPRINT: + // TLS_JA4_FINGERPRINT: + // USER_IP: + // XFF_IP: + optional string enforce_on_key_type = 2 [json_name = "enforceOnKeyType"]; +} + +message SecurityPolicyRuleRateLimitOptionsThreshold { + // Number of HTTP(S) requests for calculating the threshold. + optional int32 count = 1 [json_name = "count"]; + + // Interval over which the threshold is computed. + optional int32 interval_sec = 2 [json_name = "intervalSec"]; +} + +message SecurityPolicyRuleRedirectOptions { + // Target for the redirect action. This is required if the type is + // EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + optional string target = 1 [json_name = "target"]; + + // Type of the redirect action. + // EXTERNAL_302: + // GOOGLE_RECAPTCHA: + optional string type = 2 [json_name = "type"]; +} + +message SecurityPolicyUserDefinedField { + // The base relative to which 'offset' is measured. Possible values are: - + // IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the + // beginning of the IPv6 header. - TCP: Points to the beginning of the TCP + // header, skipping over any IPv4 options or IPv6 extension headers. Not + // present for non-first fragments. - UDP: Points to the beginning of the UDP + // header, skipping over any IPv4 options or IPv6 extension headers. Not + // present for non-first fragments. required + // IPV4: + // IPV6: + // TCP: + // UDP: + optional string base = 1 [json_name = "base"]; + + // If specified, apply this mask (bitwise AND) to the field to ignore bits + // before matching. Encoded as a hexadecimal number (starting with "0x"). The + // last byte of the field (in network byte order) corresponds to the least + // significant byte of the mask. + optional string mask = 2 [json_name = "mask"]; + + // The name of this field. Must be unique within the policy. + optional string name = 3 [json_name = "name"]; + + // Offset of the first byte of the field (in network byte order) relative to + // 'base'. + optional int32 offset = 4 [json_name = "offset"]; + + // Size of the field in bytes. Valid values: 1-4. + optional int32 size = 5 [json_name = "size"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_118.proto b/protos/google/cloud/compute/v1/internal/common_118.proto index b5eaca88f5ee0..8b2ac9f9e8bf6 100644 --- a/protos/google/cloud/compute/v1/internal/common_118.proto +++ b/protos/google/cloud/compute/v1/internal/common_118.proto @@ -15,494 +15,12 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a ServiceAttachment resource. A service attachment represents a -// service that a producer has exposed. It encapsulates the load balancer which -// fronts the service runs and a list of NAT IP ranges that the producers uses -// to represent the consumers connecting to the service. -message ServiceAttachment { - // [Output Only] An array of connections for all the consumers connected to - // this service attachment. - repeated ServiceAttachmentConnectedEndpoint connected_endpoints = 1 - [json_name = "connectedEndpoints"]; - - // The connection preference of service attachment. The value can be set to - // ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always - // accepts the connection from consumer forwarding rules. - // ACCEPT_AUTOMATIC: - // ACCEPT_MANUAL: - // CONNECTION_PREFERENCE_UNSPECIFIED: - optional string connection_preference = 2 - [json_name = "connectionPreference"]; - - // Specifies which consumer projects or networks are allowed to connect to the - // service attachment. Each project or network has a connection limit. A given - // service attachment can manage connections at either the project or network - // level. Therefore, both the accept and reject lists for a given service - // attachment must contain either only projects or only networks. - repeated ServiceAttachmentConsumerProjectLimit consumer_accept_lists = 3 - [json_name = "consumerAcceptLists"]; - - // Specifies a list of projects or networks that are not allowed to connect to - // this service attachment. The project can be specified using its project ID - // or project number and the network can be specified using its URL. A given - // service attachment can manage connections at either the project or network - // level. Therefore, both the reject and accept lists for a given service - // attachment must contain either only projects or only networks. - repeated string consumer_reject_lists = 4 [json_name = "consumerRejectLists"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 6 [json_name = "description"]; - - // If specified, the domain name will be used during the integration between - // the PSC connected endpoints and the Cloud DNS. For example, this is a valid - // domain name: "p.mycompany.com.". Current max number of domain names - // supported is 1. - repeated string domain_names = 7 [json_name = "domainNames"]; - - // If true, enable the proxy protocol which is for supplying client TCP/IP - // address data in TCP connections that traverse proxies on their way to - // destination servers. - optional bool enable_proxy_protocol = 8 [json_name = "enableProxyProtocol"]; - - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field will be ignored when - // inserting a ServiceAttachment. An up-to-date fingerprint must be provided - // in order to patch/update the ServiceAttachment; otherwise, the request will - // fail with error 412 conditionNotMet. To see the latest fingerprint, make a - // get() request to retrieve the ServiceAttachment. - optional string fingerprint = 9 [json_name = "fingerprint"]; - - // [Output Only] The unique identifier for the resource type. The server - // generates this identifier. - optional string id = 10 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#serviceAttachment for - // service attachments. - optional string kind = 11 [json_name = "kind"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 12 [json_name = "name"]; - - // An array of URLs where each entry is the URL of a subnet provided by the - // service producer to use for NAT in this service attachment. - repeated string nat_subnets = 13 [json_name = "natSubnets"]; - - // The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is - // serving the endpoint identified by this service attachment. - optional string producer_forwarding_rule = 14 - [json_name = "producerForwardingRule"]; - - // The number of consumer spokes that connected Private Service Connect - // endpoints can be propagated to through Network Connectivity Center. This - // limit lets the service producer limit how many propagated Private Service - // Connect connections can be established to this service attachment from a - // single consumer. If the connection preference of the service attachment is - // ACCEPT_MANUAL, the limit applies to each project or network that is listed - // in the consumer accept list. If the connection preference of the service - // attachment is ACCEPT_AUTOMATIC, the limit applies to each project that - // contains a connected endpoint. If unspecified, the default propagated - // connection limit is 250. - optional uint32 propagated_connection_limit = 20 - [json_name = "propagatedConnectionLimit"]; - - // [Output Only] An 128-bit global unique ID of the PSC service attachment. - optional Uint128 psc_service_attachment_id = 15 - [json_name = "pscServiceAttachmentId"]; - - // This flag determines whether a consumer accept/reject list change can - // reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If - // false, connection policy update will only affect existing PENDING PSC - // endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched - // regardless how the connection policy is modified . - If true, update will - // affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an - // ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to - // the reject list. For newly created service attachment, this boolean - // defaults to false. - optional bool reconcile_connections = 19 [json_name = "reconcileConnections"]; - - // [Output Only] URL of the region where the service attachment resides. This - // field applies only to the region resource. You must specify this field as - // part of the HTTP request URL. It is not settable as a field in the request - // body. - optional string region = 16 [json_name = "region"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 17 [json_name = "selfLink"]; - - // The URL of a service serving the endpoint identified by this service - // attachment. - optional string target_service = 18 [json_name = "targetService"]; -} - -// Contains a list of ServiceAttachmentsScopedList. -message ServiceAttachmentAggregatedList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of ServiceAttachmentsScopedList resources. - map items = 2 [json_name = "items"]; - - // Type of resource. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// [Output Only] A connection connected to this service attachment. -message ServiceAttachmentConnectedEndpoint { - // The url of the consumer network. - optional string consumer_network = 4 [json_name = "consumerNetwork"]; - - // The url of a connected endpoint. - optional string endpoint = 1 [json_name = "endpoint"]; - - // The number of consumer Network Connectivity Center spokes that the - // connected Private Service Connect endpoint has propagated to. - optional uint32 propagated_connection_count = 5 - [json_name = "propagatedConnectionCount"]; - - // The PSC connection id of the connected endpoint. - optional string psc_connection_id = 2 [json_name = "pscConnectionId"]; - - // The status of a connected endpoint to this service attachment. - // ACCEPTED: The connection has been accepted by the producer. - // CLOSED: The connection has been closed by the producer. - // NEEDS_ATTENTION: The connection has been accepted by the producer, but the - // producer needs to take further action before the forwarding rule can serve - // traffic. - // PENDING: The connection is pending acceptance by the producer. - // REJECTED: The consumer is still connected but not using the connection. - // STATUS_UNSPECIFIED: - optional string status = 3 [json_name = "status"]; -} - -message ServiceAttachmentConsumerProjectLimit { - // The value of the limit to set. - optional uint32 connection_limit = 1 [json_name = "connectionLimit"]; - - // The network URL for the network to set the limit for. - optional string network_url = 2 [json_name = "networkUrl"]; - - // The project id or number for the project to set the limit for. - optional string project_id_or_num = 3 [json_name = "projectIdOrNum"]; -} - -message ServiceAttachmentList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of ServiceAttachment resources. - repeated ServiceAttachment items = 2 [json_name = "items"]; - - // [Output Only] Type of the resource. Always compute#serviceAttachment for - // service attachments. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -message ServiceAttachmentsScopedList { - // A list of ServiceAttachments contained in this scope. - repeated ServiceAttachment service_attachments = 1 - [json_name = "serviceAttachments"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // Informational warning which replaces the list of service attachments when - // the list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message Uint128 { - optional string high = 1 [json_name = "high"]; - - optional string low = 2 [json_name = "low"]; +message SecurityPolicyReference { + optional string security_policy = 1 [json_name = "securityPolicy"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_119.proto b/protos/google/cloud/compute/v1/internal/common_119.proto index 28a339c4cf56f..91728c332394f 100644 --- a/protos/google/cloud/compute/v1/internal/common_119.proto +++ b/protos/google/cloud/compute/v1/internal/common_119.proto @@ -15,30 +15,494 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// The share setting for reservations and sole tenancy node groups. -message ShareSettings { - // A map of project id and project config. This is only valid when - // share_type's value is SPECIFIC_PROJECTS. - map project_map = 1 - [json_name = "projectMap"]; - - // Type of sharing for this shared-reservation - // LOCAL: Default value. - // ORGANIZATION: Shared-reservation is open to entire Organization - // SHARE_TYPE_UNSPECIFIED: Default value. This value is unused. - // SPECIFIC_PROJECTS: Shared-reservation is open to specific projects - optional string share_type = 2 [json_name = "shareType"]; +// Represents a ServiceAttachment resource. A service attachment represents a +// service that a producer has exposed. It encapsulates the load balancer which +// fronts the service runs and a list of NAT IP ranges that the producers uses +// to represent the consumers connecting to the service. +message ServiceAttachment { + // [Output Only] An array of connections for all the consumers connected to + // this service attachment. + repeated ServiceAttachmentConnectedEndpoint connected_endpoints = 1 + [json_name = "connectedEndpoints"]; + + // The connection preference of service attachment. The value can be set to + // ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always + // accepts the connection from consumer forwarding rules. + // ACCEPT_AUTOMATIC: + // ACCEPT_MANUAL: + // CONNECTION_PREFERENCE_UNSPECIFIED: + optional string connection_preference = 2 + [json_name = "connectionPreference"]; + + // Specifies which consumer projects or networks are allowed to connect to the + // service attachment. Each project or network has a connection limit. A given + // service attachment can manage connections at either the project or network + // level. Therefore, both the accept and reject lists for a given service + // attachment must contain either only projects or only networks. + repeated ServiceAttachmentConsumerProjectLimit consumer_accept_lists = 3 + [json_name = "consumerAcceptLists"]; + + // Specifies a list of projects or networks that are not allowed to connect to + // this service attachment. The project can be specified using its project ID + // or project number and the network can be specified using its URL. A given + // service attachment can manage connections at either the project or network + // level. Therefore, both the reject and accept lists for a given service + // attachment must contain either only projects or only networks. + repeated string consumer_reject_lists = 4 [json_name = "consumerRejectLists"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 6 [json_name = "description"]; + + // If specified, the domain name will be used during the integration between + // the PSC connected endpoints and the Cloud DNS. For example, this is a valid + // domain name: "p.mycompany.com.". Current max number of domain names + // supported is 1. + repeated string domain_names = 7 [json_name = "domainNames"]; + + // If true, enable the proxy protocol which is for supplying client TCP/IP + // address data in TCP connections that traverse proxies on their way to + // destination servers. + optional bool enable_proxy_protocol = 8 [json_name = "enableProxyProtocol"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field will be ignored when + // inserting a ServiceAttachment. An up-to-date fingerprint must be provided + // in order to patch/update the ServiceAttachment; otherwise, the request will + // fail with error 412 conditionNotMet. To see the latest fingerprint, make a + // get() request to retrieve the ServiceAttachment. + optional string fingerprint = 9 [json_name = "fingerprint"]; + + // [Output Only] The unique identifier for the resource type. The server + // generates this identifier. + optional string id = 10 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#serviceAttachment for + // service attachments. + optional string kind = 11 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 12 [json_name = "name"]; + + // An array of URLs where each entry is the URL of a subnet provided by the + // service producer to use for NAT in this service attachment. + repeated string nat_subnets = 13 [json_name = "natSubnets"]; + + // The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is + // serving the endpoint identified by this service attachment. + optional string producer_forwarding_rule = 14 + [json_name = "producerForwardingRule"]; + + // The number of consumer spokes that connected Private Service Connect + // endpoints can be propagated to through Network Connectivity Center. This + // limit lets the service producer limit how many propagated Private Service + // Connect connections can be established to this service attachment from a + // single consumer. If the connection preference of the service attachment is + // ACCEPT_MANUAL, the limit applies to each project or network that is listed + // in the consumer accept list. If the connection preference of the service + // attachment is ACCEPT_AUTOMATIC, the limit applies to each project that + // contains a connected endpoint. If unspecified, the default propagated + // connection limit is 250. + optional uint32 propagated_connection_limit = 20 + [json_name = "propagatedConnectionLimit"]; + + // [Output Only] An 128-bit global unique ID of the PSC service attachment. + optional Uint128 psc_service_attachment_id = 15 + [json_name = "pscServiceAttachmentId"]; + + // This flag determines whether a consumer accept/reject list change can + // reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If + // false, connection policy update will only affect existing PENDING PSC + // endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched + // regardless how the connection policy is modified . - If true, update will + // affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an + // ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to + // the reject list. For newly created service attachment, this boolean + // defaults to false. + optional bool reconcile_connections = 19 [json_name = "reconcileConnections"]; + + // [Output Only] URL of the region where the service attachment resides. This + // field applies only to the region resource. You must specify this field as + // part of the HTTP request URL. It is not settable as a field in the request + // body. + optional string region = 16 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 17 [json_name = "selfLink"]; + + // The URL of a service serving the endpoint identified by this service + // attachment. + optional string target_service = 18 [json_name = "targetService"]; +} + +// Contains a list of ServiceAttachmentsScopedList. +message ServiceAttachmentAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of ServiceAttachmentsScopedList resources. + map items = 2 [json_name = "items"]; + + // Type of resource. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; } -// Config for each project in the share settings. -message ShareSettingsProjectConfig { - // The project ID, should be same as the key of this project config in the - // parent map. - optional string project_id = 1 [json_name = "projectId"]; +// [Output Only] A connection connected to this service attachment. +message ServiceAttachmentConnectedEndpoint { + // The url of the consumer network. + optional string consumer_network = 4 [json_name = "consumerNetwork"]; + + // The url of a connected endpoint. + optional string endpoint = 1 [json_name = "endpoint"]; + + // The number of consumer Network Connectivity Center spokes that the + // connected Private Service Connect endpoint has propagated to. + optional uint32 propagated_connection_count = 5 + [json_name = "propagatedConnectionCount"]; + + // The PSC connection id of the connected endpoint. + optional string psc_connection_id = 2 [json_name = "pscConnectionId"]; + + // The status of a connected endpoint to this service attachment. + // ACCEPTED: The connection has been accepted by the producer. + // CLOSED: The connection has been closed by the producer. + // NEEDS_ATTENTION: The connection has been accepted by the producer, but the + // producer needs to take further action before the forwarding rule can serve + // traffic. + // PENDING: The connection is pending acceptance by the producer. + // REJECTED: The consumer is still connected but not using the connection. + // STATUS_UNSPECIFIED: + optional string status = 3 [json_name = "status"]; +} + +message ServiceAttachmentConsumerProjectLimit { + // The value of the limit to set. + optional uint32 connection_limit = 1 [json_name = "connectionLimit"]; + + // The network URL for the network to set the limit for. + optional string network_url = 2 [json_name = "networkUrl"]; + + // The project id or number for the project to set the limit for. + optional string project_id_or_num = 3 [json_name = "projectIdOrNum"]; +} + +message ServiceAttachmentList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of ServiceAttachment resources. + repeated ServiceAttachment items = 2 [json_name = "items"]; + + // [Output Only] Type of the resource. Always compute#serviceAttachment for + // service attachments. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +message ServiceAttachmentsScopedList { + // A list of ServiceAttachments contained in this scope. + repeated ServiceAttachment service_attachments = 1 + [json_name = "serviceAttachments"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // Informational warning which replaces the list of service attachments when + // the list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +message Uint128 { + optional string high = 1 [json_name = "high"]; + + optional string low = 2 [json_name = "low"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_120.proto b/protos/google/cloud/compute/v1/internal/common_120.proto index b2cdc6f00de31..0c06ba2934485 100644 --- a/protos/google/cloud/compute/v1/internal/common_120.proto +++ b/protos/google/cloud/compute/v1/internal/common_120.proto @@ -15,23 +15,30 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs -message SignedUrlKey { - // Name of the key. The name must be 1-63 characters long, and comply with - // RFC1035. Specifically, the name must be 1-63 characters long and match the - // regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be - // a dash, lowercase letter, or digit, except the last character, which cannot - // be a dash. - optional string key_name = 1 [json_name = "keyName"]; +// The share setting for reservations and sole tenancy node groups. +message ShareSettings { + // A map of project id and project config. This is only valid when + // share_type's value is SPECIFIC_PROJECTS. + map project_map = 1 + [json_name = "projectMap"]; - // 128-bit key value used for signing the URL. The key value must be a valid - // RFC 4648 Section 5 base64url encoded string. - optional string key_value = 2 [json_name = "keyValue"]; + // Type of sharing for this shared-reservation + // LOCAL: Default value. + // ORGANIZATION: Shared-reservation is open to entire Organization + // SHARE_TYPE_UNSPECIFIED: Default value. This value is unused. + // SPECIFIC_PROJECTS: Shared-reservation is open to specific projects + optional string share_type = 2 [json_name = "shareType"]; +} + +// Config for each project in the share settings. +message ShareSettingsProjectConfig { + // The project ID, should be same as the key of this project config in the + // parent map. + optional string project_id = 1 [json_name = "projectId"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_121.proto b/protos/google/cloud/compute/v1/internal/common_121.proto index 74fb367a16580..6cf78b6577257 100644 --- a/protos/google/cloud/compute/v1/internal/common_121.proto +++ b/protos/google/cloud/compute/v1/internal/common_121.proto @@ -15,212 +15,23 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_020.proto"; - -// Represents a Persistent Disk Snapshot resource. You can use snapshots to back -// up data on a regular interval. For more information, read Creating persistent -// disk snapshots. LINT.IfChange -message Snapshot { - // [Output Only] The architecture of the snapshot. Valid values are ARM64 or - // X86_64. - // ARCHITECTURE_UNSPECIFIED: Default value indicating Architecture is not set. - // ARM64: Machines with architecture ARM64 - // X86_64: Machines with architecture X86_64 - optional string architecture = 1 [json_name = "architecture"]; - - // [Output Only] Set to true if snapshots are automatically created by - // applying resource policy on the target disk. - optional bool auto_created = 2 [json_name = "autoCreated"]; - - // Creates the new snapshot in the snapshot chain labeled with the specified - // name. The chain name must be 1-63 characters long and comply with RFC1035. - // This is an uncommon option only for advanced service owners who needs to - // create separate snapshot chains, for example, for chargeback tracking. When - // you describe your snapshot resource, this field is visible only if it has a - // non-empty value. - optional string chain_name = 3 [json_name = "chainName"]; - - // [Output Only] Size in bytes of the snapshot at creation time. - optional string creation_size_bytes = 4 [json_name = "creationSizeBytes"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 6 [json_name = "description"]; - - // [Output Only] Size of the source disk, specified in GB. - optional string disk_size_gb = 7 [json_name = "diskSizeGb"]; - - // [Output Only] Number of bytes downloaded to restore a snapshot to a disk. - optional string download_bytes = 8 [json_name = "downloadBytes"]; - - // Whether this snapshot is created from a confidential compute mode disk. - // [Output Only]: This field is not set by user, but from source disk. - optional bool enable_confidential_compute = 32 - [json_name = "enableConfidentialCompute"]; - - // [Input Only] Whether to attempt an application consistent snapshot by - // informing the OS to prepare for the snapshot process. - optional bool guest_flush = 37 [json_name = "guestFlush"]; - - // [Output Only] A list of features to enable on the guest operating system. - // Applicable only for bootable images. Read Enabling guest operating system - // features to see a list of available options. - repeated GuestOsFeature guest_os_features = 31 - [json_name = "guestOsFeatures"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 9 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#snapshot for Snapshot - // resources. - optional string kind = 10 [json_name = "kind"]; - - // A fingerprint for the labels being applied to this snapshot, which is - // essentially a hash of the labels set used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels, otherwise - // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a snapshot. - optional string label_fingerprint = 11 [json_name = "labelFingerprint"]; - - // Labels to apply to this snapshot. These can be later modified by the - // setLabels method. Label values may be empty. - map labels = 12 [json_name = "labels"]; - - // [Output Only] Integer license codes indicating which licenses are attached - // to this snapshot. - repeated string license_codes = 13 [json_name = "licenseCodes"]; - - // [Output Only] A list of public visible licenses that apply to this - // snapshot. This can be because the original image had licenses attached - // (such as a Windows image). - repeated string licenses = 14 [json_name = "licenses"]; - - // An opaque location hint used to place the snapshot close to other - // resources. This field is for use by internal tools that use the public API. - optional string location_hint = 15 [json_name = "locationHint"]; - - // Name of the resource; provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 16 [json_name = "name"]; - - // Output only. Reserved for future use. - optional bool satisfies_pzi = 33 [json_name = "satisfiesPzi"]; - - // [Output Only] Reserved for future use. - optional bool satisfies_pzs = 17 [json_name = "satisfiesPzs"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 18 [json_name = "selfLink"]; - - // Encrypts the snapshot using a customer-supplied encryption key. After you - // encrypt a snapshot using a customer-supplied key, you must provide the same - // key if you use the snapshot later. For example, you must provide the - // encryption key when you create a disk from the encrypted snapshot in a - // future request. Customer-supplied encryption keys do not protect access to - // metadata of the snapshot. If you do not provide an encryption key when - // creating the snapshot, then the snapshot will be encrypted using an - // automatically generated key and you do not need to provide a key to use the - // snapshot later. - optional CustomerEncryptionKey snapshot_encryption_key = 19 - [json_name = "snapshotEncryptionKey"]; - - // Indicates the type of the snapshot. - // ARCHIVE: - // STANDARD: - optional string snapshot_type = 20 [json_name = "snapshotType"]; - - // The source disk used to create this snapshot. - optional string source_disk = 21 [json_name = "sourceDisk"]; - - // The customer-supplied encryption key of the source disk. Required if the - // source disk is protected by a customer-supplied encryption key. - optional CustomerEncryptionKey source_disk_encryption_key = 22 - [json_name = "sourceDiskEncryptionKey"]; - - // The source disk whose recovery checkpoint will be used to create this - // snapshot. - optional string source_disk_for_recovery_checkpoint = 30 - [json_name = "sourceDiskForRecoveryCheckpoint"]; - - // [Output Only] The ID value of the disk used to create this snapshot. This - // value may be used to determine whether the snapshot was taken from the - // current or a previous instance of a given disk name. - optional string source_disk_id = 23 [json_name = "sourceDiskId"]; - - // The source instant snapshot used to create this snapshot. You can provide - // this as a partial or full URL to the resource. For example, the following - // are valid values: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /instantSnapshots/instantSnapshot - - // projects/project/zones/zone/instantSnapshots/instantSnapshot - - // zones/zone/instantSnapshots/instantSnapshot - optional string source_instant_snapshot = 34 - [json_name = "sourceInstantSnapshot"]; - - // Customer provided encryption key when creating Snapshot from Instant - // Snapshot. - optional CustomerEncryptionKey source_instant_snapshot_encryption_key = 35 - [json_name = "sourceInstantSnapshotEncryptionKey"]; - - // [Output Only] The unique ID of the instant snapshot used to create this - // snapshot. This value identifies the exact instant snapshot that was used to - // create this snapshot. For example, if you created the snapshot from an - // instant snapshot that was later deleted and recreated under the same name, - // the source instant snapshot ID would identify the exact instant snapshot - // that was used. - optional string source_instant_snapshot_id = 36 - [json_name = "sourceInstantSnapshotId"]; - - // [Output Only] URL of the resource policy which created this scheduled - // snapshot. - optional string source_snapshot_schedule_policy = 24 - [json_name = "sourceSnapshotSchedulePolicy"]; - - // [Output Only] ID of the resource policy which created this scheduled - // snapshot. - optional string source_snapshot_schedule_policy_id = 25 - [json_name = "sourceSnapshotSchedulePolicyId"]; - - // [Output Only] The status of the snapshot. This can be CREATING, DELETING, - // FAILED, READY, or UPLOADING. - // CREATING: Snapshot creation is in progress. - // DELETING: Snapshot is currently being deleted. - // FAILED: Snapshot creation failed. - // READY: Snapshot has been created successfully. - // UPLOADING: Snapshot is being uploaded. - optional string status = 26 [json_name = "status"]; - - // [Output Only] A size of the storage used by the snapshot. As snapshots - // share storage, this number is expected to change with snapshot - // creation/deletion. - optional string storage_bytes = 27 [json_name = "storageBytes"]; - - // [Output Only] An indicator whether storageBytes is in a stable state or it - // is being adjusted as a result of shared storage reallocation. This status - // can either be UPDATING, meaning the size of the snapshot is being updated, - // or UP_TO_DATE, meaning the size of the snapshot is up-to-date. - // UPDATING: - // UP_TO_DATE: - optional string storage_bytes_status = 28 [json_name = "storageBytesStatus"]; - - // Cloud Storage bucket storage location of the snapshot (regional or - // multi-regional). - repeated string storage_locations = 29 [json_name = "storageLocations"]; +// Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs +message SignedUrlKey { + // Name of the key. The name must be 1-63 characters long, and comply with + // RFC1035. Specifically, the name must be 1-63 characters long and match the + // regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must be + // a dash, lowercase letter, or digit, except the last character, which cannot + // be a dash. + optional string key_name = 1 [json_name = "keyName"]; + + // 128-bit key value used for signing the URL. The key value must be a valid + // RFC 4648 Section 5 base64url encoded string. + optional string key_value = 2 [json_name = "keyValue"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_122.proto b/protos/google/cloud/compute/v1/internal/common_122.proto index 3b2a9074cf8a6..3175ad3d728b0 100644 --- a/protos/google/cloud/compute/v1/internal/common_122.proto +++ b/protos/google/cloud/compute/v1/internal/common_122.proto @@ -15,118 +15,212 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_121.proto"; - -// Contains a list of Snapshot resources. -message SnapshotList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of Snapshot resources. - repeated Snapshot items = 2 [json_name = "items"]; - - // Type of resource. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; +import "google/cloud/compute/v1/internal/common_021.proto"; + +// Represents a Persistent Disk Snapshot resource. You can use snapshots to back +// up data on a regular interval. For more information, read Creating persistent +// disk snapshots. LINT.IfChange +message Snapshot { + // [Output Only] The architecture of the snapshot. Valid values are ARM64 or + // X86_64. + // ARCHITECTURE_UNSPECIFIED: Default value indicating Architecture is not set. + // ARM64: Machines with architecture ARM64 + // X86_64: Machines with architecture X86_64 + optional string architecture = 1 [json_name = "architecture"]; + + // [Output Only] Set to true if snapshots are automatically created by + // applying resource policy on the target disk. + optional bool auto_created = 2 [json_name = "autoCreated"]; + + // Creates the new snapshot in the snapshot chain labeled with the specified + // name. The chain name must be 1-63 characters long and comply with RFC1035. + // This is an uncommon option only for advanced service owners who needs to + // create separate snapshot chains, for example, for chargeback tracking. When + // you describe your snapshot resource, this field is visible only if it has a + // non-empty value. + optional string chain_name = 3 [json_name = "chainName"]; + + // [Output Only] Size in bytes of the snapshot at creation time. + optional string creation_size_bytes = 4 [json_name = "creationSizeBytes"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 5 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 6 [json_name = "description"]; + + // [Output Only] Size of the source disk, specified in GB. + optional string disk_size_gb = 7 [json_name = "diskSizeGb"]; + + // [Output Only] Number of bytes downloaded to restore a snapshot to a disk. + optional string download_bytes = 8 [json_name = "downloadBytes"]; + + // Whether this snapshot is created from a confidential compute mode disk. + // [Output Only]: This field is not set by user, but from source disk. + optional bool enable_confidential_compute = 32 + [json_name = "enableConfidentialCompute"]; + + // [Input Only] Whether to attempt an application consistent snapshot by + // informing the OS to prepare for the snapshot process. + optional bool guest_flush = 37 [json_name = "guestFlush"]; + + // [Output Only] A list of features to enable on the guest operating system. + // Applicable only for bootable images. Read Enabling guest operating system + // features to see a list of available options. + repeated GuestOsFeature guest_os_features = 31 + [json_name = "guestOsFeatures"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 9 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#snapshot for Snapshot + // resources. + optional string kind = 10 [json_name = "kind"]; + + // A fingerprint for the labels being applied to this snapshot, which is + // essentially a hash of the labels set used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide an + // up-to-date fingerprint hash in order to update or change labels, otherwise + // the request will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve a snapshot. + optional string label_fingerprint = 11 [json_name = "labelFingerprint"]; + + // Labels to apply to this snapshot. These can be later modified by the + // setLabels method. Label values may be empty. + map labels = 12 [json_name = "labels"]; + + // [Output Only] Integer license codes indicating which licenses are attached + // to this snapshot. + repeated string license_codes = 13 [json_name = "licenseCodes"]; + + // [Output Only] A list of public visible licenses that apply to this + // snapshot. This can be because the original image had licenses attached + // (such as a Windows image). + repeated string licenses = 14 [json_name = "licenses"]; + + // An opaque location hint used to place the snapshot close to other + // resources. This field is for use by internal tools that use the public API. + optional string location_hint = 15 [json_name = "locationHint"]; + + // Name of the resource; provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 16 [json_name = "name"]; + + // Output only. Reserved for future use. + optional bool satisfies_pzi = 33 [json_name = "satisfiesPzi"]; + + // [Output Only] Reserved for future use. + optional bool satisfies_pzs = 17 [json_name = "satisfiesPzs"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 18 [json_name = "selfLink"]; + + // Encrypts the snapshot using a customer-supplied encryption key. After you + // encrypt a snapshot using a customer-supplied key, you must provide the same + // key if you use the snapshot later. For example, you must provide the + // encryption key when you create a disk from the encrypted snapshot in a + // future request. Customer-supplied encryption keys do not protect access to + // metadata of the snapshot. If you do not provide an encryption key when + // creating the snapshot, then the snapshot will be encrypted using an + // automatically generated key and you do not need to provide a key to use the + // snapshot later. + optional CustomerEncryptionKey snapshot_encryption_key = 19 + [json_name = "snapshotEncryptionKey"]; + + // Indicates the type of the snapshot. + // ARCHIVE: + // STANDARD: + optional string snapshot_type = 20 [json_name = "snapshotType"]; + + // The source disk used to create this snapshot. + optional string source_disk = 21 [json_name = "sourceDisk"]; + + // The customer-supplied encryption key of the source disk. Required if the + // source disk is protected by a customer-supplied encryption key. + optional CustomerEncryptionKey source_disk_encryption_key = 22 + [json_name = "sourceDiskEncryptionKey"]; + + // The source disk whose recovery checkpoint will be used to create this + // snapshot. + optional string source_disk_for_recovery_checkpoint = 30 + [json_name = "sourceDiskForRecoveryCheckpoint"]; + + // [Output Only] The ID value of the disk used to create this snapshot. This + // value may be used to determine whether the snapshot was taken from the + // current or a previous instance of a given disk name. + optional string source_disk_id = 23 [json_name = "sourceDiskId"]; + + // The source instant snapshot used to create this snapshot. You can provide + // this as a partial or full URL to the resource. For example, the following + // are valid values: - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone + // /instantSnapshots/instantSnapshot - + // projects/project/zones/zone/instantSnapshots/instantSnapshot - + // zones/zone/instantSnapshots/instantSnapshot + optional string source_instant_snapshot = 34 + [json_name = "sourceInstantSnapshot"]; + + // Customer provided encryption key when creating Snapshot from Instant + // Snapshot. + optional CustomerEncryptionKey source_instant_snapshot_encryption_key = 35 + [json_name = "sourceInstantSnapshotEncryptionKey"]; + + // [Output Only] The unique ID of the instant snapshot used to create this + // snapshot. This value identifies the exact instant snapshot that was used to + // create this snapshot. For example, if you created the snapshot from an + // instant snapshot that was later deleted and recreated under the same name, + // the source instant snapshot ID would identify the exact instant snapshot + // that was used. + optional string source_instant_snapshot_id = 36 + [json_name = "sourceInstantSnapshotId"]; + + // [Output Only] URL of the resource policy which created this scheduled + // snapshot. + optional string source_snapshot_schedule_policy = 24 + [json_name = "sourceSnapshotSchedulePolicy"]; + + // [Output Only] ID of the resource policy which created this scheduled + // snapshot. + optional string source_snapshot_schedule_policy_id = 25 + [json_name = "sourceSnapshotSchedulePolicyId"]; + + // [Output Only] The status of the snapshot. This can be CREATING, DELETING, + // FAILED, READY, or UPLOADING. + // CREATING: Snapshot creation is in progress. + // DELETING: Snapshot is currently being deleted. + // FAILED: Snapshot creation failed. + // READY: Snapshot has been created successfully. + // UPLOADING: Snapshot is being uploaded. + optional string status = 26 [json_name = "status"]; + + // [Output Only] A size of the storage used by the snapshot. As snapshots + // share storage, this number is expected to change with snapshot + // creation/deletion. + optional string storage_bytes = 27 [json_name = "storageBytes"]; + + // [Output Only] An indicator whether storageBytes is in a stable state or it + // is being adjusted as a result of shared storage reallocation. This status + // can either be UPDATING, meaning the size of the snapshot is being updated, + // or UP_TO_DATE, meaning the size of the snapshot is up-to-date. + // UPDATING: + // UP_TO_DATE: + optional string storage_bytes_status = 28 [json_name = "storageBytesStatus"]; + + // Cloud Storage bucket storage location of the snapshot (regional or + // multi-regional). + repeated string storage_locations = 29 [json_name = "storageLocations"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_123.proto b/protos/google/cloud/compute/v1/internal/common_123.proto index 86c64411d17d6..aa27a05489f5c 100644 --- a/protos/google/cloud/compute/v1/internal/common_123.proto +++ b/protos/google/cloud/compute/v1/internal/common_123.proto @@ -15,42 +15,118 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message SnapshotSettings { - // Policy of which storage location is going to be resolved, and additional - // data that particularizes how the policy is going to be carried out. - optional SnapshotSettingsStorageLocationSettings storage_location = 1 - [json_name = "storageLocation"]; -} +import "google/cloud/compute/v1/internal/common_122.proto"; -message SnapshotSettingsStorageLocationSettings { - // When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the - // locations listed in this field. Keys are Cloud Storage bucket locations. - // Only one location can be specified. - map - locations = 1 [json_name = "locations"]; - - // The chosen location policy. - // LOCAL_REGION: Store snapshot in the same region as with the originating - // disk. No additional parameters are needed. - // NEAREST_MULTI_REGION: Store snapshot in the nearest multi region Cloud - // Storage bucket, relative to the originating disk. No additional parameters - // are needed. - // SPECIFIC_LOCATIONS: Store snapshot in the specific locations, as specified - // by the user. The list of regions to store must be defined under the - // `locations` field. - // STORAGE_LOCATION_POLICY_UNSPECIFIED: - optional string policy = 2 [json_name = "policy"]; -} +// Contains a list of Snapshot resources. +message SnapshotList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of Snapshot resources. + repeated Snapshot items = 2 [json_name = "items"]; + + // Type of resource. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } -// A structure for specifying storage locations. -message SnapshotSettingsStorageLocationSettingsStorageLocationPreference { - // Name of the location. It should be one of the Cloud Storage buckets. Only - // one location can be specified. - optional string name = 1 [json_name = "name"]; + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_124.proto b/protos/google/cloud/compute/v1/internal/common_124.proto index 0128f8a4b7829..3d282e17e1302 100644 --- a/protos/google/cloud/compute/v1/internal/common_124.proto +++ b/protos/google/cloud/compute/v1/internal/common_124.proto @@ -15,243 +15,42 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents an SSL certificate resource. Google Compute Engine has two SSL -// certificate resources: * -// [Global](/compute/docs/reference/rest/v1/sslCertificates) * -// [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global -// SSL certificates (sslCertificates) are used by: - Global external Application -// Load Balancers - Classic Application Load Balancers - Proxy Network Load -// Balancers (with target SSL proxies) The regional SSL certificates -// (regionSslCertificates) are used by: - Regional external Application Load -// Balancers - Regional internal Application Load Balancers Optionally, -// certificate file contents that you upload can contain a set of up to five -// PEM-encoded certificates. The API call creates an object (sslCertificate) -// that holds this data. You can use SSL keys and certificates to secure -// connections to a load balancer. For more information, read Creating and using -// SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL -// certificates. -message SslCertificate { - // A value read into memory from a certificate file. The certificate file must - // be in PEM format. The certificate chain must be no greater than 5 certs - // long. The chain must include at least one intermediate cert. - optional string certificate = 1 [json_name = "certificate"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 3 [json_name = "description"]; - - // [Output Only] Expire time of the certificate. RFC3339 - optional string expire_time = 4 [json_name = "expireTime"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 5 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#sslCertificate for SSL - // certificates. - optional string kind = 6 [json_name = "kind"]; - - // Configuration and status of a managed SSL certificate. - optional SslCertificateManagedSslCertificate managed = 7 - [json_name = "managed"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 8 [json_name = "name"]; - - // A value read into memory from a write-only private key file. The private - // key file must be in PEM format. For security, only insert requests include - // this field. - optional string private_key = 9 [json_name = "privateKey"]; - - // [Output Only] URL of the region where the regional SSL Certificate resides. - // This field is not applicable to global SSL Certificate. - optional string region = 10 [json_name = "region"]; - - // [Output only] Server-defined URL for the resource. - optional string self_link = 11 [json_name = "selfLink"]; - - // Configuration and status of a self-managed SSL certificate. - optional SslCertificateSelfManagedSslCertificate self_managed = 12 - [json_name = "selfManaged"]; - - // [Output Only] Domains associated with the certificate via Subject - // Alternative Name. - repeated string subject_alternative_names = 13 - [json_name = "subjectAlternativeNames"]; - - // (Optional) Specifies the type of SSL certificate, either "SELF_MANAGED" or - // "MANAGED". If not specified, the certificate is self-managed and the fields - // certificate and private_key are used. - // MANAGED: Google-managed SSLCertificate. - // SELF_MANAGED: Certificate uploaded by user. - // TYPE_UNSPECIFIED: - optional string type = 14 [json_name = "type"]; -} - -// Contains a list of SslCertificate resources. -message SslCertificateList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of SslCertificate resources. - repeated SslCertificate items = 2 [json_name = "items"]; - - // Type of resource. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; +message SnapshotSettings { + // Policy of which storage location is going to be resolved, and additional + // data that particularizes how the policy is going to be carried out. + optional SnapshotSettingsStorageLocationSettings storage_location = 1 + [json_name = "storageLocation"]; } -// Configuration and status of a managed SSL certificate. -message SslCertificateManagedSslCertificate { - // [Output only] Detailed statuses of the domains specified for managed - // certificate resource. - map domain_status = 1 [json_name = "domainStatus"]; - - // The domains for which a managed SSL certificate will be generated. Each - // Google-managed SSL certificate supports up to the [maximum number of - // domains per Google-managed SSL - // certificate](/load-balancing/docs/quotas#ssl_certificates). - repeated string domains = 2 [json_name = "domains"]; - - // [Output only] Status of the managed certificate resource. - // ACTIVE: The certificate management is working, and a certificate has been - // provisioned. - // MANAGED_CERTIFICATE_STATUS_UNSPECIFIED: - // PROVISIONING: The certificate management is working. GCP will attempt to - // provision the first certificate. - // PROVISIONING_FAILED: Certificate provisioning failed due to an issue with - // the DNS or load balancing configuration. For details of which domain - // failed, consult domain_status field. - // PROVISIONING_FAILED_PERMANENTLY: Certificate provisioning failed due to an - // issue with the DNS or load balancing configuration. It won't be retried. To - // try again delete and create a new managed SslCertificate resource. For - // details of which domain failed, consult domain_status field. - // RENEWAL_FAILED: Renewal of the certificate has failed due to an issue with - // the DNS or load balancing configuration. The existing cert is still - // serving; however, it will expire shortly. To provision a renewed - // certificate, delete and create a new managed SslCertificate resource. For - // details on which domain failed, consult domain_status field. - optional string status = 3 [json_name = "status"]; +message SnapshotSettingsStorageLocationSettings { + // When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the + // locations listed in this field. Keys are Cloud Storage bucket locations. + // Only one location can be specified. + map + locations = 1 [json_name = "locations"]; + + // The chosen location policy. + // LOCAL_REGION: Store snapshot in the same region as with the originating + // disk. No additional parameters are needed. + // NEAREST_MULTI_REGION: Store snapshot in the nearest multi region Cloud + // Storage bucket, relative to the originating disk. No additional parameters + // are needed. + // SPECIFIC_LOCATIONS: Store snapshot in the specific locations, as specified + // by the user. The list of regions to store must be defined under the + // `locations` field. + // STORAGE_LOCATION_POLICY_UNSPECIFIED: + optional string policy = 2 [json_name = "policy"]; } -// Configuration and status of a self-managed SSL certificate. -message SslCertificateSelfManagedSslCertificate { - // A local certificate file. The certificate must be in PEM format. The - // certificate chain must be no greater than 5 certs long. The chain must - // include at least one intermediate cert. - optional string certificate = 1 [json_name = "certificate"]; - - // A write-only private key in PEM format. Only insert requests will include - // this field. - optional string private_key = 2 [json_name = "privateKey"]; +// A structure for specifying storage locations. +message SnapshotSettingsStorageLocationSettingsStorageLocationPreference { + // Name of the location. It should be one of the Cloud Storage buckets. Only + // one location can be specified. + optional string name = 1 [json_name = "name"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_125.proto b/protos/google/cloud/compute/v1/internal/common_125.proto index 8b1b22869b2d9..058935fa219ba 100644 --- a/protos/google/cloud/compute/v1/internal/common_125.proto +++ b/protos/google/cloud/compute/v1/internal/common_125.proto @@ -15,23 +15,103 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_124.proto"; +// Represents an SSL certificate resource. Google Compute Engine has two SSL +// certificate resources: * +// [Global](/compute/docs/reference/rest/v1/sslCertificates) * +// [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global +// SSL certificates (sslCertificates) are used by: - Global external Application +// Load Balancers - Classic Application Load Balancers - Proxy Network Load +// Balancers (with target SSL proxies) The regional SSL certificates +// (regionSslCertificates) are used by: - Regional external Application Load +// Balancers - Regional internal Application Load Balancers Optionally, +// certificate file contents that you upload can contain a set of up to five +// PEM-encoded certificates. The API call creates an object (sslCertificate) +// that holds this data. You can use SSL keys and certificates to secure +// connections to a load balancer. For more information, read Creating and using +// SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL +// certificates. +message SslCertificate { + // A value read into memory from a certificate file. The certificate file must + // be in PEM format. The certificate chain must be no greater than 5 certs + // long. The chain must include at least one intermediate cert. + optional string certificate = 1 [json_name = "certificate"]; -message SslCertificateAggregatedList { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 3 [json_name = "description"]; + + // [Output Only] Expire time of the certificate. RFC3339 + optional string expire_time = 4 [json_name = "expireTime"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 5 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#sslCertificate for SSL + // certificates. + optional string kind = 6 [json_name = "kind"]; + + // Configuration and status of a managed SSL certificate. + optional SslCertificateManagedSslCertificate managed = 7 + [json_name = "managed"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 8 [json_name = "name"]; + + // A value read into memory from a write-only private key file. The private + // key file must be in PEM format. For security, only insert requests include + // this field. + optional string private_key = 9 [json_name = "privateKey"]; + + // [Output Only] URL of the region where the regional SSL Certificate resides. + // This field is not applicable to global SSL Certificate. + optional string region = 10 [json_name = "region"]; + + // [Output only] Server-defined URL for the resource. + optional string self_link = 11 [json_name = "selfLink"]; + + // Configuration and status of a self-managed SSL certificate. + optional SslCertificateSelfManagedSslCertificate self_managed = 12 + [json_name = "selfManaged"]; + + // [Output Only] Domains associated with the certificate via Subject + // Alternative Name. + repeated string subject_alternative_names = 13 + [json_name = "subjectAlternativeNames"]; + + // (Optional) Specifies the type of SSL certificate, either "SELF_MANAGED" or + // "MANAGED". If not specified, the certificate is self-managed and the fields + // certificate and private_key are used. + // MANAGED: Google-managed SSLCertificate. + // SELF_MANAGED: Certificate uploaded by user. + // TYPE_UNSPECIFIED: + optional string type = 14 [json_name = "type"]; +} + +// Contains a list of SslCertificate resources. +message SslCertificateList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of SslCertificatesScopedList resources. - map items = 2 [json_name = "items"]; + // A list of SslCertificate resources. + repeated SslCertificate items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#sslCertificateAggregatedList - // for lists of SSL Certificates. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -44,9 +124,6 @@ message SslCertificateAggregatedList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -131,97 +208,50 @@ message SslCertificateAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; + optional Warning warning = 6 [json_name = "warning"]; } -message SslCertificatesScopedList { - // List of SslCertificates contained in this scope. - repeated SslCertificate ssl_certificates = 1 [json_name = "sslCertificates"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; +// Configuration and status of a managed SSL certificate. +message SslCertificateManagedSslCertificate { + // [Output only] Detailed statuses of the domains specified for managed + // certificate resource. + map domain_status = 1 [json_name = "domainStatus"]; - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } + // The domains for which a managed SSL certificate will be generated. Each + // Google-managed SSL certificate supports up to the [maximum number of + // domains per Google-managed SSL + // certificate](/load-balancing/docs/quotas#ssl_certificates). + repeated string domains = 2 [json_name = "domains"]; - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; + // [Output only] Status of the managed certificate resource. + // ACTIVE: The certificate management is working, and a certificate has been + // provisioned. + // MANAGED_CERTIFICATE_STATUS_UNSPECIFIED: + // PROVISIONING: The certificate management is working. GCP will attempt to + // provision the first certificate. + // PROVISIONING_FAILED: Certificate provisioning failed due to an issue with + // the DNS or load balancing configuration. For details of which domain + // failed, consult domain_status field. + // PROVISIONING_FAILED_PERMANENTLY: Certificate provisioning failed due to an + // issue with the DNS or load balancing configuration. It won't be retried. To + // try again delete and create a new managed SslCertificate resource. For + // details of which domain failed, consult domain_status field. + // RENEWAL_FAILED: Renewal of the certificate has failed due to an issue with + // the DNS or load balancing configuration. The existing cert is still + // serving; however, it will expire shortly. To provision a renewed + // certificate, delete and create a new managed SslCertificate resource. For + // details on which domain failed, consult domain_status field. + optional string status = 3 [json_name = "status"]; +} - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } +// Configuration and status of a self-managed SSL certificate. +message SslCertificateSelfManagedSslCertificate { + // A local certificate file. The certificate must be in PEM format. The + // certificate chain must be no greater than 5 certs long. The chain must + // include at least one intermediate cert. + optional string certificate = 1 [json_name = "certificate"]; - // Informational warning which replaces the list of backend services when the - // list is empty. - optional Warning warning = 2 [json_name = "warning"]; + // A write-only private key in PEM format. Only insert requests will include + // this field. + optional string private_key = 2 [json_name = "privateKey"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_126.proto b/protos/google/cloud/compute/v1/internal/common_126.proto index de72ddaa11924..399326d70ec6f 100644 --- a/protos/google/cloud/compute/v1/internal/common_126.proto +++ b/protos/google/cloud/compute/v1/internal/common_126.proto @@ -15,39 +15,37 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_127.proto"; - -message SslPoliciesAggregatedList { - optional string etag = 1 [json_name = "etag"]; +import "google/cloud/compute/v1/internal/common_125.proto"; +message SslCertificateAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 2 [json_name = "id"]; + optional string id = 1 [json_name = "id"]; - // A list of SslPoliciesScopedList resources. - map items = 3 [json_name = "items"]; + // A list of SslCertificatesScopedList resources. + map items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#sslPolicyAggregatedList for - // lists of SSL Policies. - optional string kind = 4 [json_name = "kind"]; + // [Output Only] Type of resource. Always compute#sslCertificateAggregatedList + // for lists of SSL Certificates. + optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for // list requests. If the number of results is larger than maxResults, use the // nextPageToken as a value for the query parameter pageToken in the next list // request. Subsequent list requests will have their own nextPageToken to // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; + optional string next_page_token = 4 [json_name = "nextPageToken"]; // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; + optional string self_link = 5 [json_name = "selfLink"]; // [Output Only] Unreachable resources. - repeated string unreachables = 7 [json_name = "unreachables"]; + repeated string unreachables = 6 [json_name = "unreachables"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -133,12 +131,12 @@ message SslPoliciesAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 8 [json_name = "warning"]; + optional Warning warning = 7 [json_name = "warning"]; } -message SslPoliciesScopedList { - // A list of SslPolicies contained in this scope. - repeated SslPolicy ssl_policies = 1 [json_name = "sslPolicies"]; +message SslCertificatesScopedList { + // List of SslCertificates contained in this scope. + repeated SslCertificate ssl_certificates = 1 [json_name = "sslCertificates"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -223,7 +221,7 @@ message SslPoliciesScopedList { optional string message = 3 [json_name = "message"]; } - // Informational warning which replaces the list of SSL policies when the list - // is empty. + // Informational warning which replaces the list of backend services when the + // list is empty. optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_127.proto b/protos/google/cloud/compute/v1/internal/common_127.proto index b9cd9b0805812..5e5f61e69a7d5 100644 --- a/protos/google/cloud/compute/v1/internal/common_127.proto +++ b/protos/google/cloud/compute/v1/internal/common_127.proto @@ -15,32 +15,39 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message SslPoliciesList { +import "google/cloud/compute/v1/internal/common_128.proto"; + +message SslPoliciesAggregatedList { + optional string etag = 1 [json_name = "etag"]; + // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; + optional string id = 2 [json_name = "id"]; - // A list of SslPolicy resources. - repeated SslPolicy items = 2 [json_name = "items"]; + // A list of SslPoliciesScopedList resources. + map items = 3 [json_name = "items"]; - // [Output Only] Type of the resource. Always compute#sslPoliciesList for - // lists of sslPolicies. - optional string kind = 3 [json_name = "kind"]; + // [Output Only] Type of resource. Always compute#sslPolicyAggregatedList for + // lists of SSL Policies. + optional string kind = 4 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for // list requests. If the number of results is larger than maxResults, use the // nextPageToken as a value for the query parameter pageToken in the next list // request. Subsequent list requests will have their own nextPageToken to // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; + optional string next_page_token = 5 [json_name = "nextPageToken"]; // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; + optional string self_link = 6 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 7 [json_name = "unreachables"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -126,88 +133,14 @@ message SslPoliciesList { } // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -message SslPoliciesListAvailableFeaturesResponse { - repeated string features = 1 [json_name = "features"]; + optional Warning warning = 8 [json_name = "warning"]; } -// Represents an SSL Policy resource. Use SSL policies to control SSL features, -// such as versions and cipher suites, that are offered by Application Load -// Balancers and proxy Network Load Balancers. For more information, read SSL -// policies overview. -message SslPolicy { - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - // A list of features enabled when the selected profile is CUSTOM. The method - // returns the set of features that can be specified in this list. This field - // must be empty if the profile is not CUSTOM. - repeated string custom_features = 2 [json_name = "customFeatures"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 3 [json_name = "description"]; - - // [Output Only] The list of features enabled in the SSL policy. - repeated string enabled_features = 4 [json_name = "enabledFeatures"]; - - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field will be ignored when - // inserting a SslPolicy. An up-to-date fingerprint must be provided in order - // to update the SslPolicy, otherwise the request will fail with error 412 - // conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve an SslPolicy. - optional string fingerprint = 5 [json_name = "fingerprint"]; +message SslPoliciesScopedList { + // A list of SslPolicies contained in this scope. + repeated SslPolicy ssl_policies = 1 [json_name = "sslPolicies"]; - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 6 [json_name = "id"]; - - // [Output only] Type of the resource. Always compute#sslPolicyfor SSL - // policies. - optional string kind = 7 [json_name = "kind"]; - - // The minimum version of SSL protocol that can be used by the clients to - // establish a connection with the load balancer. This can be one of TLS_1_0, - // TLS_1_1, TLS_1_2. - // TLS_1_0: TLS 1.0 - // TLS_1_1: TLS 1.1 - // TLS_1_2: TLS 1.2 - optional string min_tls_version = 8 [json_name = "minTlsVersion"]; - - // Name of the resource. The name must be 1-63 characters long, and comply - // with RFC1035. Specifically, the name must be 1-63 characters long and match - // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be - // a dash, lowercase letter, or digit, except the last character, which cannot - // be a dash. - optional string name = 9 [json_name = "name"]; - - // Profile specifies the set of SSL features that can be used by the load - // balancer when negotiating SSL with clients. This can be one of COMPATIBLE, - // MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to - // enable must be specified in the customFeatures field. - // COMPATIBLE: Compatible profile. Allows the broadset set of clients, even - // those which support only out-of-date SSL features to negotiate with the - // load balancer. - // CUSTOM: Custom profile. Allow only the set of allowed SSL features - // specified in the customFeatures field. - // MODERN: Modern profile. Supports a wide set of SSL features, allowing - // modern clients to negotiate SSL with the load balancer. - // RESTRICTED: Restricted profile. Supports a reduced set of SSL features, - // intended to meet stricter compliance requirements. - optional string profile = 10 [json_name = "profile"]; - - // [Output Only] URL of the region where the regional SSL policy resides. This - // field is not applicable to global SSL policies. - optional string region = 11 [json_name = "region"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 12 [json_name = "selfLink"]; - - message WarningsItem { + message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by @@ -290,7 +223,7 @@ message SslPolicy { optional string message = 3 [json_name = "message"]; } - // [Output Only] If potential misconfigurations are detected for this SSL - // policy, this field will be populated with warning messages. - repeated WarningsItem warnings = 13 [json_name = "warnings"]; + // Informational warning which replaces the list of SSL policies when the list + // is empty. + optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_128.proto b/protos/google/cloud/compute/v1/internal/common_128.proto index ba7a3f12f87d7..f9ee06f972116 100644 --- a/protos/google/cloud/compute/v1/internal/common_128.proto +++ b/protos/google/cloud/compute/v1/internal/common_128.proto @@ -15,14 +15,282 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message SslPolicyReference { - // URL of the SSL policy resource. Set this to empty string to clear any - // existing SSL policy associated with the target proxy resource. - optional string ssl_policy = 1 [json_name = "sslPolicy"]; +message SslPoliciesList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of SslPolicy resources. + repeated SslPolicy items = 2 [json_name = "items"]; + + // [Output Only] Type of the resource. Always compute#sslPoliciesList for + // lists of sslPolicies. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +message SslPoliciesListAvailableFeaturesResponse { + repeated string features = 1 [json_name = "features"]; +} + +// Represents an SSL Policy resource. Use SSL policies to control SSL features, +// such as versions and cipher suites, that are offered by Application Load +// Balancers and proxy Network Load Balancers. For more information, read SSL +// policies overview. +message SslPolicy { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + // A list of features enabled when the selected profile is CUSTOM. The method + // returns the set of features that can be specified in this list. This field + // must be empty if the profile is not CUSTOM. + repeated string custom_features = 2 [json_name = "customFeatures"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 3 [json_name = "description"]; + + // [Output Only] The list of features enabled in the SSL policy. + repeated string enabled_features = 4 [json_name = "enabledFeatures"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field will be ignored when + // inserting a SslPolicy. An up-to-date fingerprint must be provided in order + // to update the SslPolicy, otherwise the request will fail with error 412 + // conditionNotMet. To see the latest fingerprint, make a get() request to + // retrieve an SslPolicy. + optional string fingerprint = 5 [json_name = "fingerprint"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 6 [json_name = "id"]; + + // [Output only] Type of the resource. Always compute#sslPolicyfor SSL + // policies. + optional string kind = 7 [json_name = "kind"]; + + // The minimum version of SSL protocol that can be used by the clients to + // establish a connection with the load balancer. This can be one of TLS_1_0, + // TLS_1_1, TLS_1_2. + // TLS_1_0: TLS 1.0 + // TLS_1_1: TLS 1.1 + // TLS_1_2: TLS 1.2 + optional string min_tls_version = 8 [json_name = "minTlsVersion"]; + + // Name of the resource. The name must be 1-63 characters long, and comply + // with RFC1035. Specifically, the name must be 1-63 characters long and match + // the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must be + // a dash, lowercase letter, or digit, except the last character, which cannot + // be a dash. + optional string name = 9 [json_name = "name"]; + + // Profile specifies the set of SSL features that can be used by the load + // balancer when negotiating SSL with clients. This can be one of COMPATIBLE, + // MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to + // enable must be specified in the customFeatures field. + // COMPATIBLE: Compatible profile. Allows the broadset set of clients, even + // those which support only out-of-date SSL features to negotiate with the + // load balancer. + // CUSTOM: Custom profile. Allow only the set of allowed SSL features + // specified in the customFeatures field. + // MODERN: Modern profile. Supports a wide set of SSL features, allowing + // modern clients to negotiate SSL with the load balancer. + // RESTRICTED: Restricted profile. Supports a reduced set of SSL features, + // intended to meet stricter compliance requirements. + optional string profile = 10 [json_name = "profile"]; + + // [Output Only] URL of the region where the regional SSL policy resides. This + // field is not applicable to global SSL policies. + optional string region = 11 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 12 [json_name = "selfLink"]; + + message WarningsItem { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] If potential misconfigurations are detected for this SSL + // policy, this field will be populated with warning messages. + repeated WarningsItem warnings = 13 [json_name = "warnings"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_129.proto b/protos/google/cloud/compute/v1/internal/common_129.proto index dbd26570a4c90..6115c6e3e653e 100644 --- a/protos/google/cloud/compute/v1/internal/common_129.proto +++ b/protos/google/cloud/compute/v1/internal/common_129.proto @@ -15,636 +15,14 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a zonal storage pool resource. -message StoragePool { - // Provisioning type of the byte capacity of the pool. - // ADVANCED: Advanced provisioning "thinly" allocates the related resource. - // STANDARD: Standard provisioning allocates the related resource for the pool - // disks' exclusive use. - // UNSPECIFIED: - optional string capacity_provisioning_type = 1 - [json_name = "capacityProvisioningType"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 3 [json_name = "description"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 4 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#storagePool for storage - // pools. - optional string kind = 5 [json_name = "kind"]; - - // A fingerprint for the labels being applied to this storage pool, which is - // essentially a hash of the labels set used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels, otherwise - // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a storage pool. - optional string label_fingerprint = 6 [json_name = "labelFingerprint"]; - - // Labels to apply to this storage pool. These can be later modified by the - // setLabels method. - map labels = 7 [json_name = "labels"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 8 [json_name = "name"]; - - // Provisioning type of the performance-related parameters of the pool, such - // as throughput and IOPS. - // ADVANCED: Advanced provisioning "thinly" allocates the related resource. - // STANDARD: Standard provisioning allocates the related resource for the pool - // disks' exclusive use. - // UNSPECIFIED: - optional string performance_provisioning_type = 9 - [json_name = "performanceProvisioningType"]; - - // Size, in GiB, of the storage pool. For more information about the size - // limits, see https://cloud.google.com/compute/docs/disks/storage-pools. - optional string pool_provisioned_capacity_gb = 10 - [json_name = "poolProvisionedCapacityGb"]; - - // Provisioned IOPS of the storage pool. Only relevant if the storage pool - // type is hyperdisk-balanced. - optional string pool_provisioned_iops = 11 - [json_name = "poolProvisionedIops"]; - - // Provisioned throughput of the storage pool. Only relevant if the storage - // pool type is hyperdisk-balanced or hyperdisk-throughput. - optional string pool_provisioned_throughput = 12 - [json_name = "poolProvisionedThroughput"]; - - // [Output Only] Status information for the storage pool resource. - optional StoragePoolResourceStatus resource_status = 13 - [json_name = "resourceStatus"]; - - // [Output Only] Server-defined fully-qualified URL for this resource. - optional string self_link = 14 [json_name = "selfLink"]; - - // [Output Only] Server-defined URL for this resource's resource id. - optional string self_link_with_id = 15 [json_name = "selfLinkWithId"]; - - // [Output Only] The status of storage pool creation. - CREATING: Storage pool - // is provisioning. storagePool. - FAILED: Storage pool creation failed. - - // READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. - // CREATING: StoragePool is provisioning - // DELETING: StoragePool is deleting. - // FAILED: StoragePool creation failed. - // READY: StoragePool is ready for use. - optional string state = 16 [json_name = "state"]; - - // [Output Only] Status information for the storage pool resource. - optional StoragePoolResourceStatus status = 17 [json_name = "status"]; - - // Type of the storage pool. - optional string storage_pool_type = 18 [json_name = "storagePoolType"]; - - // [Output Only] URL of the zone where the storage pool resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - optional string zone = 19 [json_name = "zone"]; -} - -message StoragePoolAggregatedList { - optional string etag = 1 [json_name = "etag"]; - - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 2 [json_name = "id"]; - - // A list of StoragePoolsScopedList resources. - map items = 3 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#storagePoolAggregatedList - // for aggregated lists of storage pools. - optional string kind = 4 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 7 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 8 [json_name = "warning"]; -} - -message StoragePoolDisk { - // [Output Only] Instances this disk is attached to. - repeated string attached_instances = 1 [json_name = "attachedInstances"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - - // [Output Only] The URL of the disk. - optional string disk = 3 [json_name = "disk"]; - - // [Output Only] The name of the disk. - optional string name = 4 [json_name = "name"]; - - // [Output Only] The number of IOPS provisioned for the disk. - optional string provisioned_iops = 5 [json_name = "provisionedIops"]; - - // [Output Only] The throughput provisioned for the disk. - optional string provisioned_throughput = 6 - [json_name = "provisionedThroughput"]; - - // [Output Only] Resource policies applied to disk for automatic snapshot - // creations. - repeated string resource_policies = 7 [json_name = "resourcePolicies"]; - - // [Output Only] The disk size, in GB. - optional string size_gb = 8 [json_name = "sizeGb"]; - - // [Output Only] The disk status. - // CREATING: Disk is provisioning - // DELETING: Disk is deleting. - // FAILED: Disk creation failed. - // READY: Disk is ready for use. - // RESTORING: Source data is being copied into the disk. - // UNAVAILABLE: Disk is currently unavailable and cannot be accessed, attached - // or detached. - optional string status = 9 [json_name = "status"]; - - // [Output Only] The disk type. - optional string type = 10 [json_name = "type"]; - - // [Output Only] Amount of disk space used. - optional string used_bytes = 11 [json_name = "usedBytes"]; -} - -// A list of StoragePool resources. -message StoragePoolList { - optional string etag = 1 [json_name = "etag"]; - - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 2 [json_name = "id"]; - - // A list of StoragePool resources. - repeated StoragePool items = 3 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#storagePoolList for lists of - // storagePools. - optional string kind = 4 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. end_interface: - // MixerListResponseWithEtagBuilder - repeated string unreachables = 7 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 8 [json_name = "warning"]; -} - -message StoragePoolListDisks { - optional string etag = 1 [json_name = "etag"]; - - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 2 [json_name = "id"]; - - // A list of StoragePoolDisk resources. - repeated StoragePoolDisk items = 3 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#storagePoolListDisks for - // lists of disks in a storagePool. - optional string kind = 4 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 5 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 6 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. end_interface: - // MixerListResponseWithEtagBuilder - repeated string unreachables = 7 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 8 [json_name = "warning"]; -} - -// [Output Only] Contains output only fields. -message StoragePoolResourceStatus { - // [Output Only] Number of disks used. - optional string disk_count = 1 [json_name = "diskCount"]; - - // [Output Only] Timestamp of the last successful resize in RFC3339 text - // format. - optional string last_resize_timestamp = 2 [json_name = "lastResizeTimestamp"]; - - // [Output Only] Maximum allowed aggregate disk size in gigabytes. - optional string max_total_provisioned_disk_capacity_gb = 3 - [json_name = "maxTotalProvisionedDiskCapacityGb"]; - - // [Output Only] Space used by data stored in disks within the storage pool - // (in bytes). This will reflect the total number of bytes written to the - // disks in the pool, in contrast to the capacity of those disks. - optional string pool_used_capacity_bytes = 4 - [json_name = "poolUsedCapacityBytes"]; - - // [Output Only] Sum of all the disks' provisioned IOPS, minus some amount - // that is allowed per disk that is not counted towards pool's IOPS capacity. - // For more information, see - // https://cloud.google.com/compute/docs/disks/storage-pools. - optional string pool_used_iops = 5 [json_name = "poolUsedIops"]; - - // [Output Only] Sum of all the disks' provisioned throughput in MB/s. - optional string pool_used_throughput = 6 [json_name = "poolUsedThroughput"]; - - // [Output Only] Amount of data written into the pool, before it is compacted. - optional string pool_user_written_bytes = 7 - [json_name = "poolUserWrittenBytes"]; - - // [Output Only] Sum of all the capacity provisioned in disks in this storage - // pool. A disk's provisioned capacity is the same as its total capacity. - optional string total_provisioned_disk_capacity_gb = 8 - [json_name = "totalProvisionedDiskCapacityGb"]; - - // [Output Only] Sum of all the disks' provisioned IOPS. - optional string total_provisioned_disk_iops = 9 - [json_name = "totalProvisionedDiskIops"]; - - // [Output Only] Sum of all the disks' provisioned throughput in MB/s, minus - // some amount that is allowed per disk that is not counted towards pool's - // throughput capacity. - optional string total_provisioned_disk_throughput = 10 - [json_name = "totalProvisionedDiskThroughput"]; -} - -message StoragePoolsScopedList { - // [Output Only] A list of storage pool contained in this scope. - repeated StoragePool storage_pools = 1 [json_name = "storagePools"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning which replaces the list of storage pool - // when the list is empty. - optional Warning warning = 2 [json_name = "warning"]; +message SslPolicyReference { + // URL of the SSL policy resource. Set this to empty string to clear any + // existing SSL policy associated with the target proxy resource. + optional string ssl_policy = 1 [json_name = "sslPolicy"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_130.proto b/protos/google/cloud/compute/v1/internal/common_130.proto index 0ccf3a5318a4a..81c1be20e1289 100644 --- a/protos/google/cloud/compute/v1/internal/common_130.proto +++ b/protos/google/cloud/compute/v1/internal/common_130.proto @@ -15,99 +15,298 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; +// Represents a zonal storage pool resource. +message StoragePool { + // Provisioning type of the byte capacity of the pool. + // ADVANCED: Advanced provisioning "thinly" allocates the related resource. + // STANDARD: Standard provisioning allocates the related resource for the pool + // disks' exclusive use. + // UNSPECIFIED: + optional string capacity_provisioning_type = 1 + [json_name = "capacityProvisioningType"]; -message StoragePoolType { // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - // [Output Only] The deprecation status associated with this storage pool - // type. - optional DeprecationStatus deprecated = 2 [json_name = "deprecated"]; - - // [Output Only] An optional description of this resource. + // An optional description of this resource. Provide this property when you + // create the resource. optional string description = 3 [json_name = "description"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. optional string id = 4 [json_name = "id"]; - // [Output Only] Type of the resource. Always compute#storagePoolType for - // storage pool types. + // [Output Only] Type of the resource. Always compute#storagePool for storage + // pools. optional string kind = 5 [json_name = "kind"]; - // [Output Only] Maximum storage pool size in GB. - optional string max_pool_provisioned_capacity_gb = 6 - [json_name = "maxPoolProvisionedCapacityGb"]; + // A fingerprint for the labels being applied to this storage pool, which is + // essentially a hash of the labels set used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide an + // up-to-date fingerprint hash in order to update or change labels, otherwise + // the request will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve a storage pool. + optional string label_fingerprint = 6 [json_name = "labelFingerprint"]; + + // Labels to apply to this storage pool. These can be later modified by the + // setLabels method. + map labels = 7 [json_name = "labels"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 8 [json_name = "name"]; + + // Provisioning type of the performance-related parameters of the pool, such + // as throughput and IOPS. + // ADVANCED: Advanced provisioning "thinly" allocates the related resource. + // STANDARD: Standard provisioning allocates the related resource for the pool + // disks' exclusive use. + // UNSPECIFIED: + optional string performance_provisioning_type = 9 + [json_name = "performanceProvisioningType"]; + + // Size, in GiB, of the storage pool. For more information about the size + // limits, see https://cloud.google.com/compute/docs/disks/storage-pools. + optional string pool_provisioned_capacity_gb = 10 + [json_name = "poolProvisionedCapacityGb"]; + + // Provisioned IOPS of the storage pool. Only relevant if the storage pool + // type is hyperdisk-balanced. + optional string pool_provisioned_iops = 11 + [json_name = "poolProvisionedIops"]; + + // Provisioned throughput of the storage pool. Only relevant if the storage + // pool type is hyperdisk-balanced or hyperdisk-throughput. + optional string pool_provisioned_throughput = 12 + [json_name = "poolProvisionedThroughput"]; + + // [Output Only] Status information for the storage pool resource. + optional StoragePoolResourceStatus resource_status = 13 + [json_name = "resourceStatus"]; + + // [Output Only] Server-defined fully-qualified URL for this resource. + optional string self_link = 14 [json_name = "selfLink"]; - // [Output Only] Maximum provisioned IOPS. - optional string max_pool_provisioned_iops = 7 - [json_name = "maxPoolProvisionedIops"]; + // [Output Only] Server-defined URL for this resource's resource id. + optional string self_link_with_id = 15 [json_name = "selfLinkWithId"]; - // [Output Only] Maximum provisioned throughput. - optional string max_pool_provisioned_throughput = 8 - [json_name = "maxPoolProvisionedThroughput"]; + // [Output Only] The status of storage pool creation. - CREATING: Storage pool + // is provisioning. storagePool. - FAILED: Storage pool creation failed. - + // READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. + // CREATING: StoragePool is provisioning + // DELETING: StoragePool is deleting. + // FAILED: StoragePool creation failed. + // READY: StoragePool is ready for use. + optional string state = 16 [json_name = "state"]; - // [Output Only] Minimum storage pool size in GB. - optional string min_pool_provisioned_capacity_gb = 9 - [json_name = "minPoolProvisionedCapacityGb"]; + // [Output Only] Status information for the storage pool resource. + optional StoragePoolResourceStatus status = 17 [json_name = "status"]; - // [Output Only] Minimum provisioned IOPS. - optional string min_pool_provisioned_iops = 10 - [json_name = "minPoolProvisionedIops"]; + // Type of the storage pool. + optional string storage_pool_type = 18 [json_name = "storagePoolType"]; - // [Output Only] Minimum provisioned throughput. - optional string min_pool_provisioned_throughput = 11 - [json_name = "minPoolProvisionedThroughput"]; + // [Output Only] URL of the zone where the storage pool resides. You must + // specify this field as part of the HTTP request URL. It is not settable as a + // field in the request body. + optional string zone = 19 [json_name = "zone"]; +} - // [Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb - // instead. - optional string min_size_gb = 12 [json_name = "minSizeGb"]; +message StoragePoolAggregatedList { + optional string etag = 1 [json_name = "etag"]; - // [Output Only] Name of the resource. - optional string name = 13 [json_name = "name"]; + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 2 [json_name = "id"]; - // [Output Only] Server-defined URL for the resource. - optional string self_link = 14 [json_name = "selfLink"]; + // A list of StoragePoolsScopedList resources. + map items = 3 [json_name = "items"]; - // [Output Only] Server-defined URL for this resource with the resource id. - optional string self_link_with_id = 15 [json_name = "selfLinkWithId"]; + // [Output Only] Type of resource. Always compute#storagePoolAggregatedList + // for aggregated lists of storage pools. + optional string kind = 4 [json_name = "kind"]; - // [Output Only] The list of disk types supported in this storage pool type. - repeated string supported_disk_types = 16 [json_name = "supportedDiskTypes"]; + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 5 [json_name = "nextPageToken"]; - // [Output Only] URL of the zone where the storage pool type resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - optional string zone = 17 [json_name = "zone"]; + // [Output Only] Server-defined URL for this resource. + optional string self_link = 6 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 7 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 8 [json_name = "warning"]; +} + +message StoragePoolDisk { + // [Output Only] Instances this disk is attached to. + repeated string attached_instances = 1 [json_name = "attachedInstances"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + + // [Output Only] The URL of the disk. + optional string disk = 3 [json_name = "disk"]; + + // [Output Only] The name of the disk. + optional string name = 4 [json_name = "name"]; + + // [Output Only] The number of IOPS provisioned for the disk. + optional string provisioned_iops = 5 [json_name = "provisionedIops"]; + + // [Output Only] The throughput provisioned for the disk. + optional string provisioned_throughput = 6 + [json_name = "provisionedThroughput"]; + + // [Output Only] Resource policies applied to disk for automatic snapshot + // creations. + repeated string resource_policies = 7 [json_name = "resourcePolicies"]; + + // [Output Only] The disk size, in GB. + optional string size_gb = 8 [json_name = "sizeGb"]; + + // [Output Only] The disk status. + // CREATING: Disk is provisioning + // DELETING: Disk is deleting. + // FAILED: Disk creation failed. + // READY: Disk is ready for use. + // RESTORING: Source data is being copied into the disk. + // UNAVAILABLE: Disk is currently unavailable and cannot be accessed, attached + // or detached. + optional string status = 9 [json_name = "status"]; + + // [Output Only] The disk type. + optional string type = 10 [json_name = "type"]; + + // [Output Only] Amount of disk space used. + optional string used_bytes = 11 [json_name = "usedBytes"]; } -message StoragePoolTypeAggregatedList { +// A list of StoragePool resources. +message StoragePoolList { + optional string etag = 1 [json_name = "etag"]; + // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; + optional string id = 2 [json_name = "id"]; - // A list of StoragePoolTypesScopedList resources. - map items = 2 [json_name = "items"]; + // A list of StoragePool resources. + repeated StoragePool items = 3 [json_name = "items"]; - // [Output Only] Type of resource. Always - // compute#storagePoolTypeAggregatedList . - optional string kind = 3 [json_name = "kind"]; + // [Output Only] Type of resource. Always compute#storagePoolList for lists of + // storagePools. + optional string kind = 4 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for // list requests. If the number of results is larger than maxResults, use the // nextPageToken as a value for the query parameter pageToken in the next list // request. Subsequent list requests will have their own nextPageToken to // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; + optional string next_page_token = 5 [json_name = "nextPageToken"]; // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; + optional string self_link = 6 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. end_interface: + // MixerListResponseWithEtagBuilder + repeated string unreachables = 7 [json_name = "unreachables"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -193,30 +392,35 @@ message StoragePoolTypeAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + optional Warning warning = 8 [json_name = "warning"]; } -// Contains a list of storage pool types. -message StoragePoolTypeList { +message StoragePoolListDisks { + optional string etag = 1 [json_name = "etag"]; + // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; + optional string id = 2 [json_name = "id"]; - // A list of StoragePoolType resources. - repeated StoragePoolType items = 2 [json_name = "items"]; + // A list of StoragePoolDisk resources. + repeated StoragePoolDisk items = 3 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#storagePoolTypeList for - // storage pool types. - optional string kind = 3 [json_name = "kind"]; + // [Output Only] Type of resource. Always compute#storagePoolListDisks for + // lists of disks in a storagePool. + optional string kind = 4 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for // list requests. If the number of results is larger than maxResults, use the // nextPageToken as a value for the query parameter pageToken in the next list // request. Subsequent list requests will have their own nextPageToken to // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; + optional string next_page_token = 5 [json_name = "nextPageToken"]; // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; + optional string self_link = 6 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. end_interface: + // MixerListResponseWithEtagBuilder + repeated string unreachables = 7 [json_name = "unreachables"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -302,13 +506,60 @@ message StoragePoolTypeList { } // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + optional Warning warning = 8 [json_name = "warning"]; +} + +// [Output Only] Contains output only fields. +message StoragePoolResourceStatus { + // [Output Only] Number of disks used. + optional string disk_count = 1 [json_name = "diskCount"]; + + // [Output Only] Timestamp of the last successful resize in RFC3339 text + // format. + optional string last_resize_timestamp = 2 [json_name = "lastResizeTimestamp"]; + + // [Output Only] Maximum allowed aggregate disk size in gigabytes. + optional string max_total_provisioned_disk_capacity_gb = 3 + [json_name = "maxTotalProvisionedDiskCapacityGb"]; + + // [Output Only] Space used by data stored in disks within the storage pool + // (in bytes). This will reflect the total number of bytes written to the + // disks in the pool, in contrast to the capacity of those disks. + optional string pool_used_capacity_bytes = 4 + [json_name = "poolUsedCapacityBytes"]; + + // [Output Only] Sum of all the disks' provisioned IOPS, minus some amount + // that is allowed per disk that is not counted towards pool's IOPS capacity. + // For more information, see + // https://cloud.google.com/compute/docs/disks/storage-pools. + optional string pool_used_iops = 5 [json_name = "poolUsedIops"]; + + // [Output Only] Sum of all the disks' provisioned throughput in MB/s. + optional string pool_used_throughput = 6 [json_name = "poolUsedThroughput"]; + + // [Output Only] Amount of data written into the pool, before it is compacted. + optional string pool_user_written_bytes = 7 + [json_name = "poolUserWrittenBytes"]; + + // [Output Only] Sum of all the capacity provisioned in disks in this storage + // pool. A disk's provisioned capacity is the same as its total capacity. + optional string total_provisioned_disk_capacity_gb = 8 + [json_name = "totalProvisionedDiskCapacityGb"]; + + // [Output Only] Sum of all the disks' provisioned IOPS. + optional string total_provisioned_disk_iops = 9 + [json_name = "totalProvisionedDiskIops"]; + + // [Output Only] Sum of all the disks' provisioned throughput in MB/s, minus + // some amount that is allowed per disk that is not counted towards pool's + // throughput capacity. + optional string total_provisioned_disk_throughput = 10 + [json_name = "totalProvisionedDiskThroughput"]; } -message StoragePoolTypesScopedList { - // [Output Only] A list of storage pool types contained in this scope. - repeated StoragePoolType storage_pool_types = 1 - [json_name = "storagePoolTypes"]; +message StoragePoolsScopedList { + // [Output Only] A list of storage pool contained in this scope. + repeated StoragePool storage_pools = 1 [json_name = "storagePools"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -394,6 +645,6 @@ message StoragePoolTypesScopedList { } // [Output Only] Informational warning which replaces the list of storage pool - // types when the list is empty. + // when the list is empty. optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_131.proto b/protos/google/cloud/compute/v1/internal/common_131.proto index a984df5356dd0..9af025b87d923 100644 --- a/protos/google/cloud/compute/v1/internal/common_131.proto +++ b/protos/google/cloud/compute/v1/internal/common_131.proto @@ -15,219 +15,88 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a -// logical partition of a Virtual Private Cloud network with one primary IP -// range and zero or more secondary IP ranges. For more information, read -// Virtual Private Cloud (VPC) Network. -message Subnetwork { +import "google/cloud/compute/v1/internal/common_023.proto"; + +message StoragePoolType { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - // An optional description of this resource. Provide this property when you - // create the resource. This field can be set only at resource creation time. - optional string description = 2 [json_name = "description"]; + // [Output Only] The deprecation status associated with this storage pool + // type. + optional DeprecationStatus deprecated = 2 [json_name = "deprecated"]; - // Whether to enable flow logging for this subnetwork. If this field is not - // explicitly set, it will not appear in get listings. If not set the default - // behavior is determined by the org policy, if there is no org policy - // specified, then it will default to disabled. This field isn't supported if - // the subnet purpose field is set to REGIONAL_MANAGED_PROXY. - optional bool enable_flow_logs = 3 [json_name = "enableFlowLogs"]; + // [Output Only] An optional description of this resource. + optional string description = 3 [json_name = "description"]; - // The external IPv6 address range that is owned by this subnetwork. - optional string external_ipv6_prefix = 4 [json_name = "externalIpv6Prefix"]; + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 4 [json_name = "id"]; - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field will be ignored when - // inserting a Subnetwork. An up-to-date fingerprint must be provided in order - // to update the Subnetwork, otherwise the request will fail with error 412 - // conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve a Subnetwork. - optional string fingerprint = 5 [json_name = "fingerprint"]; + // [Output Only] Type of the resource. Always compute#storagePoolType for + // storage pool types. + optional string kind = 5 [json_name = "kind"]; - // [Output Only] The gateway address for default routes to reach destination - // addresses outside this subnetwork. - optional string gateway_address = 6 [json_name = "gatewayAddress"]; + // [Output Only] Maximum storage pool size in GB. + optional string max_pool_provisioned_capacity_gb = 6 + [json_name = "maxPoolProvisionedCapacityGb"]; - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 7 [json_name = "id"]; - - // The internal IPv6 address range that is owned by this subnetwork. - optional string internal_ipv6_prefix = 8 [json_name = "internalIpv6Prefix"]; - - // The range of internal addresses that are owned by this subnetwork. Provide - // this property when you create the subnetwork. For example, 10.0.0.0/8 or - // 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. - // Only IPv4 is supported. This field is set at resource creation time. The - // range can be any range listed in the Valid ranges list. The range can be - // expanded after creation using expandIpCidrRange. - optional string ip_cidr_range = 9 [json_name = "ipCidrRange"]; - - // Reference to the source of IP, like a PublicDelegatedPrefix (PDP) for - // BYOIP. The PDP must be a sub-PDP in EXTERNAL_IPV6_SUBNETWORK_CREATION mode. - // Use one of the following formats to specify a sub-PDP when creating a dual - // stack subnetwork with external access using BYOIP: - Full resource URL, as - // in https://www.googleapis.com/compute/v1/projects/projectId/regions/region - // /publicDelegatedPrefixes/sub-pdp-name - Partial URL, as in - - // projects/projectId/regions/region/publicDelegatedPrefixes/ sub-pdp-name - - // regions/region/publicDelegatedPrefixes/sub-pdp-name - optional string ip_collection = 26 [json_name = "ipCollection"]; - - // The access type of IPv6 address this subnet holds. It's immutable and can - // only be specified during creation or the first time the subnet is updated - // into IPV4_IPV6 dual stack. - // EXTERNAL: VMs on this subnet will be assigned IPv6 addresses that are - // accessible via the Internet, as well as the VPC network. - // INTERNAL: VMs on this subnet will be assigned IPv6 addresses that are only - // accessible over the VPC network. - optional string ipv6_access_type = 10 [json_name = "ipv6AccessType"]; - - // [Output Only] This field is for internal use. - optional string ipv6_cidr_range = 11 [json_name = "ipv6CidrRange"]; - - // [Output Only] Possible endpoints of this subnetwork. It can be one of the - // following: - VM_ONLY: The subnetwork can be used for creating instances and - // IPv6 addresses with VM endpoint type. Such a subnetwork gets external IPv6 - // ranges from a public delegated prefix and cannot be used to create NetLb. - - // VM_AND_FR: The subnetwork can be used for creating both VM instances and - // Forwarding Rules. It can also be used to reserve IPv6 addresses with both - // VM and FR endpoint types. Such a subnetwork gets its IPv6 range from Google - // IP Pool directly. - // VM_AND_FR: - // VM_ONLY: - optional string ipv6_gce_endpoint = 27 [json_name = "ipv6GceEndpoint"]; - - // [Output Only] Type of the resource. Always compute#subnetwork for - // Subnetwork resources. - optional string kind = 12 [json_name = "kind"]; - - // This field denotes the VPC flow logging options for this subnetwork. If - // logging is enabled, logs are exported to Cloud Logging. - optional SubnetworkLogConfig log_config = 13 [json_name = "logConfig"]; - - // The name of the resource, provided by the client when initially creating - // the resource. The name must be 1-63 characters long, and comply with - // RFC1035. Specifically, the name must be 1-63 characters long and match the - // regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be - // a dash, lowercase letter, or digit, except the last character, which cannot - // be a dash. - optional string name = 14 [json_name = "name"]; - - // The URL of the network to which this subnetwork belongs, provided by the - // client when initially creating the subnetwork. This field can be set only - // at resource creation time. - optional string network = 15 [json_name = "network"]; - - // Whether the VMs in this subnet can access Google services without assigned - // external IP addresses. This field can be both set at resource creation time - // and updated using setPrivateIpGoogleAccess. - optional bool private_ip_google_access = 16 - [json_name = "privateIpGoogleAccess"]; - - // This field is for internal use. This field can be both set at resource - // creation time and updated using patch. - // DISABLE_GOOGLE_ACCESS: Disable private IPv6 access to/from Google services. - // ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE: Bidirectional private IPv6 access - // to/from Google services. - // ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE: Outbound private IPv6 access from VMs - // in this subnet to Google services. - optional string private_ipv6_google_access = 17 - [json_name = "privateIpv6GoogleAccess"]; - - // GLOBAL_MANAGED_PROXY: Subnet reserved for Global Envoy-based Load - // Balancing. - // INTERNAL_HTTPS_LOAD_BALANCER: Subnet reserved for Internal HTTP(S) Load - // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY + // [Output Only] Maximum provisioned IOPS. + optional string max_pool_provisioned_iops = 7 + [json_name = "maxPoolProvisionedIops"]; + + // [Output Only] Maximum provisioned throughput. + optional string max_pool_provisioned_throughput = 8 + [json_name = "maxPoolProvisionedThroughput"]; + + // [Output Only] Minimum storage pool size in GB. + optional string min_pool_provisioned_capacity_gb = 9 + [json_name = "minPoolProvisionedCapacityGb"]; + + // [Output Only] Minimum provisioned IOPS. + optional string min_pool_provisioned_iops = 10 + [json_name = "minPoolProvisionedIops"]; + + // [Output Only] Minimum provisioned throughput. + optional string min_pool_provisioned_throughput = 11 + [json_name = "minPoolProvisionedThroughput"]; + + // [Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb // instead. - // PEER_MIGRATION: Subnetwork will be used for Migration from one peered VPC - // to another. (a transient state of subnetwork while migrating resources from - // one project to another). - // PRIVATE: Regular user created or automatically created subnet. - // PRIVATE_NAT: Subnetwork used as source range for Private NAT Gateways. - // PRIVATE_RFC_1918: Regular user created or automatically created subnet. - // PRIVATE_SERVICE_CONNECT: Subnetworks created for Private Service Connect in - // the producer network. - // REGIONAL_MANAGED_PROXY: Subnetwork used for Regional Envoy-based Load - // Balancing. - optional string purpose = 18 [json_name = "purpose"]; - - // URL of the region where the Subnetwork resides. This field can be set only - // at resource creation time. - optional string region = 19 [json_name = "region"]; - - // The URL of the reserved internal range. - optional string reserved_internal_range = 25 - [json_name = "reservedInternalRange"]; - - // The role of subnetwork. Currently, this field is only used when purpose is - // set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set - // to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being - // used for Envoy-based load balancers in a region. A BACKUP subnetwork is one - // that is ready to be promoted to ACTIVE or is currently draining. This field - // can be updated with a patch request. - // ACTIVE: The ACTIVE subnet that is currently used. - // BACKUP: The BACKUP subnet that could be promoted to ACTIVE. - optional string role = 20 [json_name = "role"]; - - // An array of configurations for secondary IP ranges for VM instances - // contained in this subnetwork. The primary IP of such VM must belong to the - // primary ipCidrRange of the subnetwork. The alias IPs may belong to either - // primary or secondary ranges. This field can be updated with a patch - // request. - repeated SubnetworkSecondaryRange secondary_ip_ranges = 21 - [json_name = "secondaryIpRanges"]; + optional string min_size_gb = 12 [json_name = "minSizeGb"]; + + // [Output Only] Name of the resource. + optional string name = 13 [json_name = "name"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 22 [json_name = "selfLink"]; - - // The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet - // are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the - // subnet can be assigned both IPv4 and IPv6 addresses. If not specified, - // IPV4_ONLY is used. This field can be both set at resource creation time and - // updated using patch. - // IPV4_IPV6: New VMs in this subnet can have both IPv4 and IPv6 addresses. - // IPV4_ONLY: New VMs in this subnet will only be assigned IPv4 addresses. - // IPV6_ONLY: New VMs in this subnet will only be assigned IPv6 addresses. - optional string stack_type = 23 [json_name = "stackType"]; - - // [Output Only] The state of the subnetwork, which can be one of the - // following values: READY: Subnetwork is created and ready to use DRAINING: - // only applicable to subnetworks that have the purpose set to - // INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load - // balancer are being drained. A subnetwork that is draining cannot be used or - // modified until it reaches a status of READY - // DRAINING: Subnetwork is being drained. - // READY: Subnetwork is ready for use. - optional string state = 24 [json_name = "state"]; - - // Output only. [Output Only] The array of external IPv6 network ranges - // reserved from the subnetwork's external IPv6 range for system use. - repeated string system_reserved_external_ipv6_ranges = 28 - [json_name = "systemReservedExternalIpv6Ranges"]; - - // Output only. [Output Only] The array of internal IPv6 network ranges - // reserved from the subnetwork's internal IPv6 range for system use. - repeated string system_reserved_internal_ipv6_ranges = 29 - [json_name = "systemReservedInternalIpv6Ranges"]; + optional string self_link = 14 [json_name = "selfLink"]; + + // [Output Only] Server-defined URL for this resource with the resource id. + optional string self_link_with_id = 15 [json_name = "selfLinkWithId"]; + + // [Output Only] The list of disk types supported in this storage pool type. + repeated string supported_disk_types = 16 [json_name = "supportedDiskTypes"]; + + // [Output Only] URL of the zone where the storage pool type resides. You must + // specify this field as part of the HTTP request URL. It is not settable as a + // field in the request body. + optional string zone = 17 [json_name = "zone"]; } -message SubnetworkAggregatedList { +message StoragePoolTypeAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of SubnetworksScopedList resources. - map items = 2 [json_name = "items"]; + // A list of StoragePoolTypesScopedList resources. + map items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#subnetworkAggregatedList for - // aggregated lists of subnetworks. + // [Output Only] Type of resource. Always + // compute#storagePoolTypeAggregatedList . optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -240,9 +109,6 @@ message SubnetworkAggregatedList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -327,19 +193,19 @@ message SubnetworkAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; + optional Warning warning = 6 [json_name = "warning"]; } -// Contains a list of Subnetwork resources. -message SubnetworkList { +// Contains a list of storage pool types. +message StoragePoolTypeList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of Subnetwork resources. - repeated Subnetwork items = 2 [json_name = "items"]; + // A list of StoragePoolType resources. + repeated StoragePoolType items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#subnetworkList for lists of - // subnetworks. + // [Output Only] Type of resource. Always compute#storagePoolTypeList for + // storage pool types. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -439,174 +305,10 @@ message SubnetworkList { optional Warning warning = 6 [json_name = "warning"]; } -// The available logging options for this subnetwork. -message SubnetworkLogConfig { - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // Toggles the aggregation interval for collecting flow logs. Increasing the - // interval time will reduce the amount of generated flow logs for long - // lasting connections. Default is an interval of 5 seconds per connection. - // INTERVAL_10_MIN: - // INTERVAL_15_MIN: - // INTERVAL_1_MIN: - // INTERVAL_30_SEC: - // INTERVAL_5_MIN: - // INTERVAL_5_SEC: - optional string aggregation_interval = 1 [json_name = "aggregationInterval"]; - - // Whether to enable flow logging for this subnetwork. If this field is not - // explicitly set, it will not appear in get listings. If not set the default - // behavior is determined by the org policy, if there is no org policy - // specified, then it will default to disabled. Flow logging isn't supported - // if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. - optional bool enable = 2 [json_name = "enable"]; - - // Can only be specified if VPC flow logs for this subnetwork is enabled. The - // filter expression is used to define which VPC flow logs should be exported - // to Cloud Logging. - optional string filter_expr = 3 [json_name = "filterExpr"]; - - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // The value of the field must be in [0, 1]. Set the sampling rate of VPC flow - // logs within the subnetwork where 1.0 means all collected logs are reported - // and 0.0 means no logs are reported. Default is 0.5 unless otherwise - // specified by the org policy, which means half of all collected logs are - // reported. - optional float flow_sampling = 4 [json_name = "flowSampling"]; - - // Can only be specified if VPC flow logs for this subnetwork is enabled. - // Configures whether all, none or a subset of metadata fields should be added - // to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. - // CUSTOM_METADATA: - // EXCLUDE_ALL_METADATA: - // INCLUDE_ALL_METADATA: - optional string metadata = 5 [json_name = "metadata"]; - - // Can only be specified if VPC flow logs for this subnetwork is enabled and - // "metadata" was set to CUSTOM_METADATA. - repeated string metadata_fields = 6 [json_name = "metadataFields"]; -} - -// Represents a secondary IP range of a subnetwork. -message SubnetworkSecondaryRange { - // The range of IP addresses belonging to this subnetwork secondary range. - // Provide this property when you create the subnetwork. Ranges must be unique - // and non-overlapping with all primary and secondary IP ranges within a - // network. Only IPv4 is supported. The range can be any range listed in the - // Valid ranges list. - optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; - - // The name associated with this subnetwork secondary range, used when adding - // an alias IP range to a VM instance. The name must be 1-63 characters long, - // and comply with RFC1035. The name must be unique within the subnetwork. - optional string range_name = 2 [json_name = "rangeName"]; - - // The URL of the reserved internal range. - optional string reserved_internal_range = 3 - [json_name = "reservedInternalRange"]; -} - -message SubnetworksExpandIpCidrRangeRequest { - // The IP (in CIDR format or netmask) of internal addresses that are legal on - // this Subnetwork. This range should be disjoint from other subnetworks - // within this network. This range can only be larger than (i.e. a superset - // of) the range previously defined before the update. - optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; -} - -message SubnetworksScopedList { - // A list of subnetworks contained in this scope. - repeated Subnetwork subnetworks = 1 [json_name = "subnetworks"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // An informational warning that appears when the list of addresses is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message SubnetworksScopedWarning { - // Name of the scope containing this set of Subnetworks. - optional string scope_name = 1 [json_name = "scopeName"]; +message StoragePoolTypesScopedList { + // [Output Only] A list of storage pool types contained in this scope. + repeated StoragePoolType storage_pool_types = 1 + [json_name = "storagePoolTypes"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -691,212 +393,7 @@ message SubnetworksScopedWarning { optional string message = 3 [json_name = "message"]; } - // An informational warning about unreachable scope + // [Output Only] Informational warning which replaces the list of storage pool + // types when the list is empty. optional Warning warning = 2 [json_name = "warning"]; } - -message SubnetworksSetPrivateIpGoogleAccessRequest { - optional bool private_ip_google_access = 1 - [json_name = "privateIpGoogleAccess"]; -} - -// Subnetwork which the current user has compute.subnetworks.use permission on. -message UsableSubnetwork { - // [Output Only] The external IPv6 address range that is assigned to this - // subnetwork. - optional string external_ipv6_prefix = 1 [json_name = "externalIpv6Prefix"]; - - // [Output Only] The internal IPv6 address range that is assigned to this - // subnetwork. - optional string internal_ipv6_prefix = 2 [json_name = "internalIpv6Prefix"]; - - // The range of internal addresses that are owned by this subnetwork. - optional string ip_cidr_range = 3 [json_name = "ipCidrRange"]; - - // The access type of IPv6 address this subnet holds. It's immutable and can - // only be specified during creation or the first time the subnet is updated - // into IPV4_IPV6 dual stack. - // EXTERNAL: VMs on this subnet will be assigned IPv6 addresses that are - // accessible via the Internet, as well as the VPC network. - // INTERNAL: VMs on this subnet will be assigned IPv6 addresses that are only - // accessible over the VPC network. - optional string ipv6_access_type = 4 [json_name = "ipv6AccessType"]; - - // Network URL. - optional string network = 5 [json_name = "network"]; - - // GLOBAL_MANAGED_PROXY: Subnet reserved for Global Envoy-based Load - // Balancing. - // INTERNAL_HTTPS_LOAD_BALANCER: Subnet reserved for Internal HTTP(S) Load - // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY - // instead. - // PEER_MIGRATION: Subnetwork will be used for Migration from one peered VPC - // to another. (a transient state of subnetwork while migrating resources from - // one project to another). - // PRIVATE: Regular user created or automatically created subnet. - // PRIVATE_NAT: Subnetwork used as source range for Private NAT Gateways. - // PRIVATE_RFC_1918: Regular user created or automatically created subnet. - // PRIVATE_SERVICE_CONNECT: Subnetworks created for Private Service Connect in - // the producer network. - // REGIONAL_MANAGED_PROXY: Subnetwork used for Regional Envoy-based Load - // Balancing. - optional string purpose = 6 [json_name = "purpose"]; - - // The role of subnetwork. Currently, this field is only used when purpose is - // set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set - // to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being - // used for Envoy-based load balancers in a region. A BACKUP subnetwork is one - // that is ready to be promoted to ACTIVE or is currently draining. This field - // can be updated with a patch request. - // ACTIVE: The ACTIVE subnet that is currently used. - // BACKUP: The BACKUP subnet that could be promoted to ACTIVE. - optional string role = 7 [json_name = "role"]; - - // Secondary IP ranges. - repeated UsableSubnetworkSecondaryRange secondary_ip_ranges = 8 - [json_name = "secondaryIpRanges"]; - - // The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet - // are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the - // subnet can be assigned both IPv4 and IPv6 addresses. If not specified, - // IPV4_ONLY is used. This field can be both set at resource creation time and - // updated using patch. - // IPV4_IPV6: New VMs in this subnet can have both IPv4 and IPv6 addresses. - // IPV4_ONLY: New VMs in this subnet will only be assigned IPv4 addresses. - // IPV6_ONLY: New VMs in this subnet will only be assigned IPv6 addresses. - optional string stack_type = 9 [json_name = "stackType"]; - - // Subnetwork URL. - optional string subnetwork = 10 [json_name = "subnetwork"]; -} - -// Secondary IP range of a usable subnetwork. -message UsableSubnetworkSecondaryRange { - // The range of IP addresses belonging to this subnetwork secondary range. - optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; - - // The name associated with this subnetwork secondary range, used when adding - // an alias IP range to a VM instance. The name must be 1-63 characters long, - // and comply with RFC1035. The name must be unique within the subnetwork. - optional string range_name = 2 [json_name = "rangeName"]; -} - -message UsableSubnetworksAggregatedList { - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 1 [json_name = "id"]; - - // [Output] A list of usable subnetwork URLs. - repeated UsableSubnetwork items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always - // compute#usableSubnetworksAggregatedList for aggregated lists of usable - // subnetworks. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. In special cases listUsable may return - // 0 subnetworks and nextPageToken which still should be used to get the next - // page of results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Informational warning messages for failures encountered from - // scopes. - repeated SubnetworksScopedWarning scoped_warnings = 7 - [json_name = "scopedWarnings"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 8 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} diff --git a/protos/google/cloud/compute/v1/internal/common_132.proto b/protos/google/cloud/compute/v1/internal/common_132.proto index 5e6bda73aacf9..d5dd91c318cbb 100644 --- a/protos/google/cloud/compute/v1/internal/common_132.proto +++ b/protos/google/cloud/compute/v1/internal/common_132.proto @@ -15,83 +15,335 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target gRPC Proxy resource. A target gRPC proxy is a component -// of load balancers intended for load balancing gRPC traffic. Only global -// forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can -// reference a target gRPC proxy. The target gRPC Proxy references a URL map -// that specifies how traffic is routed to gRPC backend services. -message TargetGrpcProxy { +// Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a +// logical partition of a Virtual Private Cloud network with one primary IP +// range and zero or more secondary IP ranges. For more information, read +// Virtual Private Cloud (VPC) Network. +message Subnetwork { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; // An optional description of this resource. Provide this property when you - // create the resource. + // create the resource. This field can be set only at resource creation time. optional string description = 2 [json_name = "description"]; + // Whether to enable flow logging for this subnetwork. If this field is not + // explicitly set, it will not appear in get listings. If not set the default + // behavior is determined by the org policy, if there is no org policy + // specified, then it will default to disabled. This field isn't supported if + // the subnet purpose field is set to REGIONAL_MANAGED_PROXY. + optional bool enable_flow_logs = 3 [json_name = "enableFlowLogs"]; + + // The external IPv6 address range that is owned by this subnetwork. + optional string external_ipv6_prefix = 4 [json_name = "externalIpv6Prefix"]; + // Fingerprint of this resource. A hash of the contents stored in this object. // This field is used in optimistic locking. This field will be ignored when - // inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in - // order to patch/update the TargetGrpcProxy; otherwise, the request will fail - // with error 412 conditionNotMet. To see the latest fingerprint, make a get() - // request to retrieve the TargetGrpcProxy. - optional string fingerprint = 3 [json_name = "fingerprint"]; - - // [Output Only] The unique identifier for the resource type. The server - // generates this identifier. - optional string id = 4 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#targetGrpcProxy for - // target grpc proxies. - optional string kind = 5 [json_name = "kind"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 6 [json_name = "name"]; + // inserting a Subnetwork. An up-to-date fingerprint must be provided in order + // to update the Subnetwork, otherwise the request will fail with error 412 + // conditionNotMet. To see the latest fingerprint, make a get() request to + // retrieve a Subnetwork. + optional string fingerprint = 5 [json_name = "fingerprint"]; + + // [Output Only] The gateway address for default routes to reach destination + // addresses outside this subnetwork. + optional string gateway_address = 6 [json_name = "gatewayAddress"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 7 [json_name = "id"]; + + // The internal IPv6 address range that is owned by this subnetwork. + optional string internal_ipv6_prefix = 8 [json_name = "internalIpv6Prefix"]; + + // The range of internal addresses that are owned by this subnetwork. Provide + // this property when you create the subnetwork. For example, 10.0.0.0/8 or + // 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. + // Only IPv4 is supported. This field is set at resource creation time. The + // range can be any range listed in the Valid ranges list. The range can be + // expanded after creation using expandIpCidrRange. + optional string ip_cidr_range = 9 [json_name = "ipCidrRange"]; + + // Reference to the source of IP, like a PublicDelegatedPrefix (PDP) for + // BYOIP. The PDP must be a sub-PDP in EXTERNAL_IPV6_SUBNETWORK_CREATION mode. + // Use one of the following formats to specify a sub-PDP when creating a dual + // stack subnetwork with external access using BYOIP: - Full resource URL, as + // in https://www.googleapis.com/compute/v1/projects/projectId/regions/region + // /publicDelegatedPrefixes/sub-pdp-name - Partial URL, as in - + // projects/projectId/regions/region/publicDelegatedPrefixes/ sub-pdp-name - + // regions/region/publicDelegatedPrefixes/sub-pdp-name + optional string ip_collection = 26 [json_name = "ipCollection"]; + + // The access type of IPv6 address this subnet holds. It's immutable and can + // only be specified during creation or the first time the subnet is updated + // into IPV4_IPV6 dual stack. + // EXTERNAL: VMs on this subnet will be assigned IPv6 addresses that are + // accessible via the Internet, as well as the VPC network. + // INTERNAL: VMs on this subnet will be assigned IPv6 addresses that are only + // accessible over the VPC network. + optional string ipv6_access_type = 10 [json_name = "ipv6AccessType"]; + + // [Output Only] This field is for internal use. + optional string ipv6_cidr_range = 11 [json_name = "ipv6CidrRange"]; + + // [Output Only] Possible endpoints of this subnetwork. It can be one of the + // following: - VM_ONLY: The subnetwork can be used for creating instances and + // IPv6 addresses with VM endpoint type. Such a subnetwork gets external IPv6 + // ranges from a public delegated prefix and cannot be used to create NetLb. - + // VM_AND_FR: The subnetwork can be used for creating both VM instances and + // Forwarding Rules. It can also be used to reserve IPv6 addresses with both + // VM and FR endpoint types. Such a subnetwork gets its IPv6 range from Google + // IP Pool directly. + // VM_AND_FR: + // VM_ONLY: + optional string ipv6_gce_endpoint = 27 [json_name = "ipv6GceEndpoint"]; + + // [Output Only] Type of the resource. Always compute#subnetwork for + // Subnetwork resources. + optional string kind = 12 [json_name = "kind"]; + + // This field denotes the VPC flow logging options for this subnetwork. If + // logging is enabled, logs are exported to Cloud Logging. + optional SubnetworkLogConfig log_config = 13 [json_name = "logConfig"]; + + // The name of the resource, provided by the client when initially creating + // the resource. The name must be 1-63 characters long, and comply with + // RFC1035. Specifically, the name must be 1-63 characters long and match the + // regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must be + // a dash, lowercase letter, or digit, except the last character, which cannot + // be a dash. + optional string name = 14 [json_name = "name"]; + + // The URL of the network to which this subnetwork belongs, provided by the + // client when initially creating the subnetwork. This field can be set only + // at resource creation time. + optional string network = 15 [json_name = "network"]; + + // Input only. [Input Only] Additional params passed with the request, but not + // persisted as part of resource payload. + optional SubnetworkParams params = 30 [json_name = "params"]; + + // Whether the VMs in this subnet can access Google services without assigned + // external IP addresses. This field can be both set at resource creation time + // and updated using setPrivateIpGoogleAccess. + optional bool private_ip_google_access = 16 + [json_name = "privateIpGoogleAccess"]; + + // This field is for internal use. This field can be both set at resource + // creation time and updated using patch. + // DISABLE_GOOGLE_ACCESS: Disable private IPv6 access to/from Google services. + // ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE: Bidirectional private IPv6 access + // to/from Google services. + // ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE: Outbound private IPv6 access from VMs + // in this subnet to Google services. + optional string private_ipv6_google_access = 17 + [json_name = "privateIpv6GoogleAccess"]; + + // GLOBAL_MANAGED_PROXY: Subnet reserved for Global Envoy-based Load + // Balancing. + // INTERNAL_HTTPS_LOAD_BALANCER: Subnet reserved for Internal HTTP(S) Load + // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY + // instead. + // PEER_MIGRATION: Subnetwork will be used for Migration from one peered VPC + // to another. (a transient state of subnetwork while migrating resources from + // one project to another). + // PRIVATE: Regular user created or automatically created subnet. + // PRIVATE_NAT: Subnetwork used as source range for Private NAT Gateways. + // PRIVATE_RFC_1918: Regular user created or automatically created subnet. + // PRIVATE_SERVICE_CONNECT: Subnetworks created for Private Service Connect in + // the producer network. + // REGIONAL_MANAGED_PROXY: Subnetwork used for Regional Envoy-based Load + // Balancing. + optional string purpose = 18 [json_name = "purpose"]; + + // URL of the region where the Subnetwork resides. This field can be set only + // at resource creation time. + optional string region = 19 [json_name = "region"]; + + // The URL of the reserved internal range. + optional string reserved_internal_range = 25 + [json_name = "reservedInternalRange"]; + + // The role of subnetwork. Currently, this field is only used when purpose is + // set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set + // to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being + // used for Envoy-based load balancers in a region. A BACKUP subnetwork is one + // that is ready to be promoted to ACTIVE or is currently draining. This field + // can be updated with a patch request. + // ACTIVE: The ACTIVE subnet that is currently used. + // BACKUP: The BACKUP subnet that could be promoted to ACTIVE. + optional string role = 20 [json_name = "role"]; + + // An array of configurations for secondary IP ranges for VM instances + // contained in this subnetwork. The primary IP of such VM must belong to the + // primary ipCidrRange of the subnetwork. The alias IPs may belong to either + // primary or secondary ranges. This field can be updated with a patch + // request. + repeated SubnetworkSecondaryRange secondary_ip_ranges = 21 + [json_name = "secondaryIpRanges"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 7 [json_name = "selfLink"]; - - // [Output Only] Server-defined URL with id for the resource. - optional string self_link_with_id = 8 [json_name = "selfLinkWithId"]; - - // URL to the UrlMap resource that defines the mapping from URL to the - // BackendService. The protocol field in the BackendService must be set to - // GRPC. - optional string url_map = 9 [json_name = "urlMap"]; - - // If true, indicates that the BackendServices referenced by the urlMap may be - // accessed by gRPC applications without using a sidecar proxy. This will - // enable configuration checks on urlMap and its referenced BackendServices to - // not allow unsupported features. A gRPC application must use "xds:///" - // scheme in the target URI of the service it is connecting to. If false, - // indicates that the BackendServices referenced by the urlMap will be - // accessed by gRPC applications via a sidecar proxy. In this case, a gRPC - // application must not use "xds:///" scheme in the target URI of the service - // it is connecting to - optional bool validate_for_proxyless = 10 - [json_name = "validateForProxyless"]; + optional string self_link = 22 [json_name = "selfLink"]; + + // The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet + // are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the + // subnet can be assigned both IPv4 and IPv6 addresses. If not specified, + // IPV4_ONLY is used. This field can be both set at resource creation time and + // updated using patch. + // IPV4_IPV6: New VMs in this subnet can have both IPv4 and IPv6 addresses. + // IPV4_ONLY: New VMs in this subnet will only be assigned IPv4 addresses. + // IPV6_ONLY: New VMs in this subnet will only be assigned IPv6 addresses. + optional string stack_type = 23 [json_name = "stackType"]; + + // [Output Only] The state of the subnetwork, which can be one of the + // following values: READY: Subnetwork is created and ready to use DRAINING: + // only applicable to subnetworks that have the purpose set to + // INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load + // balancer are being drained. A subnetwork that is draining cannot be used or + // modified until it reaches a status of READY + // DRAINING: Subnetwork is being drained. + // READY: Subnetwork is ready for use. + optional string state = 24 [json_name = "state"]; + + // Output only. [Output Only] The array of external IPv6 network ranges + // reserved from the subnetwork's external IPv6 range for system use. + repeated string system_reserved_external_ipv6_ranges = 28 + [json_name = "systemReservedExternalIpv6Ranges"]; + + // Output only. [Output Only] The array of internal IPv6 network ranges + // reserved from the subnetwork's internal IPv6 range for system use. + repeated string system_reserved_internal_ipv6_ranges = 29 + [json_name = "systemReservedInternalIpv6Ranges"]; +} + +message SubnetworkAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of SubnetworksScopedList resources. + map items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#subnetworkAggregatedList for + // aggregated lists of subnetworks. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; } -message TargetGrpcProxyList { +// Contains a list of Subnetwork resources. +message SubnetworkList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetGrpcProxy resources. - repeated TargetGrpcProxy items = 2 [json_name = "items"]; + // A list of Subnetwork resources. + repeated Subnetwork items = 2 [json_name = "items"]; - // [Output Only] Type of the resource. Always compute#targetGrpcProxy for - // target grpc proxies. + // [Output Only] Type of resource. Always compute#subnetworkList for lists of + // subnetworks. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -190,3 +442,479 @@ message TargetGrpcProxyList { // [Output Only] Informational warning message. optional Warning warning = 6 [json_name = "warning"]; } + +// The available logging options for this subnetwork. +message SubnetworkLogConfig { + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // Toggles the aggregation interval for collecting flow logs. Increasing the + // interval time will reduce the amount of generated flow logs for long + // lasting connections. Default is an interval of 5 seconds per connection. + // INTERVAL_10_MIN: + // INTERVAL_15_MIN: + // INTERVAL_1_MIN: + // INTERVAL_30_SEC: + // INTERVAL_5_MIN: + // INTERVAL_5_SEC: + optional string aggregation_interval = 1 [json_name = "aggregationInterval"]; + + // Whether to enable flow logging for this subnetwork. If this field is not + // explicitly set, it will not appear in get listings. If not set the default + // behavior is determined by the org policy, if there is no org policy + // specified, then it will default to disabled. Flow logging isn't supported + // if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. + optional bool enable = 2 [json_name = "enable"]; + + // Can only be specified if VPC flow logs for this subnetwork is enabled. The + // filter expression is used to define which VPC flow logs should be exported + // to Cloud Logging. + optional string filter_expr = 3 [json_name = "filterExpr"]; + + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // The value of the field must be in [0, 1]. Set the sampling rate of VPC flow + // logs within the subnetwork where 1.0 means all collected logs are reported + // and 0.0 means no logs are reported. Default is 0.5 unless otherwise + // specified by the org policy, which means half of all collected logs are + // reported. + optional float flow_sampling = 4 [json_name = "flowSampling"]; + + // Can only be specified if VPC flow logs for this subnetwork is enabled. + // Configures whether all, none or a subset of metadata fields should be added + // to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. + // CUSTOM_METADATA: + // EXCLUDE_ALL_METADATA: + // INCLUDE_ALL_METADATA: + optional string metadata = 5 [json_name = "metadata"]; + + // Can only be specified if VPC flow logs for this subnetwork is enabled and + // "metadata" was set to CUSTOM_METADATA. + repeated string metadata_fields = 6 [json_name = "metadataFields"]; +} + +// Additional subnetwork parameters. +message SubnetworkParams { + // Tag keys/values directly bound to this resource. Tag keys and values have + // the same definition as resource manager tags. The field is allowed for + // INSERT only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format { : }. For example the following are + // valid inputs: * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : + // "tagValues/456"} * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: * Invalid combinations of ID & namespaced format is not supported. + // For instance: {"123/environment" : "tagValues/444"} is invalid. + map resource_manager_tags = 1 + [json_name = "resourceManagerTags"]; +} + +// Represents a secondary IP range of a subnetwork. +message SubnetworkSecondaryRange { + // The range of IP addresses belonging to this subnetwork secondary range. + // Provide this property when you create the subnetwork. Ranges must be unique + // and non-overlapping with all primary and secondary IP ranges within a + // network. Only IPv4 is supported. The range can be any range listed in the + // Valid ranges list. + optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; + + // The name associated with this subnetwork secondary range, used when adding + // an alias IP range to a VM instance. The name must be 1-63 characters long, + // and comply with RFC1035. The name must be unique within the subnetwork. + optional string range_name = 2 [json_name = "rangeName"]; + + // The URL of the reserved internal range. + optional string reserved_internal_range = 3 + [json_name = "reservedInternalRange"]; +} + +message SubnetworksExpandIpCidrRangeRequest { + // The IP (in CIDR format or netmask) of internal addresses that are legal on + // this Subnetwork. This range should be disjoint from other subnetworks + // within this network. This range can only be larger than (i.e. a superset + // of) the range previously defined before the update. + optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; +} + +message SubnetworksScopedList { + // A list of subnetworks contained in this scope. + repeated Subnetwork subnetworks = 1 [json_name = "subnetworks"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // An informational warning that appears when the list of addresses is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +message SubnetworksScopedWarning { + // Name of the scope containing this set of Subnetworks. + optional string scope_name = 1 [json_name = "scopeName"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // An informational warning about unreachable scope + optional Warning warning = 2 [json_name = "warning"]; +} + +message SubnetworksSetPrivateIpGoogleAccessRequest { + optional bool private_ip_google_access = 1 + [json_name = "privateIpGoogleAccess"]; +} + +// Subnetwork which the current user has compute.subnetworks.use permission on. +message UsableSubnetwork { + // [Output Only] The external IPv6 address range that is assigned to this + // subnetwork. + optional string external_ipv6_prefix = 1 [json_name = "externalIpv6Prefix"]; + + // [Output Only] The internal IPv6 address range that is assigned to this + // subnetwork. + optional string internal_ipv6_prefix = 2 [json_name = "internalIpv6Prefix"]; + + // The range of internal addresses that are owned by this subnetwork. + optional string ip_cidr_range = 3 [json_name = "ipCidrRange"]; + + // The access type of IPv6 address this subnet holds. It's immutable and can + // only be specified during creation or the first time the subnet is updated + // into IPV4_IPV6 dual stack. + // EXTERNAL: VMs on this subnet will be assigned IPv6 addresses that are + // accessible via the Internet, as well as the VPC network. + // INTERNAL: VMs on this subnet will be assigned IPv6 addresses that are only + // accessible over the VPC network. + optional string ipv6_access_type = 4 [json_name = "ipv6AccessType"]; + + // Network URL. + optional string network = 5 [json_name = "network"]; + + // GLOBAL_MANAGED_PROXY: Subnet reserved for Global Envoy-based Load + // Balancing. + // INTERNAL_HTTPS_LOAD_BALANCER: Subnet reserved for Internal HTTP(S) Load + // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY + // instead. + // PEER_MIGRATION: Subnetwork will be used for Migration from one peered VPC + // to another. (a transient state of subnetwork while migrating resources from + // one project to another). + // PRIVATE: Regular user created or automatically created subnet. + // PRIVATE_NAT: Subnetwork used as source range for Private NAT Gateways. + // PRIVATE_RFC_1918: Regular user created or automatically created subnet. + // PRIVATE_SERVICE_CONNECT: Subnetworks created for Private Service Connect in + // the producer network. + // REGIONAL_MANAGED_PROXY: Subnetwork used for Regional Envoy-based Load + // Balancing. + optional string purpose = 6 [json_name = "purpose"]; + + // The role of subnetwork. Currently, this field is only used when purpose is + // set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set + // to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being + // used for Envoy-based load balancers in a region. A BACKUP subnetwork is one + // that is ready to be promoted to ACTIVE or is currently draining. This field + // can be updated with a patch request. + // ACTIVE: The ACTIVE subnet that is currently used. + // BACKUP: The BACKUP subnet that could be promoted to ACTIVE. + optional string role = 7 [json_name = "role"]; + + // Secondary IP ranges. + repeated UsableSubnetworkSecondaryRange secondary_ip_ranges = 8 + [json_name = "secondaryIpRanges"]; + + // The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet + // are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the + // subnet can be assigned both IPv4 and IPv6 addresses. If not specified, + // IPV4_ONLY is used. This field can be both set at resource creation time and + // updated using patch. + // IPV4_IPV6: New VMs in this subnet can have both IPv4 and IPv6 addresses. + // IPV4_ONLY: New VMs in this subnet will only be assigned IPv4 addresses. + // IPV6_ONLY: New VMs in this subnet will only be assigned IPv6 addresses. + optional string stack_type = 9 [json_name = "stackType"]; + + // Subnetwork URL. + optional string subnetwork = 10 [json_name = "subnetwork"]; +} + +// Secondary IP range of a usable subnetwork. +message UsableSubnetworkSecondaryRange { + // The range of IP addresses belonging to this subnetwork secondary range. + optional string ip_cidr_range = 1 [json_name = "ipCidrRange"]; + + // The name associated with this subnetwork secondary range, used when adding + // an alias IP range to a VM instance. The name must be 1-63 characters long, + // and comply with RFC1035. The name must be unique within the subnetwork. + optional string range_name = 2 [json_name = "rangeName"]; +} + +message UsableSubnetworksAggregatedList { + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 1 [json_name = "id"]; + + // [Output] A list of usable subnetwork URLs. + repeated UsableSubnetwork items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always + // compute#usableSubnetworksAggregatedList for aggregated lists of usable + // subnetworks. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. In special cases listUsable may return + // 0 subnetworks and nextPageToken which still should be used to get the next + // page of results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Informational warning messages for failures encountered from + // scopes. + repeated SubnetworksScopedWarning scoped_warnings = 7 + [json_name = "scopedWarnings"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 8 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} diff --git a/protos/google/cloud/compute/v1/internal/common_133.proto b/protos/google/cloud/compute/v1/internal/common_133.proto index 39f64d7e794e6..8360d925bac99 100644 --- a/protos/google/cloud/compute/v1/internal/common_133.proto +++ b/protos/google/cloud/compute/v1/internal/common_133.proto @@ -15,18 +15,94 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_134.proto"; +// Represents a Target gRPC Proxy resource. A target gRPC proxy is a component +// of load balancers intended for load balancing gRPC traffic. Only global +// forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can +// reference a target gRPC proxy. The target gRPC Proxy references a URL map +// that specifies how traffic is routed to gRPC backend services. +message TargetGrpcProxy { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 2 [json_name = "description"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field will be ignored when + // inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in + // order to patch/update the TargetGrpcProxy; otherwise, the request will fail + // with error 412 conditionNotMet. To see the latest fingerprint, make a get() + // request to retrieve the TargetGrpcProxy. + optional string fingerprint = 3 [json_name = "fingerprint"]; + + // [Output Only] The unique identifier for the resource type. The server + // generates this identifier. + optional string id = 4 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#targetGrpcProxy for + // target grpc proxies. + optional string kind = 5 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 6 [json_name = "name"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 7 [json_name = "selfLink"]; + + // [Output Only] Server-defined URL with id for the resource. + optional string self_link_with_id = 8 [json_name = "selfLinkWithId"]; + + // URL to the UrlMap resource that defines the mapping from URL to the + // BackendService. The protocol field in the BackendService must be set to + // GRPC. + optional string url_map = 9 [json_name = "urlMap"]; + + // If true, indicates that the BackendServices referenced by the urlMap may be + // accessed by gRPC applications without using a sidecar proxy. This will + // enable configuration checks on urlMap and its referenced BackendServices to + // not allow unsupported features. A gRPC application must use "xds:///" + // scheme in the target URI of the service it is connecting to. If false, + // indicates that the BackendServices referenced by the urlMap will be + // accessed by gRPC applications via a sidecar proxy. In this case, a gRPC + // application must not use "xds:///" scheme in the target URI of the service + // it is connecting to + optional bool validate_for_proxyless = 10 + [json_name = "validateForProxyless"]; +} -message TargetHttpProxiesScopedList { - // A list of TargetHttpProxies contained in this scope. - repeated TargetHttpProxy target_http_proxies = 1 - [json_name = "targetHttpProxies"]; +message TargetGrpcProxyList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetGrpcProxy resources. + repeated TargetGrpcProxy items = 2 [json_name = "items"]; + + // [Output Only] Type of the resource. Always compute#targetGrpcProxy for + // target grpc proxies. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -111,32 +187,6 @@ message TargetHttpProxiesScopedList { optional string message = 3 [json_name = "message"]; } - // Informational warning which replaces the list of backend services when the - // list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message TargetHttpProxyAggregatedList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of TargetHttpProxiesScopedList resources. - map items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always - // compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_134.proto b/protos/google/cloud/compute/v1/internal/common_134.proto index 741a8f9d5d70e..c67e11fd13982 100644 --- a/protos/google/cloud/compute/v1/internal/common_134.proto +++ b/protos/google/cloud/compute/v1/internal/common_134.proto @@ -15,109 +15,18 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target HTTP Proxy resource. Google Compute Engine has two Target -// HTTP Proxy resources: * -// [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * -// [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target -// HTTP proxy is a component of Google Cloud HTTP load balancers. * -// targetHttpProxies are used by global external Application Load Balancers, -// classic Application Load Balancers, cross-region internal Application Load -// Balancers, and Traffic Director. * regionTargetHttpProxies are used by -// regional internal Application Load Balancers and regional external -// Application Load Balancers. Forwarding rules reference a target HTTP proxy, -// and the target proxy then references a URL map. For more information, read -// Using Target Proxies and Forwarding rule concepts. -message TargetHttpProxy { - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 2 [json_name = "description"]; - - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field will be ignored when - // inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in - // order to patch/update the TargetHttpProxy; otherwise, the request will fail - // with error 412 conditionNotMet. To see the latest fingerprint, make a get() - // request to retrieve the TargetHttpProxy. - optional string fingerprint = 3 [json_name = "fingerprint"]; - - // Specifies how long to keep a connection open, after completing a response, - // while there is no matching traffic (in seconds). If an HTTP keep-alive is - // not specified, a default value (610 seconds) will be used. For global - // external Application Load Balancers, the minimum allowed value is 5 seconds - // and the maximum allowed value is 1200 seconds. For classic Application Load - // Balancers, this option is not supported. - optional int32 http_keep_alive_timeout_sec = 11 - [json_name = "httpKeepAliveTimeoutSec"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 4 [json_name = "id"]; - - // [Output Only] Type of resource. Always compute#targetHttpProxy for target - // HTTP proxies. - optional string kind = 5 [json_name = "kind"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 6 [json_name = "name"]; - - // This field only applies when the forwarding rule that references this - // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When - // this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the - // forwarding rule. This is generally useful when using Traffic Director to - // configure Envoy as a gateway or middle proxy (in other words, not a sidecar - // proxy). The Envoy proxy listens for inbound requests and handles requests - // when it receives them. The default is false. - optional bool proxy_bind = 7 [json_name = "proxyBind"]; - - // [Output Only] URL of the region where the regional Target HTTP Proxy - // resides. This field is not applicable to global Target HTTP Proxies. - optional string region = 8 [json_name = "region"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 9 [json_name = "selfLink"]; - - // URL to the UrlMap resource that defines the mapping from URL to the - // BackendService. - optional string url_map = 10 [json_name = "urlMap"]; -} +import "google/cloud/compute/v1/internal/common_135.proto"; -// A list of TargetHttpProxy resources. -message TargetHttpProxyList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of TargetHttpProxy resources. - repeated TargetHttpProxy items = 2 [json_name = "items"]; - - // Type of resource. Always compute#targetHttpProxyList for lists of target - // HTTP proxies. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; +message TargetHttpProxiesScopedList { + // A list of TargetHttpProxies contained in this scope. + repeated TargetHttpProxy target_http_proxies = 1 + [json_name = "targetHttpProxies"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -202,6 +111,32 @@ message TargetHttpProxyList { optional string message = 3 [json_name = "message"]; } - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + // Informational warning which replaces the list of backend services when the + // list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +message TargetHttpProxyAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetHttpProxiesScopedList resources. + map items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always + // compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_135.proto b/protos/google/cloud/compute/v1/internal/common_135.proto index a4a1eb5788c5b..d08c32d1aa194 100644 --- a/protos/google/cloud/compute/v1/internal/common_135.proto +++ b/protos/google/cloud/compute/v1/internal/common_135.proto @@ -15,139 +15,98 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_136.proto"; - -message TargetHttpsProxiesScopedList { - // A list of TargetHttpsProxies contained in this scope. - repeated TargetHttpsProxy target_https_proxies = 1 - [json_name = "targetHttpsProxies"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // Informational warning which replaces the list of backend services when the - // list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} - -message TargetHttpsProxiesSetCertificateMapRequest { - // URL of the Certificate Map to associate with this TargetHttpsProxy. - // Accepted format is //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. - optional string certificate_map = 1 [json_name = "certificateMap"]; +// Represents a Target HTTP Proxy resource. Google Compute Engine has two Target +// HTTP Proxy resources: * +// [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * +// [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target +// HTTP proxy is a component of Google Cloud HTTP load balancers. * +// targetHttpProxies are used by global external Application Load Balancers, +// classic Application Load Balancers, cross-region internal Application Load +// Balancers, and Traffic Director. * regionTargetHttpProxies are used by +// regional internal Application Load Balancers and regional external +// Application Load Balancers. Forwarding rules reference a target HTTP proxy, +// and the target proxy then references a URL map. For more information, read +// Using Target Proxies and Forwarding rule concepts. +message TargetHttpProxy { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 2 [json_name = "description"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field will be ignored when + // inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in + // order to patch/update the TargetHttpProxy; otherwise, the request will fail + // with error 412 conditionNotMet. To see the latest fingerprint, make a get() + // request to retrieve the TargetHttpProxy. + optional string fingerprint = 3 [json_name = "fingerprint"]; + + // Specifies how long to keep a connection open, after completing a response, + // while there is no matching traffic (in seconds). If an HTTP keep-alive is + // not specified, a default value (610 seconds) will be used. For global + // external Application Load Balancers, the minimum allowed value is 5 seconds + // and the maximum allowed value is 1200 seconds. For classic Application Load + // Balancers, this option is not supported. + optional int32 http_keep_alive_timeout_sec = 11 + [json_name = "httpKeepAliveTimeoutSec"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 4 [json_name = "id"]; + + // [Output Only] Type of resource. Always compute#targetHttpProxy for target + // HTTP proxies. + optional string kind = 5 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 6 [json_name = "name"]; + + // This field only applies when the forwarding rule that references this + // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When + // this field is set to true, Envoy proxies set up inbound traffic + // interception and bind to the IP address and port specified in the + // forwarding rule. This is generally useful when using Traffic Director to + // configure Envoy as a gateway or middle proxy (in other words, not a sidecar + // proxy). The Envoy proxy listens for inbound requests and handles requests + // when it receives them. The default is false. + optional bool proxy_bind = 7 [json_name = "proxyBind"]; + + // [Output Only] URL of the region where the regional Target HTTP Proxy + // resides. This field is not applicable to global Target HTTP Proxies. + optional string region = 8 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 9 [json_name = "selfLink"]; + + // URL to the UrlMap resource that defines the mapping from URL to the + // BackendService. + optional string url_map = 10 [json_name = "urlMap"]; } -message TargetHttpsProxiesSetQuicOverrideRequest { - // QUIC policy for the TargetHttpsProxy resource. - // DISABLE: The load balancer will not attempt to negotiate QUIC with clients. - // ENABLE: The load balancer will attempt to negotiate QUIC with clients. - // NONE: No overrides to the default QUIC policy. This option is implicit if - // no QUIC override has been specified in the request. - optional string quic_override = 1 [json_name = "quicOverride"]; -} - -message TargetHttpsProxiesSetSslCertificatesRequest { - // New set of SslCertificate resources to associate with this TargetHttpsProxy - // resource. At least one SSL certificate must be specified. Currently, you - // may specify up to 15 SSL certificates. - repeated string ssl_certificates = 1 [json_name = "sslCertificates"]; -} - -message TargetHttpsProxyAggregatedList { +// A list of TargetHttpProxy resources. +message TargetHttpProxyList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetHttpsProxiesScopedList resources. - map items = 2 [json_name = "items"]; + // A list of TargetHttpProxy resources. + repeated TargetHttpProxy items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always - // compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies. + // Type of resource. Always compute#targetHttpProxyList for lists of target + // HTTP proxies. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -160,9 +119,6 @@ message TargetHttpsProxyAggregatedList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -247,5 +203,5 @@ message TargetHttpsProxyAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_136.proto b/protos/google/cloud/compute/v1/internal/common_136.proto index 3a9c4b4eeee5c..e385b2258e05a 100644 --- a/protos/google/cloud/compute/v1/internal/common_136.proto +++ b/protos/google/cloud/compute/v1/internal/common_136.proto @@ -15,203 +15,139 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target HTTPS Proxy resource. Google Compute Engine has two -// Target HTTPS Proxy resources: * -// [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * -// [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target -// HTTPS proxy is a component of Google Cloud HTTPS load balancers. * -// targetHttpProxies are used by global external Application Load Balancers, -// classic Application Load Balancers, cross-region internal Application Load -// Balancers, and Traffic Director. * regionTargetHttpProxies are used by -// regional internal Application Load Balancers and regional external -// Application Load Balancers. Forwarding rules reference a target HTTPS proxy, -// and the target proxy then references a URL map. For more information, read -// Using Target Proxies and Forwarding rule concepts. -message TargetHttpsProxy { - // Optional. A URL referring to a networksecurity.AuthorizationPolicy resource - // that describes how the proxy should authorize inbound traffic. If left - // blank, access will not be restricted by an authorization policy. Refer to - // the AuthorizationPolicy resource for additional details. - // authorizationPolicy only applies to a global TargetHttpsProxy attached to - // globalForwardingRules with the loadBalancingScheme set to - // INTERNAL_SELF_MANAGED. Note: This field currently has no impact. - optional string authorization_policy = 1 [json_name = "authorizationPolicy"]; +import "google/cloud/compute/v1/internal/common_137.proto"; - // URL of a certificate map that identifies a certificate map associated with - // the given target proxy. This field can only be set for Global external - // Application Load Balancer or Classic Application Load Balancer. For other - // products use Certificate Manager Certificates instead. If set, - // sslCertificates will be ignored. Accepted format is - // //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. - optional string certificate_map = 2 [json_name = "certificateMap"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; +message TargetHttpsProxiesScopedList { + // A list of TargetHttpsProxies contained in this scope. + repeated TargetHttpsProxy target_https_proxies = 1 + [json_name = "targetHttpsProxies"]; - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 4 [json_name = "description"]; + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; - // Fingerprint of this resource. A hash of the contents stored in this object. - // This field is used in optimistic locking. This field will be ignored when - // inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in - // order to patch the TargetHttpsProxy; otherwise, the request will fail with - // error 412 conditionNotMet. To see the latest fingerprint, make a get() - // request to retrieve the TargetHttpsProxy. - optional string fingerprint = 5 [json_name = "fingerprint"]; + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; - // Specifies how long to keep a connection open, after completing a response, - // while there is no matching traffic (in seconds). If an HTTP keep-alive is - // not specified, a default value (610 seconds) will be used. For global - // external Application Load Balancers, the minimum allowed value is 5 seconds - // and the maximum allowed value is 1200 seconds. For classic Application Load - // Balancers, this option is not supported. - optional int32 http_keep_alive_timeout_sec = 17 - [json_name = "httpKeepAliveTimeoutSec"]; + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 6 [json_name = "id"]; + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; - // [Output Only] Type of resource. Always compute#targetHttpsProxy for target - // HTTPS proxies. - optional string kind = 7 [json_name = "kind"]; + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 8 [json_name = "name"]; + // Informational warning which replaces the list of backend services when the + // list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} - // This field only applies when the forwarding rule that references this - // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When - // this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the - // forwarding rule. This is generally useful when using Traffic Director to - // configure Envoy as a gateway or middle proxy (in other words, not a sidecar - // proxy). The Envoy proxy listens for inbound requests and handles requests - // when it receives them. The default is false. - optional bool proxy_bind = 9 [json_name = "proxyBind"]; +message TargetHttpsProxiesSetCertificateMapRequest { + // URL of the Certificate Map to associate with this TargetHttpsProxy. + // Accepted format is //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. + optional string certificate_map = 1 [json_name = "certificateMap"]; +} - // Specifies the QUIC override policy for this TargetHttpsProxy resource. This - // setting determines whether the load balancer attempts to negotiate QUIC - // with clients. You can specify NONE, ENABLE, or DISABLE. - When - // quic-override is set to NONE, Google manages whether QUIC is used. - When - // quic-override is set to ENABLE, the load balancer uses QUIC when possible. - // - When quic-override is set to DISABLE, the load balancer doesn't use QUIC. - // - If the quic-override flag is not specified, NONE is implied. +message TargetHttpsProxiesSetQuicOverrideRequest { + // QUIC policy for the TargetHttpsProxy resource. // DISABLE: The load balancer will not attempt to negotiate QUIC with clients. // ENABLE: The load balancer will attempt to negotiate QUIC with clients. // NONE: No overrides to the default QUIC policy. This option is implicit if // no QUIC override has been specified in the request. - optional string quic_override = 10 [json_name = "quicOverride"]; - - // [Output Only] URL of the region where the regional TargetHttpsProxy - // resides. This field is not applicable to global TargetHttpsProxies. - optional string region = 11 [json_name = "region"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 12 [json_name = "selfLink"]; - - // Optional. A URL referring to a networksecurity.ServerTlsPolicy resource - // that describes how the proxy should authenticate inbound traffic. - // serverTlsPolicy only applies to a global TargetHttpsProxy attached to - // globalForwardingRules with the loadBalancingScheme set to - // INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED or INTERNAL_MANAGED. - // It also applies to a regional TargetHttpsProxy attached to regional - // forwardingRules with the loadBalancingScheme set to EXTERNAL_MANAGED or - // INTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted - // with INTERNAL_SELF_MANAGED and which with EXTERNAL, INTERNAL_MANAGED, - // EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. - // If left blank, communications are not encrypted. - optional string server_tls_policy = 13 [json_name = "serverTlsPolicy"]; - - // URLs to SslCertificate resources that are used to authenticate connections - // between users and the load balancer. At least one SSL certificate must be - // specified. SslCertificates do not apply when the load balancing scheme is - // set to INTERNAL_SELF_MANAGED. The URLs should refer to a SSL Certificate - // resource or Certificate Manager Certificate resource. Mixing Classic - // Certificates and Certificate Manager Certificates is not allowed. - // Certificate Manager Certificates must include the certificatemanager API - // namespace. Using Certificate Manager Certificates in this field is not - // supported by Global external Application Load Balancer or Classic - // Application Load Balancer, use certificate_map instead. Currently, you may - // specify up to 15 Classic SSL Certificates or up to 100 Certificate Manager - // Certificates. Certificate Manager Certificates accepted formats are: - - // //certificatemanager.googleapis.com/projects/{project}/locations/{ - // location}/certificates/{resourceName}. - - // https://certificatemanager.googleapis.com/v1alpha1/projects/{project - // }/locations/{location}/certificates/{resourceName}. - repeated string ssl_certificates = 14 [json_name = "sslCertificates"]; - - // URL of SslPolicy resource that will be associated with the TargetHttpsProxy - // resource. If not set, the TargetHttpsProxy resource has no SSL policy - // configured. - optional string ssl_policy = 15 [json_name = "sslPolicy"]; - - // Specifies whether TLS 1.3 0-RTT Data ("Early Data") should be accepted for - // this service. Early Data allows a TLS resumption handshake to include the - // initial application payload (a HTTP request) alongside the handshake, - // reducing the effective round trips to "zero". This applies to TLS 1.3 - // connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). This can - // improve application performance, especially on networks where interruptions - // may be common, such as on mobile. Requests with Early Data will have the - // "Early-Data" HTTP header set on the request, with a value of "1", to allow - // the backend to determine whether Early Data was included. Note: TLS Early - // Data may allow requests to be replayed, as the data is sent to the backend - // before the handshake has fully completed. Applications that allow - // idempotent HTTP methods to make non-idempotent changes, such as a GET - // request updating a database, should not accept Early Data on those - // requests, and reject requests with the "Early-Data: 1" HTTP header by - // returning a HTTP 425 (Too Early) status code, in order to remain RFC - // compliant. The default value is DISABLED. - // DISABLED: TLS 1.3 Early Data is not advertised, and any (invalid) attempts - // to send Early Data will be rejected by closing the connection. - // PERMISSIVE: This enables TLS 1.3 0-RTT, and only allows Early Data to be - // included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). - // This mode does not enforce any other limitations for requests with Early - // Data. The application owner should validate that Early Data is acceptable - // for a given request path. - // STRICT: This enables TLS 1.3 0-RTT, and only allows Early Data to be - // included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) - // without query parameters. Requests that send Early Data with non-idempotent - // HTTP methods or with query parameters will be rejected with a HTTP 425. - // UNRESTRICTED: This enables TLS 1.3 Early Data for requests with any HTTP - // method including non-idempotent methods list POST. This mode does not - // enforce any other limitations. This may be valuable for gRPC use cases. - // However, we do not recommend this method unless you have evaluated your - // security stance and mitigated the risk of replay attacks using other - // mechanisms. - optional string tls_early_data = 18 [json_name = "tlsEarlyData"]; + optional string quic_override = 1 [json_name = "quicOverride"]; +} - // A fully-qualified or valid partial URL to the UrlMap resource that defines - // the mapping from URL to the BackendService. For example, the following are - // all valid URLs for specifying a URL map: - - // https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - // - projects/project/global/urlMaps/url-map - global/urlMaps/url-map - optional string url_map = 16 [json_name = "urlMap"]; +message TargetHttpsProxiesSetSslCertificatesRequest { + // New set of SslCertificate resources to associate with this TargetHttpsProxy + // resource. At least one SSL certificate must be specified. Currently, you + // may specify up to 15 SSL certificates. + repeated string ssl_certificates = 1 [json_name = "sslCertificates"]; } -// Contains a list of TargetHttpsProxy resources. -message TargetHttpsProxyList { +message TargetHttpsProxyAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetHttpsProxy resources. - repeated TargetHttpsProxy items = 2 [json_name = "items"]; + // A list of TargetHttpsProxiesScopedList resources. + map items = 2 [json_name = "items"]; - // Type of resource. Always compute#targetHttpsProxyList for lists of target - // HTTPS proxies. + // [Output Only] Type of resource. Always + // compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -224,6 +160,9 @@ message TargetHttpsProxyList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -308,5 +247,5 @@ message TargetHttpsProxyList { } // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + optional Warning warning = 7 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_137.proto b/protos/google/cloud/compute/v1/internal/common_137.proto index f0f0776f51cea..eaa234ecd0c4a 100644 --- a/protos/google/cloud/compute/v1/internal/common_137.proto +++ b/protos/google/cloud/compute/v1/internal/common_137.proto @@ -15,40 +15,74 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target Instance resource. You can use a target instance to -// handle traffic for one or more forwarding rules, which is ideal for -// forwarding protocol traffic that is managed by a single source. For example, -// ESP, AH, TCP, or UDP. For more information, read Target instances. -message TargetInstance { +// Represents a Target HTTPS Proxy resource. Google Compute Engine has two +// Target HTTPS Proxy resources: * +// [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * +// [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target +// HTTPS proxy is a component of Google Cloud HTTPS load balancers. * +// targetHttpProxies are used by global external Application Load Balancers, +// classic Application Load Balancers, cross-region internal Application Load +// Balancers, and Traffic Director. * regionTargetHttpProxies are used by +// regional internal Application Load Balancers and regional external +// Application Load Balancers. Forwarding rules reference a target HTTPS proxy, +// and the target proxy then references a URL map. For more information, read +// Using Target Proxies and Forwarding rule concepts. +message TargetHttpsProxy { + // Optional. A URL referring to a networksecurity.AuthorizationPolicy resource + // that describes how the proxy should authorize inbound traffic. If left + // blank, access will not be restricted by an authorization policy. Refer to + // the AuthorizationPolicy resource for additional details. + // authorizationPolicy only applies to a global TargetHttpsProxy attached to + // globalForwardingRules with the loadBalancingScheme set to + // INTERNAL_SELF_MANAGED. Note: This field currently has no impact. + optional string authorization_policy = 1 [json_name = "authorizationPolicy"]; + + // URL of a certificate map that identifies a certificate map associated with + // the given target proxy. This field can only be set for Global external + // Application Load Balancer or Classic Application Load Balancer. For other + // products use Certificate Manager Certificates instead. If set, + // sslCertificates will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. + optional string certificate_map = 2 [json_name = "certificateMap"]; + // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + optional string creation_timestamp = 3 [json_name = "creationTimestamp"]; // An optional description of this resource. Provide this property when you // create the resource. - optional string description = 2 [json_name = "description"]; + optional string description = 4 [json_name = "description"]; + + // Fingerprint of this resource. A hash of the contents stored in this object. + // This field is used in optimistic locking. This field will be ignored when + // inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in + // order to patch the TargetHttpsProxy; otherwise, the request will fail with + // error 412 conditionNotMet. To see the latest fingerprint, make a get() + // request to retrieve the TargetHttpsProxy. + optional string fingerprint = 5 [json_name = "fingerprint"]; + + // Specifies how long to keep a connection open, after completing a response, + // while there is no matching traffic (in seconds). If an HTTP keep-alive is + // not specified, a default value (610 seconds) will be used. For global + // external Application Load Balancers, the minimum allowed value is 5 seconds + // and the maximum allowed value is 1200 seconds. For classic Application Load + // Balancers, this option is not supported. + optional int32 http_keep_alive_timeout_sec = 17 + [json_name = "httpKeepAliveTimeoutSec"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 3 [json_name = "id"]; - - // A URL to the virtual machine instance that handles traffic for this target - // instance. When creating a target instance, you can provide the - // fully-qualified URL or a valid partial URL to the desired virtual machine. - // For example, the following are all valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /instances/instance - projects/project/zones/zone/instances/instance - - // zones/zone/instances/instance - optional string instance = 4 [json_name = "instance"]; + optional string id = 6 [json_name = "id"]; - // [Output Only] The type of the resource. Always compute#targetInstance for - // target instances. - optional string kind = 5 [json_name = "kind"]; + // [Output Only] Type of resource. Always compute#targetHttpsProxy for target + // HTTPS proxies. + optional string kind = 7 [json_name = "kind"]; // Name of the resource. Provided by the client when the resource is created. // The name must be 1-63 characters long, and comply with RFC1035. @@ -57,151 +91,127 @@ message TargetInstance { // must be a lowercase letter, and all following characters must be a dash, // lowercase letter, or digit, except the last character, which cannot be a // dash. - optional string name = 6 [json_name = "name"]; - - // Must have a value of NO_NAT. Protocol forwarding delivers packets while - // preserving the destination IP address of the forwarding rule referencing - // the target instance. - // NO_NAT: No NAT performed. - optional string nat_policy = 7 [json_name = "natPolicy"]; - - // The URL of the network this target instance uses to forward traffic. If not - // specified, the traffic will be forwarded to the network that the default - // network interface belongs to. - optional string network = 8 [json_name = "network"]; - - // [Output Only] The resource URL for the security policy associated with this - // target instance. - optional string security_policy = 11 [json_name = "securityPolicy"]; + optional string name = 8 [json_name = "name"]; + + // This field only applies when the forwarding rule that references this + // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When + // this field is set to true, Envoy proxies set up inbound traffic + // interception and bind to the IP address and port specified in the + // forwarding rule. This is generally useful when using Traffic Director to + // configure Envoy as a gateway or middle proxy (in other words, not a sidecar + // proxy). The Envoy proxy listens for inbound requests and handles requests + // when it receives them. The default is false. + optional bool proxy_bind = 9 [json_name = "proxyBind"]; + + // Specifies the QUIC override policy for this TargetHttpsProxy resource. This + // setting determines whether the load balancer attempts to negotiate QUIC + // with clients. You can specify NONE, ENABLE, or DISABLE. - When + // quic-override is set to NONE, Google manages whether QUIC is used. - When + // quic-override is set to ENABLE, the load balancer uses QUIC when possible. + // - When quic-override is set to DISABLE, the load balancer doesn't use QUIC. + // - If the quic-override flag is not specified, NONE is implied. + // DISABLE: The load balancer will not attempt to negotiate QUIC with clients. + // ENABLE: The load balancer will attempt to negotiate QUIC with clients. + // NONE: No overrides to the default QUIC policy. This option is implicit if + // no QUIC override has been specified in the request. + optional string quic_override = 10 [json_name = "quicOverride"]; + + // [Output Only] URL of the region where the regional TargetHttpsProxy + // resides. This field is not applicable to global TargetHttpsProxies. + optional string region = 11 [json_name = "region"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 9 [json_name = "selfLink"]; - - // [Output Only] URL of the zone where the target instance resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - optional string zone = 10 [json_name = "zone"]; + optional string self_link = 12 [json_name = "selfLink"]; + + // Optional. A URL referring to a networksecurity.ServerTlsPolicy resource + // that describes how the proxy should authenticate inbound traffic. + // serverTlsPolicy only applies to a global TargetHttpsProxy attached to + // globalForwardingRules with the loadBalancingScheme set to + // INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED or INTERNAL_MANAGED. + // It also applies to a regional TargetHttpsProxy attached to regional + // forwardingRules with the loadBalancingScheme set to EXTERNAL_MANAGED or + // INTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted + // with INTERNAL_SELF_MANAGED and which with EXTERNAL, INTERNAL_MANAGED, + // EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. + // If left blank, communications are not encrypted. + optional string server_tls_policy = 13 [json_name = "serverTlsPolicy"]; + + // URLs to SslCertificate resources that are used to authenticate connections + // between users and the load balancer. At least one SSL certificate must be + // specified. SslCertificates do not apply when the load balancing scheme is + // set to INTERNAL_SELF_MANAGED. The URLs should refer to a SSL Certificate + // resource or Certificate Manager Certificate resource. Mixing Classic + // Certificates and Certificate Manager Certificates is not allowed. + // Certificate Manager Certificates must include the certificatemanager API + // namespace. Using Certificate Manager Certificates in this field is not + // supported by Global external Application Load Balancer or Classic + // Application Load Balancer, use certificate_map instead. Currently, you may + // specify up to 15 Classic SSL Certificates or up to 100 Certificate Manager + // Certificates. Certificate Manager Certificates accepted formats are: - + // //certificatemanager.googleapis.com/projects/{project}/locations/{ + // location}/certificates/{resourceName}. - + // https://certificatemanager.googleapis.com/v1alpha1/projects/{project + // }/locations/{location}/certificates/{resourceName}. + repeated string ssl_certificates = 14 [json_name = "sslCertificates"]; + + // URL of SslPolicy resource that will be associated with the TargetHttpsProxy + // resource. If not set, the TargetHttpsProxy resource has no SSL policy + // configured. + optional string ssl_policy = 15 [json_name = "sslPolicy"]; + + // Specifies whether TLS 1.3 0-RTT Data ("Early Data") should be accepted for + // this service. Early Data allows a TLS resumption handshake to include the + // initial application payload (a HTTP request) alongside the handshake, + // reducing the effective round trips to "zero". This applies to TLS 1.3 + // connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). This can + // improve application performance, especially on networks where interruptions + // may be common, such as on mobile. Requests with Early Data will have the + // "Early-Data" HTTP header set on the request, with a value of "1", to allow + // the backend to determine whether Early Data was included. Note: TLS Early + // Data may allow requests to be replayed, as the data is sent to the backend + // before the handshake has fully completed. Applications that allow + // idempotent HTTP methods to make non-idempotent changes, such as a GET + // request updating a database, should not accept Early Data on those + // requests, and reject requests with the "Early-Data: 1" HTTP header by + // returning a HTTP 425 (Too Early) status code, in order to remain RFC + // compliant. The default value is DISABLED. + // DISABLED: TLS 1.3 Early Data is not advertised, and any (invalid) attempts + // to send Early Data will be rejected by closing the connection. + // PERMISSIVE: This enables TLS 1.3 0-RTT, and only allows Early Data to be + // included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). + // This mode does not enforce any other limitations for requests with Early + // Data. The application owner should validate that Early Data is acceptable + // for a given request path. + // STRICT: This enables TLS 1.3 0-RTT, and only allows Early Data to be + // included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) + // without query parameters. Requests that send Early Data with non-idempotent + // HTTP methods or with query parameters will be rejected with a HTTP 425. + // UNRESTRICTED: This enables TLS 1.3 Early Data for requests with any HTTP + // method including non-idempotent methods list POST. This mode does not + // enforce any other limitations. This may be valuable for gRPC use cases. + // However, we do not recommend this method unless you have evaluated your + // security stance and mitigated the risk of replay attacks using other + // mechanisms. + optional string tls_early_data = 18 [json_name = "tlsEarlyData"]; + + // A fully-qualified or valid partial URL to the UrlMap resource that defines + // the mapping from URL to the BackendService. For example, the following are + // all valid URLs for specifying a URL map: - + // https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map + // - projects/project/global/urlMaps/url-map - global/urlMaps/url-map + optional string url_map = 16 [json_name = "urlMap"]; } -message TargetInstanceAggregatedList { +// Contains a list of TargetHttpsProxy resources. +message TargetHttpsProxyList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetInstance resources. - map items = 2 [json_name = "items"]; + // A list of TargetHttpsProxy resources. + repeated TargetHttpsProxy items = 2 [json_name = "items"]; - // Type of resource. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// Contains a list of TargetInstance resources. -message TargetInstanceList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of TargetInstance resources. - repeated TargetInstance items = 2 [json_name = "items"]; - - // Type of resource. + // Type of resource. Always compute#targetHttpsProxyList for lists of target + // HTTPS proxies. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -300,95 +310,3 @@ message TargetInstanceList { // [Output Only] Informational warning message. optional Warning warning = 6 [json_name = "warning"]; } - -message TargetInstancesScopedList { - // A list of target instances contained in this scope. - repeated TargetInstance target_instances = 1 [json_name = "targetInstances"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // Informational warning which replaces the list of addresses when the list is - // empty. - optional Warning warning = 2 [json_name = "warning"]; -} diff --git a/protos/google/cloud/compute/v1/internal/common_138.proto b/protos/google/cloud/compute/v1/internal/common_138.proto index 6bdc59bc1c142..1ff96121b368e 100644 --- a/protos/google/cloud/compute/v1/internal/common_138.proto +++ b/protos/google/cloud/compute/v1/internal/common_138.proto @@ -15,71 +15,40 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_049.proto"; -import "google/cloud/compute/v1/internal/common_052.proto"; -import "google/cloud/compute/v1/internal/common_063.proto"; - -// Represents a Target Pool resource. Target pools are used with external -// passthrough Network Load Balancers. A target pool references member -// instances, an associated legacy HttpHealthCheck resource, and, optionally, a -// backup target pool. For more information, read Using target pools. -message TargetPool { - // The server-defined URL for the resource. This field is applicable only when - // the containing target pool is serving a forwarding rule as the primary - // pool, and its failoverRatio field is properly set to a value between [0, - // 1]. backupPool and failoverRatio together define the fallback behavior of - // the primary target pool: if the ratio of the healthy instances in the - // primary pool is at or below failoverRatio, traffic arriving at the - // load-balanced IP will be directed to the backup pool. In case where - // failoverRatio and backupPool are not set, or all the instances in the - // backup pool are unhealthy, the traffic will be directed back to the primary - // pool in the "force" mode, where traffic will be spread to the healthy - // instances with the best effort, or to all instances when no instance is - // healthy. - optional string backup_pool = 1 [json_name = "backupPool"]; - +// Represents a Target Instance resource. You can use a target instance to +// handle traffic for one or more forwarding rules, which is ideal for +// forwarding protocol traffic that is managed by a single source. For example, +// ESP, AH, TCP, or UDP. For more information, read Target instances. +message TargetInstance { // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; // An optional description of this resource. Provide this property when you // create the resource. - optional string description = 3 [json_name = "description"]; - - // This field is applicable only when the containing target pool is serving a - // forwarding rule as the primary pool (i.e., not as a backup pool to some - // other target pool). The value of the field must be in [0, 1]. If set, - // backupPool must also be set. They together define the fallback behavior of - // the primary target pool: if the ratio of the healthy instances in the - // primary pool is at or below this number, traffic arriving at the - // load-balanced IP will be directed to the backup pool. In case where - // failoverRatio is not set or all the instances in the backup pool are - // unhealthy, the traffic will be directed back to the primary pool in the - // "force" mode, where traffic will be spread to the healthy instances with - // the best effort, or to all instances when no instance is healthy. - optional float failover_ratio = 4 [json_name = "failoverRatio"]; - - // The URL of the HttpHealthCheck resource. A member instance in this pool is - // considered healthy if and only if the health checks pass. Only legacy - // HttpHealthChecks are supported. Only one health check may be specified. - repeated string health_checks = 5 [json_name = "healthChecks"]; + optional string description = 2 [json_name = "description"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 6 [json_name = "id"]; + optional string id = 3 [json_name = "id"]; - // A list of resource URLs to the virtual machine instances serving this pool. - // They must live in zones contained in the same region as this pool. - repeated string instances = 7 [json_name = "instances"]; + // A URL to the virtual machine instance that handles traffic for this target + // instance. When creating a target instance, you can provide the + // fully-qualified URL or a valid partial URL to the desired virtual machine. + // For example, the following are all valid URLs: - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone + // /instances/instance - projects/project/zones/zone/instances/instance - + // zones/zone/instances/instance + optional string instance = 4 [json_name = "instance"]; - // [Output Only] Type of the resource. Always compute#targetPool for target - // pools. - optional string kind = 8 [json_name = "kind"]; + // [Output Only] The type of the resource. Always compute#targetInstance for + // target instances. + optional string kind = 5 [json_name = "kind"]; // Name of the resource. Provided by the client when the resource is created. // The name must be 1-63 characters long, and comply with RFC1035. @@ -88,64 +57,40 @@ message TargetPool { // must be a lowercase letter, and all following characters must be a dash, // lowercase letter, or digit, except the last character, which cannot be a // dash. - optional string name = 9 [json_name = "name"]; + optional string name = 6 [json_name = "name"]; + + // Must have a value of NO_NAT. Protocol forwarding delivers packets while + // preserving the destination IP address of the forwarding rule referencing + // the target instance. + // NO_NAT: No NAT performed. + optional string nat_policy = 7 [json_name = "natPolicy"]; - // [Output Only] URL of the region where the target pool resides. - optional string region = 10 [json_name = "region"]; + // The URL of the network this target instance uses to forward traffic. If not + // specified, the traffic will be forwarded to the network that the default + // network interface belongs to. + optional string network = 8 [json_name = "network"]; // [Output Only] The resource URL for the security policy associated with this - // target pool. - optional string security_policy = 13 [json_name = "securityPolicy"]; + // target instance. + optional string security_policy = 11 [json_name = "securityPolicy"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 11 [json_name = "selfLink"]; - - // Session affinity option, must be one of the following values: NONE: - // Connections from the same client IP may go to any instance in the pool. - // CLIENT_IP: Connections from the same client IP will go to the same instance - // in the pool while that instance remains healthy. CLIENT_IP_PROTO: - // Connections from the same client IP with the same IP protocol will go to - // the same instance in the pool while that instance remains healthy. - // CLIENT_IP: 2-tuple hash on packet's source and destination IP addresses. - // Connections from the same source IP address to the same destination IP - // address will be served by the same backend VM while that VM remains - // healthy. - // CLIENT_IP_NO_DESTINATION: 1-tuple hash only on packet's source IP address. - // Connections from the same source IP address will be served by the same - // backend VM while that VM remains healthy. This option can only be used for - // Internal TCP/UDP Load Balancing. - // CLIENT_IP_PORT_PROTO: 5-tuple hash on packet's source and destination IP - // addresses, IP protocol, and source and destination ports. Connections for - // the same IP protocol from the same source IP address and port to the same - // destination IP address and port will be served by the same backend VM while - // that VM remains healthy. This option cannot be used for HTTP(S) load - // balancing. - // CLIENT_IP_PROTO: 3-tuple hash on packet's source and destination IP - // addresses, and IP protocol. Connections for the same IP protocol from the - // same source IP address to the same destination IP address will be served by - // the same backend VM while that VM remains healthy. This option cannot be - // used for HTTP(S) load balancing. - // GENERATED_COOKIE: Hash based on a cookie generated by the L7 loadbalancer. - // Only valid for HTTP(S) load balancing. - // HEADER_FIELD: The hash is based on a user specified header field. - // HTTP_COOKIE: The hash is based on a user provided cookie. - // NONE: No session affinity. Connections from the same client IP may go to - // any instance in the pool. - // STRONG_COOKIE_AFFINITY: Strong cookie-based affinity. Connections bearing - // the same cookie will be served by the same backend VM while that VM remains - // healthy, as long as the cookie has not expired. - optional string session_affinity = 12 [json_name = "sessionAffinity"]; + optional string self_link = 9 [json_name = "selfLink"]; + + // [Output Only] URL of the zone where the target instance resides. You must + // specify this field as part of the HTTP request URL. It is not settable as a + // field in the request body. + optional string zone = 10 [json_name = "zone"]; } -message TargetPoolAggregatedList { +message TargetInstanceAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetPool resources. - map items = 2 [json_name = "items"]; + // A list of TargetInstance resources. + map items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#targetPoolAggregatedList for - // aggregated lists of target pools. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -248,24 +193,15 @@ message TargetPoolAggregatedList { optional Warning warning = 7 [json_name = "warning"]; } -message TargetPoolInstanceHealth { - repeated HealthStatus health_status = 1 [json_name = "healthStatus"]; - - // [Output Only] Type of resource. Always compute#targetPoolInstanceHealth - // when checking the health of an instance. - optional string kind = 2 [json_name = "kind"]; -} - -// Contains a list of TargetPool resources. -message TargetPoolList { +// Contains a list of TargetInstance resources. +message TargetInstanceList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetPool resources. - repeated TargetPool items = 2 [json_name = "items"]; + // A list of TargetInstance resources. + repeated TargetInstance items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#targetPoolList for lists of - // target pools. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -365,39 +301,9 @@ message TargetPoolList { optional Warning warning = 6 [json_name = "warning"]; } -message TargetPoolsAddHealthCheckRequest { - // The HttpHealthCheck to add to the target pool. - repeated HealthCheckReference health_checks = 1 [json_name = "healthChecks"]; -} - -message TargetPoolsAddInstanceRequest { - // A full or partial URL to an instance to add to this target pool. This can - // be a full or partial URL. For example, the following are valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project-id/zones/zone - // /instances/instance-name - - // projects/project-id/zones/zone/instances/instance-name - - // zones/zone/instances/instance-name - repeated InstanceReference instances = 1 [json_name = "instances"]; -} - -message TargetPoolsRemoveHealthCheckRequest { - // Health check URL to be removed. This can be a full or valid partial URL. - // For example, the following are valid URLs: - - // https://www.googleapis.com/compute/beta/projects/project - // /global/httpHealthChecks/health-check - - // projects/project/global/httpHealthChecks/health-check - - // global/httpHealthChecks/health-check - repeated HealthCheckReference health_checks = 1 [json_name = "healthChecks"]; -} - -message TargetPoolsRemoveInstanceRequest { - // URLs of the instances to be removed from target pool. - repeated InstanceReference instances = 1 [json_name = "instances"]; -} - -message TargetPoolsScopedList { - // A list of target pools contained in this scope. - repeated TargetPool target_pools = 1 [json_name = "targetPools"]; +message TargetInstancesScopedList { + // A list of target instances contained in this scope. + repeated TargetInstance target_instances = 1 [json_name = "targetInstances"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine diff --git a/protos/google/cloud/compute/v1/internal/common_139.proto b/protos/google/cloud/compute/v1/internal/common_139.proto index 0eb6baf433de3..30b540cadc89d 100644 --- a/protos/google/cloud/compute/v1/internal/common_139.proto +++ b/protos/google/cloud/compute/v1/internal/common_139.proto @@ -15,12 +15,474 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message TargetReference { - optional string target = 1 [json_name = "target"]; +import "google/cloud/compute/v1/internal/common_049.proto"; +import "google/cloud/compute/v1/internal/common_052.proto"; +import "google/cloud/compute/v1/internal/common_063.proto"; + +// Represents a Target Pool resource. Target pools are used with external +// passthrough Network Load Balancers. A target pool references member +// instances, an associated legacy HttpHealthCheck resource, and, optionally, a +// backup target pool. For more information, read Using target pools. +message TargetPool { + // The server-defined URL for the resource. This field is applicable only when + // the containing target pool is serving a forwarding rule as the primary + // pool, and its failoverRatio field is properly set to a value between [0, + // 1]. backupPool and failoverRatio together define the fallback behavior of + // the primary target pool: if the ratio of the healthy instances in the + // primary pool is at or below failoverRatio, traffic arriving at the + // load-balanced IP will be directed to the backup pool. In case where + // failoverRatio and backupPool are not set, or all the instances in the + // backup pool are unhealthy, the traffic will be directed back to the primary + // pool in the "force" mode, where traffic will be spread to the healthy + // instances with the best effort, or to all instances when no instance is + // healthy. + optional string backup_pool = 1 [json_name = "backupPool"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 3 [json_name = "description"]; + + // This field is applicable only when the containing target pool is serving a + // forwarding rule as the primary pool (i.e., not as a backup pool to some + // other target pool). The value of the field must be in [0, 1]. If set, + // backupPool must also be set. They together define the fallback behavior of + // the primary target pool: if the ratio of the healthy instances in the + // primary pool is at or below this number, traffic arriving at the + // load-balanced IP will be directed to the backup pool. In case where + // failoverRatio is not set or all the instances in the backup pool are + // unhealthy, the traffic will be directed back to the primary pool in the + // "force" mode, where traffic will be spread to the healthy instances with + // the best effort, or to all instances when no instance is healthy. + optional float failover_ratio = 4 [json_name = "failoverRatio"]; + + // The URL of the HttpHealthCheck resource. A member instance in this pool is + // considered healthy if and only if the health checks pass. Only legacy + // HttpHealthChecks are supported. Only one health check may be specified. + repeated string health_checks = 5 [json_name = "healthChecks"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 6 [json_name = "id"]; + + // A list of resource URLs to the virtual machine instances serving this pool. + // They must live in zones contained in the same region as this pool. + repeated string instances = 7 [json_name = "instances"]; + + // [Output Only] Type of the resource. Always compute#targetPool for target + // pools. + optional string kind = 8 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 9 [json_name = "name"]; + + // [Output Only] URL of the region where the target pool resides. + optional string region = 10 [json_name = "region"]; + + // [Output Only] The resource URL for the security policy associated with this + // target pool. + optional string security_policy = 13 [json_name = "securityPolicy"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 11 [json_name = "selfLink"]; + + // Session affinity option, must be one of the following values: NONE: + // Connections from the same client IP may go to any instance in the pool. + // CLIENT_IP: Connections from the same client IP will go to the same instance + // in the pool while that instance remains healthy. CLIENT_IP_PROTO: + // Connections from the same client IP with the same IP protocol will go to + // the same instance in the pool while that instance remains healthy. + // CLIENT_IP: 2-tuple hash on packet's source and destination IP addresses. + // Connections from the same source IP address to the same destination IP + // address will be served by the same backend VM while that VM remains + // healthy. + // CLIENT_IP_NO_DESTINATION: 1-tuple hash only on packet's source IP address. + // Connections from the same source IP address will be served by the same + // backend VM while that VM remains healthy. This option can only be used for + // Internal TCP/UDP Load Balancing. + // CLIENT_IP_PORT_PROTO: 5-tuple hash on packet's source and destination IP + // addresses, IP protocol, and source and destination ports. Connections for + // the same IP protocol from the same source IP address and port to the same + // destination IP address and port will be served by the same backend VM while + // that VM remains healthy. This option cannot be used for HTTP(S) load + // balancing. + // CLIENT_IP_PROTO: 3-tuple hash on packet's source and destination IP + // addresses, and IP protocol. Connections for the same IP protocol from the + // same source IP address to the same destination IP address will be served by + // the same backend VM while that VM remains healthy. This option cannot be + // used for HTTP(S) load balancing. + // GENERATED_COOKIE: Hash based on a cookie generated by the L7 loadbalancer. + // Only valid for HTTP(S) load balancing. + // HEADER_FIELD: The hash is based on a user specified header field. + // HTTP_COOKIE: The hash is based on a user provided cookie. + // NONE: No session affinity. Connections from the same client IP may go to + // any instance in the pool. + // STRONG_COOKIE_AFFINITY: Strong cookie-based affinity. Connections bearing + // the same cookie will be served by the same backend VM while that VM remains + // healthy, as long as the cookie has not expired. + optional string session_affinity = 12 [json_name = "sessionAffinity"]; +} + +message TargetPoolAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetPool resources. + map items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#targetPoolAggregatedList for + // aggregated lists of target pools. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; +} + +message TargetPoolInstanceHealth { + repeated HealthStatus health_status = 1 [json_name = "healthStatus"]; + + // [Output Only] Type of resource. Always compute#targetPoolInstanceHealth + // when checking the health of an instance. + optional string kind = 2 [json_name = "kind"]; +} + +// Contains a list of TargetPool resources. +message TargetPoolList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetPool resources. + repeated TargetPool items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#targetPoolList for lists of + // target pools. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +message TargetPoolsAddHealthCheckRequest { + // The HttpHealthCheck to add to the target pool. + repeated HealthCheckReference health_checks = 1 [json_name = "healthChecks"]; +} + +message TargetPoolsAddInstanceRequest { + // A full or partial URL to an instance to add to this target pool. This can + // be a full or partial URL. For example, the following are valid URLs: - + // https://www.googleapis.com/compute/v1/projects/project-id/zones/zone + // /instances/instance-name - + // projects/project-id/zones/zone/instances/instance-name - + // zones/zone/instances/instance-name + repeated InstanceReference instances = 1 [json_name = "instances"]; +} + +message TargetPoolsRemoveHealthCheckRequest { + // Health check URL to be removed. This can be a full or valid partial URL. + // For example, the following are valid URLs: - + // https://www.googleapis.com/compute/beta/projects/project + // /global/httpHealthChecks/health-check - + // projects/project/global/httpHealthChecks/health-check - + // global/httpHealthChecks/health-check + repeated HealthCheckReference health_checks = 1 [json_name = "healthChecks"]; +} + +message TargetPoolsRemoveInstanceRequest { + // URLs of the instances to be removed from target pool. + repeated InstanceReference instances = 1 [json_name = "instances"]; +} + +message TargetPoolsScopedList { + // A list of target pools contained in this scope. + repeated TargetPool target_pools = 1 [json_name = "targetPools"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // Informational warning which replaces the list of addresses when the list is + // empty. + optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_140.proto b/protos/google/cloud/compute/v1/internal/common_140.proto index 9758fcc647a11..c75e953b238b3 100644 --- a/protos/google/cloud/compute/v1/internal/common_140.proto +++ b/protos/google/cloud/compute/v1/internal/common_140.proto @@ -15,203 +15,12 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message TargetSslProxiesSetBackendServiceRequest { - // The URL of the new BackendService resource for the targetSslProxy. - optional string service = 1 [json_name = "service"]; -} - -message TargetSslProxiesSetCertificateMapRequest { - // URL of the Certificate Map to associate with this TargetSslProxy. Accepted - // format is //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. - optional string certificate_map = 1 [json_name = "certificateMap"]; -} - -message TargetSslProxiesSetProxyHeaderRequest { - // The new type of proxy header to append before sending data to the backend. - // NONE or PROXY_V1 are allowed. - // NONE: - // PROXY_V1: - optional string proxy_header = 1 [json_name = "proxyHeader"]; -} - -message TargetSslProxiesSetSslCertificatesRequest { - // New set of URLs to SslCertificate resources to associate with this - // TargetSslProxy. At least one SSL certificate must be specified. Currently, - // you may specify up to 15 SSL certificates. - repeated string ssl_certificates = 1 [json_name = "sslCertificates"]; -} - -// Represents a Target SSL Proxy resource. A target SSL proxy is a component of -// a Proxy Network Load Balancer. The forwarding rule references the target SSL -// proxy, and the target proxy then references a backend service. For more -// information, read Proxy Network Load Balancer overview. -message TargetSslProxy { - // URL of a certificate map that identifies a certificate map associated with - // the given target proxy. This field can only be set for global target - // proxies. If set, sslCertificates will be ignored. Accepted format is - // //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. - optional string certificate_map = 1 [json_name = "certificateMap"]; - - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 3 [json_name = "description"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 4 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#targetSslProxy for - // target SSL proxies. - optional string kind = 5 [json_name = "kind"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 6 [json_name = "name"]; - - // Specifies the type of proxy header to append before sending data to the - // backend, either NONE or PROXY_V1. The default is NONE. - // NONE: - // PROXY_V1: - optional string proxy_header = 7 [json_name = "proxyHeader"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 8 [json_name = "selfLink"]; - - // URL to the BackendService resource. - optional string service = 9 [json_name = "service"]; - - // URLs to SslCertificate resources that are used to authenticate connections - // to Backends. At least one SSL certificate must be specified. Currently, you - // may specify up to 15 SSL certificates. sslCertificates do not apply when - // the load balancing scheme is set to INTERNAL_SELF_MANAGED. - repeated string ssl_certificates = 10 [json_name = "sslCertificates"]; - - // URL of SslPolicy resource that will be associated with the TargetSslProxy - // resource. If not set, the TargetSslProxy resource will not have any SSL - // policy configured. - optional string ssl_policy = 11 [json_name = "sslPolicy"]; -} - -// Contains a list of TargetSslProxy resources. -message TargetSslProxyList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of TargetSslProxy resources. - repeated TargetSslProxy items = 2 [json_name = "items"]; - - // Type of resource. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; +message TargetReference { + optional string target = 1 [json_name = "target"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_141.proto b/protos/google/cloud/compute/v1/internal/common_141.proto index e4718467a3b39..21614b381d612 100644 --- a/protos/google/cloud/compute/v1/internal/common_141.proto +++ b/protos/google/cloud/compute/v1/internal/common_141.proto @@ -15,113 +15,25 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_142.proto"; - -message TargetTcpProxiesScopedList { - // A list of TargetTcpProxies contained in this scope. - repeated TargetTcpProxy target_tcp_proxies = 1 - [json_name = "targetTcpProxies"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // Informational warning which replaces the list of backend services when the - // list is empty. - optional Warning warning = 2 [json_name = "warning"]; +message TargetSslProxiesSetBackendServiceRequest { + // The URL of the new BackendService resource for the targetSslProxy. + optional string service = 1 [json_name = "service"]; } -message TargetTcpProxiesSetBackendServiceRequest { - // The URL of the new BackendService resource for the targetTcpProxy. - optional string service = 1 [json_name = "service"]; +message TargetSslProxiesSetCertificateMapRequest { + // URL of the Certificate Map to associate with this TargetSslProxy. Accepted + // format is //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. + optional string certificate_map = 1 [json_name = "certificateMap"]; } -message TargetTcpProxiesSetProxyHeaderRequest { +message TargetSslProxiesSetProxyHeaderRequest { // The new type of proxy header to append before sending data to the backend. // NONE or PROXY_V1 are allowed. // NONE: @@ -129,15 +41,82 @@ message TargetTcpProxiesSetProxyHeaderRequest { optional string proxy_header = 1 [json_name = "proxyHeader"]; } -message TargetTcpProxyAggregatedList { +message TargetSslProxiesSetSslCertificatesRequest { + // New set of URLs to SslCertificate resources to associate with this + // TargetSslProxy. At least one SSL certificate must be specified. Currently, + // you may specify up to 15 SSL certificates. + repeated string ssl_certificates = 1 [json_name = "sslCertificates"]; +} + +// Represents a Target SSL Proxy resource. A target SSL proxy is a component of +// a Proxy Network Load Balancer. The forwarding rule references the target SSL +// proxy, and the target proxy then references a backend service. For more +// information, read Proxy Network Load Balancer overview. +message TargetSslProxy { + // URL of a certificate map that identifies a certificate map associated with + // the given target proxy. This field can only be set for global target + // proxies. If set, sslCertificates will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. + optional string certificate_map = 1 [json_name = "certificateMap"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 3 [json_name = "description"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 4 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#targetSslProxy for + // target SSL proxies. + optional string kind = 5 [json_name = "kind"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 6 [json_name = "name"]; + + // Specifies the type of proxy header to append before sending data to the + // backend, either NONE or PROXY_V1. The default is NONE. + // NONE: + // PROXY_V1: + optional string proxy_header = 7 [json_name = "proxyHeader"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 8 [json_name = "selfLink"]; + + // URL to the BackendService resource. + optional string service = 9 [json_name = "service"]; + + // URLs to SslCertificate resources that are used to authenticate connections + // to Backends. At least one SSL certificate must be specified. Currently, you + // may specify up to 15 SSL certificates. sslCertificates do not apply when + // the load balancing scheme is set to INTERNAL_SELF_MANAGED. + repeated string ssl_certificates = 10 [json_name = "sslCertificates"]; + + // URL of SslPolicy resource that will be associated with the TargetSslProxy + // resource. If not set, the TargetSslProxy resource will not have any SSL + // policy configured. + optional string ssl_policy = 11 [json_name = "sslPolicy"]; +} + +// Contains a list of TargetSslProxy resources. +message TargetSslProxyList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetTcpProxiesScopedList resources. - map items = 2 [json_name = "items"]; + // A list of TargetSslProxy resources. + repeated TargetSslProxy items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList - // for lists of Target TCP Proxies. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -150,9 +129,6 @@ message TargetTcpProxyAggregatedList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -237,5 +213,5 @@ message TargetTcpProxyAggregatedList { } // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_142.proto b/protos/google/cloud/compute/v1/internal/common_142.proto index 15ac41a593fe7..45092eb4fadaf 100644 --- a/protos/google/cloud/compute/v1/internal/common_142.proto +++ b/protos/google/cloud/compute/v1/internal/common_142.proto @@ -15,77 +15,129 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target TCP Proxy resource. A target TCP proxy is a component of -// a Proxy Network Load Balancer. The forwarding rule references the target TCP -// proxy, and the target proxy then references a backend service. For more -// information, read Proxy Network Load Balancer overview. -message TargetTcpProxy { - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 2 [json_name = "description"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 3 [json_name = "id"]; - - // [Output Only] Type of the resource. Always compute#targetTcpProxy for - // target TCP proxies. - optional string kind = 4 [json_name = "kind"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 5 [json_name = "name"]; - - // This field only applies when the forwarding rule that references this - // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When - // this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the - // forwarding rule. This is generally useful when using Traffic Director to - // configure Envoy as a gateway or middle proxy (in other words, not a sidecar - // proxy). The Envoy proxy listens for inbound requests and handles requests - // when it receives them. The default is false. - optional bool proxy_bind = 6 [json_name = "proxyBind"]; - - // Specifies the type of proxy header to append before sending data to the - // backend, either NONE or PROXY_V1. The default is NONE. - // NONE: - // PROXY_V1: - optional string proxy_header = 7 [json_name = "proxyHeader"]; +import "google/cloud/compute/v1/internal/common_143.proto"; - // [Output Only] URL of the region where the regional TCP proxy resides. This - // field is not applicable to global TCP proxy. - optional string region = 8 [json_name = "region"]; +message TargetTcpProxiesScopedList { + // A list of TargetTcpProxies contained in this scope. + repeated TargetTcpProxy target_tcp_proxies = 1 + [json_name = "targetTcpProxies"]; - // [Output Only] Server-defined URL for the resource. - optional string self_link = 9 [json_name = "selfLink"]; + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; - // URL to the BackendService resource. - optional string service = 10 [json_name = "service"]; + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // Informational warning which replaces the list of backend services when the + // list is empty. + optional Warning warning = 2 [json_name = "warning"]; +} + +message TargetTcpProxiesSetBackendServiceRequest { + // The URL of the new BackendService resource for the targetTcpProxy. + optional string service = 1 [json_name = "service"]; } -// Contains a list of TargetTcpProxy resources. -message TargetTcpProxyList { +message TargetTcpProxiesSetProxyHeaderRequest { + // The new type of proxy header to append before sending data to the backend. + // NONE or PROXY_V1 are allowed. + // NONE: + // PROXY_V1: + optional string proxy_header = 1 [json_name = "proxyHeader"]; +} + +message TargetTcpProxyAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetTcpProxy resources. - repeated TargetTcpProxy items = 2 [json_name = "items"]; + // A list of TargetTcpProxiesScopedList resources. + map items = 2 [json_name = "items"]; - // Type of resource. + // [Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList + // for lists of Target TCP Proxies. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -98,6 +150,9 @@ message TargetTcpProxyList { // [Output Only] Server-defined URL for this resource. optional string self_link = 5 [json_name = "selfLink"]; + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine // returns NO_RESULTS_ON_PAGE if there are no results in the response. @@ -182,5 +237,5 @@ message TargetTcpProxyList { } // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; + optional Warning warning = 7 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_143.proto b/protos/google/cloud/compute/v1/internal/common_143.proto index 97c4958dbd9eb..e2e27a7e39e22 100644 --- a/protos/google/cloud/compute/v1/internal/common_143.proto +++ b/protos/google/cloud/compute/v1/internal/common_143.proto @@ -15,16 +15,17 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Target VPN Gateway resource. The target VPN gateway resource -// represents a Classic Cloud VPN gateway. For more information, read the the -// Cloud VPN Overview. -message TargetVpnGateway { +// Represents a Target TCP Proxy resource. A target TCP proxy is a component of +// a Proxy Network Load Balancer. The forwarding rule references the target TCP +// proxy, and the target proxy then references a backend service. For more +// information, read Proxy Network Load Balancer overview. +message TargetTcpProxy { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; @@ -32,32 +33,13 @@ message TargetVpnGateway { // create the resource. optional string description = 2 [json_name = "description"]; - // [Output Only] A list of URLs to the ForwardingRule resources. - // ForwardingRules are created using compute.forwardingRules.insert and - // associated with a VPN gateway. - repeated string forwarding_rules = 3 [json_name = "forwardingRules"]; - // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 4 [json_name = "id"]; - - // [Output Only] Type of resource. Always compute#targetVpnGateway for target - // VPN gateways. - optional string kind = 5 [json_name = "kind"]; + optional string id = 3 [json_name = "id"]; - // A fingerprint for the labels being applied to this TargetVpnGateway, which - // is essentially a hash of the labels set used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels, otherwise - // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a TargetVpnGateway. - optional string label_fingerprint = 12 [json_name = "labelFingerprint"]; - - // Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - map labels = 13 [json_name = "labels"]; + // [Output Only] Type of the resource. Always compute#targetTcpProxy for + // target TCP proxies. + optional string kind = 4 [json_name = "kind"]; // Name of the resource. Provided by the client when the resource is created. // The name must be 1-63 characters long, and comply with RFC1035. @@ -66,155 +48,44 @@ message TargetVpnGateway { // must be a lowercase letter, and all following characters must be a dash, // lowercase letter, or digit, except the last character, which cannot be a // dash. - optional string name = 6 [json_name = "name"]; - - // URL of the network to which this VPN gateway is attached. Provided by the - // client when the VPN gateway is created. - optional string network = 7 [json_name = "network"]; - - // [Output Only] URL of the region where the target VPN gateway resides. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. + optional string name = 5 [json_name = "name"]; + + // This field only applies when the forwarding rule that references this + // target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When + // this field is set to true, Envoy proxies set up inbound traffic + // interception and bind to the IP address and port specified in the + // forwarding rule. This is generally useful when using Traffic Director to + // configure Envoy as a gateway or middle proxy (in other words, not a sidecar + // proxy). The Envoy proxy listens for inbound requests and handles requests + // when it receives them. The default is false. + optional bool proxy_bind = 6 [json_name = "proxyBind"]; + + // Specifies the type of proxy header to append before sending data to the + // backend, either NONE or PROXY_V1. The default is NONE. + // NONE: + // PROXY_V1: + optional string proxy_header = 7 [json_name = "proxyHeader"]; + + // [Output Only] URL of the region where the regional TCP proxy resides. This + // field is not applicable to global TCP proxy. optional string region = 8 [json_name = "region"]; // [Output Only] Server-defined URL for the resource. optional string self_link = 9 [json_name = "selfLink"]; - // [Output Only] The status of the VPN gateway, which can be one of the - // following: CREATING, READY, FAILED, or DELETING. - // CREATING: - // DELETING: - // FAILED: - // READY: - optional string status = 10 [json_name = "status"]; - - // [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created - // using the compute.vpntunnels.insert method and associated with a VPN - // gateway. - repeated string tunnels = 11 [json_name = "tunnels"]; + // URL to the BackendService resource. + optional string service = 10 [json_name = "service"]; } -message TargetVpnGatewayAggregatedList { +// Contains a list of TargetTcpProxy resources. +message TargetTcpProxyList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of TargetVpnGateway resources. - map items = 2 [json_name = "items"]; + // A list of TargetTcpProxy resources. + repeated TargetTcpProxy items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#targetVpnGateway for target - // VPN gateways. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// Contains a list of TargetVpnGateway resources. -message TargetVpnGatewayList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of TargetVpnGateway resources. - repeated TargetVpnGateway items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#targetVpnGateway for target - // VPN gateways. + // Type of resource. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -313,96 +184,3 @@ message TargetVpnGatewayList { // [Output Only] Informational warning message. optional Warning warning = 6 [json_name = "warning"]; } - -message TargetVpnGatewaysScopedList { - // [Output Only] A list of target VPN gateways contained in this scope. - repeated TargetVpnGateway target_vpn_gateways = 1 - [json_name = "targetVpnGateways"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning which replaces the list of addresses - // when the list is empty. - optional Warning warning = 2 [json_name = "warning"]; -} diff --git a/protos/google/cloud/compute/v1/internal/common_144.proto b/protos/google/cloud/compute/v1/internal/common_144.proto index dc2f83c700f37..5c1c919e41ee1 100644 --- a/protos/google/cloud/compute/v1/internal/common_144.proto +++ b/protos/google/cloud/compute/v1/internal/common_144.proto @@ -15,20 +15,394 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message TestPermissionsRequest { - // The set of permissions to check for the 'resource'. Permissions with - // wildcards (such as '*' or 'storage.*') are not allowed. - repeated string permissions = 1 [json_name = "permissions"]; +// Represents a Target VPN Gateway resource. The target VPN gateway resource +// represents a Classic Cloud VPN gateway. For more information, read the the +// Cloud VPN Overview. +message TargetVpnGateway { + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; + + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 2 [json_name = "description"]; + + // [Output Only] A list of URLs to the ForwardingRule resources. + // ForwardingRules are created using compute.forwardingRules.insert and + // associated with a VPN gateway. + repeated string forwarding_rules = 3 [json_name = "forwardingRules"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 4 [json_name = "id"]; + + // [Output Only] Type of resource. Always compute#targetVpnGateway for target + // VPN gateways. + optional string kind = 5 [json_name = "kind"]; + + // A fingerprint for the labels being applied to this TargetVpnGateway, which + // is essentially a hash of the labels set used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide an + // up-to-date fingerprint hash in order to update or change labels, otherwise + // the request will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve a TargetVpnGateway. + optional string label_fingerprint = 12 [json_name = "labelFingerprint"]; + + // Labels for this resource. These can only be added or modified by the + // setLabels method. Each label key/value pair must comply with RFC1035. Label + // values may be empty. + map labels = 13 [json_name = "labels"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 6 [json_name = "name"]; + + // URL of the network to which this VPN gateway is attached. Provided by the + // client when the VPN gateway is created. + optional string network = 7 [json_name = "network"]; + + // [Output Only] URL of the region where the target VPN gateway resides. You + // must specify this field as part of the HTTP request URL. It is not settable + // as a field in the request body. + optional string region = 8 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 9 [json_name = "selfLink"]; + + // [Output Only] The status of the VPN gateway, which can be one of the + // following: CREATING, READY, FAILED, or DELETING. + // CREATING: + // DELETING: + // FAILED: + // READY: + optional string status = 10 [json_name = "status"]; + + // [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created + // using the compute.vpntunnels.insert method and associated with a VPN + // gateway. + repeated string tunnels = 11 [json_name = "tunnels"]; } -message TestPermissionsResponse { - // A subset of `TestPermissionsRequest.permissions` that the caller is - // allowed. - repeated string permissions = 1 [json_name = "permissions"]; +message TargetVpnGatewayAggregatedList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetVpnGateway resources. + map items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#targetVpnGateway for target + // VPN gateways. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; +} + +// Contains a list of TargetVpnGateway resources. +message TargetVpnGatewayList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of TargetVpnGateway resources. + repeated TargetVpnGateway items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#targetVpnGateway for target + // VPN gateways. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; +} + +message TargetVpnGatewaysScopedList { + // [Output Only] A list of target VPN gateways contained in this scope. + repeated TargetVpnGateway target_vpn_gateways = 1 + [json_name = "targetVpnGateways"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning which replaces the list of addresses + // when the list is empty. + optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_145.proto b/protos/google/cloud/compute/v1/internal/common_145.proto index 9df4eb95c11da..af60b813289a0 100644 --- a/protos/google/cloud/compute/v1/internal/common_145.proto +++ b/protos/google/cloud/compute/v1/internal/common_145.proto @@ -15,40 +15,20 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Upcoming Maintenance notification information. -message UpcomingMaintenance { - // Indicates if the maintenance can be customer triggered. - optional bool can_reschedule = 1 [json_name = "canReschedule"]; - - // The latest time for the planned maintenance window to start. This timestamp - // value is in RFC3339 text format. - optional string latest_window_start_time = 2 - [json_name = "latestWindowStartTime"]; - - // ONGOING: There is ongoing maintenance on this VM. - // PENDING: There is pending maintenance. - // UNKNOWN: Unknown maintenance status. Do not use this value. - optional string maintenance_status = 3 [json_name = "maintenanceStatus"]; - - // Defines the type of maintenance. - // SCHEDULED: Scheduled maintenance (e.g. maintenance after uptime guarantee - // is complete). - // UNKNOWN_TYPE: No type specified. Do not use this value. - // UNSCHEDULED: Unscheduled maintenance (e.g. emergency maintenance during - // uptime guarantee). - optional string type = 4 [json_name = "type"]; - - // The time by which the maintenance disruption will be completed. This - // timestamp value is in RFC3339 text format. - optional string window_end_time = 5 [json_name = "windowEndTime"]; +message TestPermissionsRequest { + // The set of permissions to check for the 'resource'. Permissions with + // wildcards (such as '*' or 'storage.*') are not allowed. + repeated string permissions = 1 [json_name = "permissions"]; +} - // The current start time of the maintenance window. This timestamp value is - // in RFC3339 text format. - optional string window_start_time = 6 [json_name = "windowStartTime"]; +message TestPermissionsResponse { + // A subset of `TestPermissionsRequest.permissions` that the caller is + // allowed. + repeated string permissions = 1 [json_name = "permissions"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_146.proto b/protos/google/cloud/compute/v1/internal/common_146.proto index 0c34598c42302..bbbfd03d17725 100644 --- a/protos/google/cloud/compute/v1/internal/common_146.proto +++ b/protos/google/cloud/compute/v1/internal/common_146.proto @@ -15,12 +15,40 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message UrlMapReference { - optional string url_map = 1 [json_name = "urlMap"]; +// Upcoming Maintenance notification information. +message UpcomingMaintenance { + // Indicates if the maintenance can be customer triggered. + optional bool can_reschedule = 1 [json_name = "canReschedule"]; + + // The latest time for the planned maintenance window to start. This timestamp + // value is in RFC3339 text format. + optional string latest_window_start_time = 2 + [json_name = "latestWindowStartTime"]; + + // ONGOING: There is ongoing maintenance on this VM. + // PENDING: There is pending maintenance. + // UNKNOWN: Unknown maintenance status. Do not use this value. + optional string maintenance_status = 3 [json_name = "maintenanceStatus"]; + + // Defines the type of maintenance. + // SCHEDULED: Scheduled maintenance (e.g. maintenance after uptime guarantee + // is complete). + // UNKNOWN_TYPE: No type specified. Do not use this value. + // UNSCHEDULED: Unscheduled maintenance (e.g. emergency maintenance during + // uptime guarantee). + optional string type = 4 [json_name = "type"]; + + // The time by which the maintenance disruption will be completed. This + // timestamp value is in RFC3339 text format. + optional string window_end_time = 5 [json_name = "windowEndTime"]; + + // The current start time of the maintenance window. This timestamp value is + // in RFC3339 text format. + optional string window_start_time = 6 [json_name = "windowStartTime"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_147.proto b/protos/google/cloud/compute/v1/internal/common_147.proto index f04791e722800..b5743ecf02c92 100644 --- a/protos/google/cloud/compute/v1/internal/common_147.proto +++ b/protos/google/cloud/compute/v1/internal/common_147.proto @@ -15,492 +15,12 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN -// solution that lets you securely connect your on-premises network to your -// Google Cloud Virtual Private Cloud network through an IPsec VPN connection in -// a single region. For more information about Cloud HA VPN solutions, see Cloud -// VPN topologies . -message VpnGateway { - // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - - // An optional description of this resource. Provide this property when you - // create the resource. - optional string description = 2 [json_name = "description"]; - - // The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not - // specified, IPV4 will be used. - // IPV4: Every HA-VPN gateway interface is configured with an IPv4 address. - // IPV6: Every HA-VPN gateway interface is configured with an IPv6 address. - optional string gateway_ip_version = 13 [json_name = "gatewayIpVersion"]; - - // [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - optional string id = 3 [json_name = "id"]; - - // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. - optional string kind = 4 [json_name = "kind"]; - - // A fingerprint for the labels being applied to this VpnGateway, which is - // essentially a hash of the labels set used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels, otherwise - // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a VpnGateway. - optional string label_fingerprint = 5 [json_name = "labelFingerprint"]; - - // Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - map labels = 6 [json_name = "labels"]; - - // Name of the resource. Provided by the client when the resource is created. - // The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - // must be a lowercase letter, and all following characters must be a dash, - // lowercase letter, or digit, except the last character, which cannot be a - // dash. - optional string name = 7 [json_name = "name"]; - - // URL of the network to which this VPN gateway is attached. Provided by the - // client when the VPN gateway is created. - optional string network = 8 [json_name = "network"]; - - // [Output Only] URL of the region where the VPN gateway resides. - optional string region = 9 [json_name = "region"]; - - // [Output Only] Server-defined URL for the resource. - optional string self_link = 10 [json_name = "selfLink"]; - - // The stack type for this VPN gateway to identify the IP protocols that are - // enabled. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY. If not - // specified, IPV4_ONLY is used if the gateway IP version is IPV4, or - // IPV4_IPV6 if the gateway IP version is IPV6. - // IPV4_IPV6: Enable VPN gateway with both IPv4 and IPv6 protocols. - // IPV4_ONLY: Enable VPN gateway with only IPv4 protocol. - // IPV6_ONLY: Enable VPN gateway with only IPv6 protocol. - optional string stack_type = 11 [json_name = "stackType"]; - - // The list of VPN interfaces associated with this VPN gateway. - repeated VpnGatewayVpnGatewayInterface vpn_interfaces = 12 - [json_name = "vpnInterfaces"]; -} - -message VpnGatewayAggregatedList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of VpnGateway resources. - map items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - // [Output Only] Unreachable resources. - repeated string unreachables = 6 [json_name = "unreachables"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 7 [json_name = "warning"]; -} - -// Contains a list of VpnGateway resources. -message VpnGatewayList { - // [Output Only] Unique identifier for the resource; defined by the server. - optional string id = 1 [json_name = "id"]; - - // A list of VpnGateway resources. - repeated VpnGateway items = 2 [json_name = "items"]; - - // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. - optional string kind = 3 [json_name = "kind"]; - - // [Output Only] This token allows you to get the next page of results for - // list requests. If the number of results is larger than maxResults, use the - // nextPageToken as a value for the query parameter pageToken in the next list - // request. Subsequent list requests will have their own nextPageToken to - // continue paging through the results. - optional string next_page_token = 4 [json_name = "nextPageToken"]; - - // [Output Only] Server-defined URL for this resource. - optional string self_link = 5 [json_name = "selfLink"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning message. - optional Warning warning = 6 [json_name = "warning"]; -} - -message VpnGatewayStatus { - // List of VPN connection for this VpnGateway. - repeated VpnGatewayStatusVpnConnection vpn_connections = 1 - [json_name = "vpnConnections"]; -} - -// Describes the high availability requirement state for the VPN connection -// between this Cloud VPN gateway and a peer gateway. -message VpnGatewayStatusHighAvailabilityRequirementState { - // Indicates the high availability requirement state for the VPN connection. - // Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET. - // CONNECTION_REDUNDANCY_MET: VPN tunnels are configured with adequate - // redundancy from Cloud VPN gateway to the peer VPN gateway. For both - // GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a - // pre-requirement for users to get 99.99% availability on GCP side; please - // note that for any connection, end-to-end 99.99% availability is subject to - // proper configuration on the peer VPN gateway. - // CONNECTION_REDUNDANCY_NOT_MET: VPN tunnels are not configured with adequate - // redundancy from the Cloud VPN gateway to the peer gateway - optional string state = 1 [json_name = "state"]; - - // Indicates the reason why the VPN connection does not meet the high - // availability redundancy criteria/requirement. Valid values is - // INCOMPLETE_TUNNELS_COVERAGE. - // INCOMPLETE_TUNNELS_COVERAGE: - optional string unsatisfied_reason = 2 [json_name = "unsatisfiedReason"]; -} - -// Contains some information about a VPN tunnel. -message VpnGatewayStatusTunnel { - // The VPN gateway interface this VPN tunnel is associated with. - optional uint32 local_gateway_interface = 1 - [json_name = "localGatewayInterface"]; - - // The peer gateway interface this VPN tunnel is connected to, the peer - // gateway could either be an external VPN gateway or a Google Cloud VPN - // gateway. - optional uint32 peer_gateway_interface = 2 - [json_name = "peerGatewayInterface"]; - - // URL reference to the VPN tunnel. - optional string tunnel_url = 3 [json_name = "tunnelUrl"]; -} - -// A VPN connection contains all VPN tunnels connected from this VpnGateway to -// the same peer gateway. The peer gateway could either be an external VPN -// gateway or a Google Cloud VPN gateway. -message VpnGatewayStatusVpnConnection { - // URL reference to the peer external VPN gateways to which the VPN tunnels in - // this VPN connection are connected. This field is mutually exclusive with - // peer_gcp_gateway. - optional string peer_external_gateway = 1 [json_name = "peerExternalGateway"]; - - // URL reference to the peer side VPN gateways to which the VPN tunnels in - // this VPN connection are connected. This field is mutually exclusive with - // peer_gcp_gateway. - optional string peer_gcp_gateway = 2 [json_name = "peerGcpGateway"]; - - // HighAvailabilityRequirementState for the VPN connection. - optional VpnGatewayStatusHighAvailabilityRequirementState state = 3 - [json_name = "state"]; - - // List of VPN tunnels that are in this VPN connection. - repeated VpnGatewayStatusTunnel tunnels = 4 [json_name = "tunnels"]; -} - -// A VPN gateway interface. -message VpnGatewayVpnGatewayInterface { - // [Output Only] Numeric identifier for this VPN interface associated with the - // VPN gateway. - optional uint32 id = 1 [json_name = "id"]; - - // URL of the VLAN attachment (interconnectAttachment) resource for this VPN - // gateway interface. When the value of this field is present, the VPN gateway - // is used for HA VPN over Cloud Interconnect; all egress or ingress traffic - // for this VPN gateway interface goes through the specified VLAN attachment - // resource. - optional string interconnect_attachment = 2 - [json_name = "interconnectAttachment"]; - - // [Output Only] IP address for this VPN interface associated with the VPN - // gateway. The IP address could be either a regional external IP address or a - // regional internal IP address. The two IP addresses for a VPN gateway must - // be all regional external or regional internal IP addresses. There cannot be - // a mix of regional external IP addresses and regional internal IP addresses. - // For HA VPN over Cloud Interconnect, the IP addresses for both interfaces - // could either be regional internal IP addresses or regional external IP - // addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, - // the IP address must be a regional external IP address. - optional string ip_address = 3 [json_name = "ipAddress"]; - - // [Output Only] IPv6 address for this VPN interface associated with the VPN - // gateway. The IPv6 address must be a regional external IPv6 address. The - // format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). - optional string ipv6_address = 4 [json_name = "ipv6Address"]; -} - -message VpnGatewaysGetStatusResponse { - optional VpnGatewayStatus result = 1 [json_name = "result"]; -} - -message VpnGatewaysScopedList { - // [Output Only] A list of VPN gateways contained in this scope. - repeated VpnGateway vpn_gateways = 1 [json_name = "vpnGateways"]; - - message Warning { - // [Output Only] A warning code, if applicable. For example, Compute Engine - // returns NO_RESULTS_ON_PAGE if there are no results in the response. - // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by - // a failed operation. - // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. - // DEPRECATED_TYPE_USED: When deploying and at least one of the resources - // has a type marked as deprecated - // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is - // larger than image size. - // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources - // has a type marked as experimental - // EXTERNAL_API_WARNING: Warning that is present in an external api call - // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. - // Deprecated unused field. - // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected - // kernel, which is deprecated. - // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly - // large number of resources - // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out - // by user-defined list filter. - // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type - // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not - // assigned to an instance on the network. - // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip - // forward. - // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL - // refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an - // instance that does not exist. - // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers - // to an instance that is not on the same network as the route. - // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a - // status of RUNNING. - // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue - // the process despite the mentioned error. - // NO_RESULTS_ON_PAGE: No results are present on a particular list page. - // PARTIAL_SUCCESS: Success is reported, but some results may be missing due - // to errors - // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client - // requests (e.g: regions.list). - // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that - // requires a TOS they have not accepted. - // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in - // use. - // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. - // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance - // group manager is valid as such, but its application does not make a lot - // of sense, because it allows only single instance in instance group. - // UNDECLARED_PROPERTIES: When undeclared properties in the schema are - // present - // UNREACHABLE: A given scope cannot be reached. - optional string code = 1 [json_name = "code"]; - - message DataItem { - // [Output Only] A key that provides more detail on the warning being - // returned. For example, for warnings where there are no results in a - // list request for a particular zone, this key might be scope and the key - // value might be the zone name. Other examples might be a key indicating - // a deprecated resource and a suggested replacement, or a warning about - // invalid network settings (for example, if an instance attempts to - // perform IP forwarding but is not enabled for IP forwarding). - optional string key = 1 [json_name = "key"]; - - // [Output Only] A warning data value corresponding to the key. - optional string value = 2 [json_name = "value"]; - } - - // [Output Only] Metadata about this warning in key: value format. For - // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } - repeated DataItem data = 2 [json_name = "data"]; - - // [Output Only] A human-readable description of the warning code. - optional string message = 3 [json_name = "message"]; - } - - // [Output Only] Informational warning which replaces the list of addresses - // when the list is empty. - optional Warning warning = 2 [json_name = "warning"]; +message UrlMapReference { + optional string url_map = 1 [json_name = "urlMap"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_148.proto b/protos/google/cloud/compute/v1/internal/common_148.proto index cfafba1447ba0..98b86882fb028 100644 --- a/protos/google/cloud/compute/v1/internal/common_148.proto +++ b/protos/google/cloud/compute/v1/internal/common_148.proto @@ -15,15 +15,18 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -// Represents a Cloud VPN Tunnel resource. For more information about VPN, read -// the the Cloud VPN Overview. -message VpnTunnel { +// Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN +// solution that lets you securely connect your on-premises network to your +// Google Cloud Virtual Private Cloud network through an IPsec VPN connection in +// a single region. For more information about Cloud HA VPN solutions, see Cloud +// VPN topologies . +message VpnGateway { // [Output Only] Creation timestamp in RFC3339 text format. optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; @@ -31,40 +34,32 @@ message VpnTunnel { // create the resource. optional string description = 2 [json_name = "description"]; - // [Output Only] Detailed status message for the VPN tunnel. - optional string detailed_status = 3 [json_name = "detailedStatus"]; + // The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not + // specified, IPV4 will be used. + // IPV4: Every HA-VPN gateway interface is configured with an IPv4 address. + // IPV6: Every HA-VPN gateway interface is configured with an IPv6 address. + optional string gateway_ip_version = 13 [json_name = "gatewayIpVersion"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 4 [json_name = "id"]; + optional string id = 3 [json_name = "id"]; - // IKE protocol version to use when establishing the VPN tunnel with the peer - // VPN gateway. Acceptable IKE versions are 1 or 2. The default version is 2. - optional int32 ike_version = 5 [json_name = "ikeVersion"]; + // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. + optional string kind = 4 [json_name = "kind"]; - // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. - optional string kind = 6 [json_name = "kind"]; - - // A fingerprint for the labels being applied to this VpnTunnel, which is + // A fingerprint for the labels being applied to this VpnGateway, which is // essentially a hash of the labels set used for optimistic locking. The // fingerprint is initially generated by Compute Engine and changes after // every request to modify or update labels. You must always provide an // up-to-date fingerprint hash in order to update or change labels, otherwise // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a VpnTunnel. - optional string label_fingerprint = 23 [json_name = "labelFingerprint"]; + // fingerprint, make a get() request to retrieve a VpnGateway. + optional string label_fingerprint = 5 [json_name = "labelFingerprint"]; // Labels for this resource. These can only be added or modified by the // setLabels method. Each label key/value pair must comply with RFC1035. Label // values may be empty. - map labels = 24 [json_name = "labels"]; - - // Local traffic selector to use when establishing the VPN tunnel with the - // peer VPN gateway. The value should be a CIDR formatted string, for example: - // 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported for - // Classic VPN tunnels. This field is output only for HA VPN tunnels. - repeated string local_traffic_selector = 7 - [json_name = "localTrafficSelector"]; + map labels = 6 [json_name = "labels"]; // Name of the resource. Provided by the client when the resource is created. // The name must be 1-63 characters long, and comply with RFC1035. @@ -73,118 +68,40 @@ message VpnTunnel { // must be a lowercase letter, and all following characters must be a dash, // lowercase letter, or digit, except the last character, which cannot be a // dash. - optional string name = 8 [json_name = "name"]; - - // URL of the peer side external VPN gateway to which this VPN tunnel is - // connected. Provided by the client when the VPN tunnel is created. This - // field is exclusive with the field peerGcpGateway. - optional string peer_external_gateway = 9 [json_name = "peerExternalGateway"]; - - // The interface ID of the external VPN gateway to which this VPN tunnel is - // connected. Provided by the client when the VPN tunnel is created. Possible - // values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the - // external VPN gateway redundancy type. - optional int32 peer_external_gateway_interface = 10 - [json_name = "peerExternalGatewayInterface"]; - - // URL of the peer side HA VPN gateway to which this VPN tunnel is connected. - // Provided by the client when the VPN tunnel is created. This field can be - // used when creating highly available VPN from VPC network to VPC network, - // the field is exclusive with the field peerExternalGateway. If provided, the - // VPN tunnel will automatically use the same vpnGatewayInterface ID in the - // peer Google Cloud VPN gateway. - optional string peer_gcp_gateway = 11 [json_name = "peerGcpGateway"]; - - // IP address of the peer VPN gateway. Only IPv4 is supported. This field can - // be set only for Classic VPN tunnels. - optional string peer_ip = 12 [json_name = "peerIp"]; - - // [Output Only] URL of the region where the VPN tunnel resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - optional string region = 13 [json_name = "region"]; - - // Remote traffic selectors to use when establishing the VPN tunnel with the - // peer VPN gateway. The value should be a CIDR formatted string, for example: - // 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported for - // Classic VPN tunnels. This field is output only for HA VPN tunnels. - repeated string remote_traffic_selector = 14 - [json_name = "remoteTrafficSelector"]; - - // URL of the router resource to be used for dynamic routing. - optional string router = 15 [json_name = "router"]; + optional string name = 7 [json_name = "name"]; + + // URL of the network to which this VPN gateway is attached. Provided by the + // client when the VPN gateway is created. + optional string network = 8 [json_name = "network"]; + + // [Output Only] URL of the region where the VPN gateway resides. + optional string region = 9 [json_name = "region"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 16 [json_name = "selfLink"]; - - // Shared secret used to set the secure session between the Cloud VPN gateway - // and the peer VPN gateway. - optional string shared_secret = 17 [json_name = "sharedSecret"]; - - // Hash of the shared secret. - optional string shared_secret_hash = 18 [json_name = "sharedSecretHash"]; - - // [Output Only] The status of the VPN tunnel, which can be one of the - // following: - PROVISIONING: Resource is being allocated for the VPN tunnel. - // - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from - // the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route - // resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful - // first handshake with the peer VPN. - ESTABLISHED: Secure session is - // successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, - // replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for - // example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - - // DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - - // FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - // - NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel - // configuration was rejected, can be result of being denied access. - - // ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all - // required resources. - STOPPED: Tunnel is stopped due to its Forwarding - // Rules being deleted for Classic VPN tunnels or the project is in frozen - // state. - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, - // probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing - // not allowed for an HA-VPN tunnel. - // ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all - // required resources (specifically, a borg task). - // AUTHORIZATION_ERROR: Auth error (e.g. bad shared secret). - // DEPROVISIONING: Resources is being deallocated for the VPN tunnel. - // ESTABLISHED: Secure session is successfully established with peer VPN. - // FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - // FIRST_HANDSHAKE: Successful first handshake with peer VPN. - // NEGOTIATION_FAILURE: Handshake failed. - // NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS - // NO_INCOMING_PACKETS: No incoming packets from peer - // PROVISIONING: Resource is being allocated for the VPN tunnel. - // REJECTED: Tunnel configuration was rejected, can be result of being - // denylisted. - // STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted. - // WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from - // user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route - // resources are needed to setup VPN tunnel. - optional string status = 19 [json_name = "status"]; - - // URL of the Target VPN gateway with which this VPN tunnel is associated. - // Provided by the client when the VPN tunnel is created. This field can be - // set only for Classic VPN tunnels. - optional string target_vpn_gateway = 20 [json_name = "targetVpnGateway"]; - - // URL of the VPN gateway with which this VPN tunnel is associated. Provided - // by the client when the VPN tunnel is created. This must be used (instead of - // target_vpn_gateway) if a High Availability VPN gateway resource is created. - optional string vpn_gateway = 21 [json_name = "vpnGateway"]; - - // The interface ID of the VPN gateway with which this VPN tunnel is - // associated. Possible values are: `0`, `1`. - optional int32 vpn_gateway_interface = 22 [json_name = "vpnGatewayInterface"]; + optional string self_link = 10 [json_name = "selfLink"]; + + // The stack type for this VPN gateway to identify the IP protocols that are + // enabled. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY. If not + // specified, IPV4_ONLY is used if the gateway IP version is IPV4, or + // IPV4_IPV6 if the gateway IP version is IPV6. + // IPV4_IPV6: Enable VPN gateway with both IPv4 and IPv6 protocols. + // IPV4_ONLY: Enable VPN gateway with only IPv4 protocol. + // IPV6_ONLY: Enable VPN gateway with only IPv6 protocol. + optional string stack_type = 11 [json_name = "stackType"]; + + // The list of VPN interfaces associated with this VPN gateway. + repeated VpnGatewayVpnGatewayInterface vpn_interfaces = 12 + [json_name = "vpnInterfaces"]; } -message VpnTunnelAggregatedList { +message VpnGatewayAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of VpnTunnelsScopedList resources. - map items = 2 [json_name = "items"]; + // A list of VpnGateway resources. + map items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. + // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -287,15 +204,15 @@ message VpnTunnelAggregatedList { optional Warning warning = 7 [json_name = "warning"]; } -// Contains a list of VpnTunnel resources. -message VpnTunnelList { +// Contains a list of VpnGateway resources. +message VpnGatewayList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of VpnTunnel resources. - repeated VpnTunnel items = 2 [json_name = "items"]; + // A list of VpnGateway resources. + repeated VpnGateway items = 2 [json_name = "items"]; - // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. + // [Output Only] Type of resource. Always compute#vpnGateway for VPN gateways. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -395,9 +312,110 @@ message VpnTunnelList { optional Warning warning = 6 [json_name = "warning"]; } -message VpnTunnelsScopedList { - // A list of VPN tunnels contained in this scope. - repeated VpnTunnel vpn_tunnels = 1 [json_name = "vpnTunnels"]; +message VpnGatewayStatus { + // List of VPN connection for this VpnGateway. + repeated VpnGatewayStatusVpnConnection vpn_connections = 1 + [json_name = "vpnConnections"]; +} + +// Describes the high availability requirement state for the VPN connection +// between this Cloud VPN gateway and a peer gateway. +message VpnGatewayStatusHighAvailabilityRequirementState { + // Indicates the high availability requirement state for the VPN connection. + // Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET. + // CONNECTION_REDUNDANCY_MET: VPN tunnels are configured with adequate + // redundancy from Cloud VPN gateway to the peer VPN gateway. For both + // GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a + // pre-requirement for users to get 99.99% availability on GCP side; please + // note that for any connection, end-to-end 99.99% availability is subject to + // proper configuration on the peer VPN gateway. + // CONNECTION_REDUNDANCY_NOT_MET: VPN tunnels are not configured with adequate + // redundancy from the Cloud VPN gateway to the peer gateway + optional string state = 1 [json_name = "state"]; + + // Indicates the reason why the VPN connection does not meet the high + // availability redundancy criteria/requirement. Valid values is + // INCOMPLETE_TUNNELS_COVERAGE. + // INCOMPLETE_TUNNELS_COVERAGE: + optional string unsatisfied_reason = 2 [json_name = "unsatisfiedReason"]; +} + +// Contains some information about a VPN tunnel. +message VpnGatewayStatusTunnel { + // The VPN gateway interface this VPN tunnel is associated with. + optional uint32 local_gateway_interface = 1 + [json_name = "localGatewayInterface"]; + + // The peer gateway interface this VPN tunnel is connected to, the peer + // gateway could either be an external VPN gateway or a Google Cloud VPN + // gateway. + optional uint32 peer_gateway_interface = 2 + [json_name = "peerGatewayInterface"]; + + // URL reference to the VPN tunnel. + optional string tunnel_url = 3 [json_name = "tunnelUrl"]; +} + +// A VPN connection contains all VPN tunnels connected from this VpnGateway to +// the same peer gateway. The peer gateway could either be an external VPN +// gateway or a Google Cloud VPN gateway. +message VpnGatewayStatusVpnConnection { + // URL reference to the peer external VPN gateways to which the VPN tunnels in + // this VPN connection are connected. This field is mutually exclusive with + // peer_gcp_gateway. + optional string peer_external_gateway = 1 [json_name = "peerExternalGateway"]; + + // URL reference to the peer side VPN gateways to which the VPN tunnels in + // this VPN connection are connected. This field is mutually exclusive with + // peer_gcp_gateway. + optional string peer_gcp_gateway = 2 [json_name = "peerGcpGateway"]; + + // HighAvailabilityRequirementState for the VPN connection. + optional VpnGatewayStatusHighAvailabilityRequirementState state = 3 + [json_name = "state"]; + + // List of VPN tunnels that are in this VPN connection. + repeated VpnGatewayStatusTunnel tunnels = 4 [json_name = "tunnels"]; +} + +// A VPN gateway interface. +message VpnGatewayVpnGatewayInterface { + // [Output Only] Numeric identifier for this VPN interface associated with the + // VPN gateway. + optional uint32 id = 1 [json_name = "id"]; + + // URL of the VLAN attachment (interconnectAttachment) resource for this VPN + // gateway interface. When the value of this field is present, the VPN gateway + // is used for HA VPN over Cloud Interconnect; all egress or ingress traffic + // for this VPN gateway interface goes through the specified VLAN attachment + // resource. + optional string interconnect_attachment = 2 + [json_name = "interconnectAttachment"]; + + // [Output Only] IP address for this VPN interface associated with the VPN + // gateway. The IP address could be either a regional external IP address or a + // regional internal IP address. The two IP addresses for a VPN gateway must + // be all regional external or regional internal IP addresses. There cannot be + // a mix of regional external IP addresses and regional internal IP addresses. + // For HA VPN over Cloud Interconnect, the IP addresses for both interfaces + // could either be regional internal IP addresses or regional external IP + // addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, + // the IP address must be a regional external IP address. + optional string ip_address = 3 [json_name = "ipAddress"]; + + // [Output Only] IPv6 address for this VPN interface associated with the VPN + // gateway. The IPv6 address must be a regional external IPv6 address. The + // format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + optional string ipv6_address = 4 [json_name = "ipv6Address"]; +} + +message VpnGatewaysGetStatusResponse { + optional VpnGatewayStatus result = 1 [json_name = "result"]; +} + +message VpnGatewaysScopedList { + // [Output Only] A list of VPN gateways contained in this scope. + repeated VpnGateway vpn_gateways = 1 [json_name = "vpnGateways"]; message Warning { // [Output Only] A warning code, if applicable. For example, Compute Engine @@ -482,7 +500,7 @@ message VpnTunnelsScopedList { optional string message = 3 [json_name = "message"]; } - // Informational warning which replaces the list of addresses when the list is - // empty. + // [Output Only] Informational warning which replaces the list of addresses + // when the list is empty. optional Warning warning = 2 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_149.proto b/protos/google/cloud/compute/v1/internal/common_149.proto index 816e0f88b77aa..a0de9325ae4bc 100644 --- a/protos/google/cloud/compute/v1/internal/common_149.proto +++ b/protos/google/cloud/compute/v1/internal/common_149.proto @@ -15,65 +15,287 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_022.proto"; - -// Represents a Zone resource. A zone is a deployment area. These deployment -// areas are subsets of a region. For example the zone us-east1-b is located in -// the us-east1 region. For more information, read Regions and Zones. -message Zone { - // [Output Only] Available cpu/platform selections for the zone. - repeated string available_cpu_platforms = 1 - [json_name = "availableCpuPlatforms"]; - +// Represents a Cloud VPN Tunnel resource. For more information about VPN, read +// the the Cloud VPN Overview. +message VpnTunnel { // [Output Only] Creation timestamp in RFC3339 text format. - optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + optional string creation_timestamp = 1 [json_name = "creationTimestamp"]; - // [Output Only] The deprecation status associated with this zone. - optional DeprecationStatus deprecated = 3 [json_name = "deprecated"]; + // An optional description of this resource. Provide this property when you + // create the resource. + optional string description = 2 [json_name = "description"]; - // [Output Only] Textual description of the resource. - optional string description = 4 [json_name = "description"]; + // [Output Only] Detailed status message for the VPN tunnel. + optional string detailed_status = 3 [json_name = "detailedStatus"]; // [Output Only] The unique identifier for the resource. This identifier is // defined by the server. - optional string id = 5 [json_name = "id"]; + optional string id = 4 [json_name = "id"]; - // [Output Only] Type of the resource. Always compute#zone for zones. + // IKE protocol version to use when establishing the VPN tunnel with the peer + // VPN gateway. Acceptable IKE versions are 1 or 2. The default version is 2. + optional int32 ike_version = 5 [json_name = "ikeVersion"]; + + // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. optional string kind = 6 [json_name = "kind"]; - // [Output Only] Name of the resource. - optional string name = 7 [json_name = "name"]; + // A fingerprint for the labels being applied to this VpnTunnel, which is + // essentially a hash of the labels set used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide an + // up-to-date fingerprint hash in order to update or change labels, otherwise + // the request will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve a VpnTunnel. + optional string label_fingerprint = 23 [json_name = "labelFingerprint"]; + + // Labels for this resource. These can only be added or modified by the + // setLabels method. Each label key/value pair must comply with RFC1035. Label + // values may be empty. + map labels = 24 [json_name = "labels"]; + + // Local traffic selector to use when establishing the VPN tunnel with the + // peer VPN gateway. The value should be a CIDR formatted string, for example: + // 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported for + // Classic VPN tunnels. This field is output only for HA VPN tunnels. + repeated string local_traffic_selector = 7 + [json_name = "localTrafficSelector"]; + + // Name of the resource. Provided by the client when the resource is created. + // The name must be 1-63 characters long, and comply with RFC1035. + // Specifically, the name must be 1-63 characters long and match the regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + // must be a lowercase letter, and all following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be a + // dash. + optional string name = 8 [json_name = "name"]; + + // URL of the peer side external VPN gateway to which this VPN tunnel is + // connected. Provided by the client when the VPN tunnel is created. This + // field is exclusive with the field peerGcpGateway. + optional string peer_external_gateway = 9 [json_name = "peerExternalGateway"]; - // [Output Only] Full URL reference to the region which hosts the zone. - optional string region = 8 [json_name = "region"]; + // The interface ID of the external VPN gateway to which this VPN tunnel is + // connected. Provided by the client when the VPN tunnel is created. Possible + // values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the + // external VPN gateway redundancy type. + optional int32 peer_external_gateway_interface = 10 + [json_name = "peerExternalGatewayInterface"]; + + // URL of the peer side HA VPN gateway to which this VPN tunnel is connected. + // Provided by the client when the VPN tunnel is created. This field can be + // used when creating highly available VPN from VPC network to VPC network, + // the field is exclusive with the field peerExternalGateway. If provided, the + // VPN tunnel will automatically use the same vpnGatewayInterface ID in the + // peer Google Cloud VPN gateway. + optional string peer_gcp_gateway = 11 [json_name = "peerGcpGateway"]; + + // IP address of the peer VPN gateway. Only IPv4 is supported. This field can + // be set only for Classic VPN tunnels. + optional string peer_ip = 12 [json_name = "peerIp"]; + + // [Output Only] URL of the region where the VPN tunnel resides. You must + // specify this field as part of the HTTP request URL. It is not settable as a + // field in the request body. + optional string region = 13 [json_name = "region"]; + + // Remote traffic selectors to use when establishing the VPN tunnel with the + // peer VPN gateway. The value should be a CIDR formatted string, for example: + // 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported for + // Classic VPN tunnels. This field is output only for HA VPN tunnels. + repeated string remote_traffic_selector = 14 + [json_name = "remoteTrafficSelector"]; + + // URL of the router resource to be used for dynamic routing. + optional string router = 15 [json_name = "router"]; // [Output Only] Server-defined URL for the resource. - optional string self_link = 9 [json_name = "selfLink"]; + optional string self_link = 16 [json_name = "selfLink"]; + + // Shared secret used to set the secure session between the Cloud VPN gateway + // and the peer VPN gateway. + optional string shared_secret = 17 [json_name = "sharedSecret"]; - // [Output Only] Status of the zone, either UP or DOWN. - // DOWN: - // UP: - optional string status = 10 [json_name = "status"]; + // Hash of the shared secret. + optional string shared_secret_hash = 18 [json_name = "sharedSecretHash"]; - // [Output Only] Reserved for future use. - optional bool supports_pzs = 11 [json_name = "supportsPzs"]; + // [Output Only] The status of the VPN tunnel, which can be one of the + // following: - PROVISIONING: Resource is being allocated for the VPN tunnel. + // - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from + // the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route + // resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful + // first handshake with the peer VPN. - ESTABLISHED: Secure session is + // successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, + // replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for + // example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - + // DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - + // FAILED: Tunnel creation has failed and the tunnel is not ready to be used. + // - NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel + // configuration was rejected, can be result of being denied access. - + // ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all + // required resources. - STOPPED: Tunnel is stopped due to its Forwarding + // Rules being deleted for Classic VPN tunnels or the project is in frozen + // state. - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, + // probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing + // not allowed for an HA-VPN tunnel. + // ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all + // required resources (specifically, a borg task). + // AUTHORIZATION_ERROR: Auth error (e.g. bad shared secret). + // DEPROVISIONING: Resources is being deallocated for the VPN tunnel. + // ESTABLISHED: Secure session is successfully established with peer VPN. + // FAILED: Tunnel creation has failed and the tunnel is not ready to be used. + // FIRST_HANDSHAKE: Successful first handshake with peer VPN. + // NEGOTIATION_FAILURE: Handshake failed. + // NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS + // NO_INCOMING_PACKETS: No incoming packets from peer + // PROVISIONING: Resource is being allocated for the VPN tunnel. + // REJECTED: Tunnel configuration was rejected, can be result of being + // denylisted. + // STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted. + // WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from + // user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route + // resources are needed to setup VPN tunnel. + optional string status = 19 [json_name = "status"]; + + // URL of the Target VPN gateway with which this VPN tunnel is associated. + // Provided by the client when the VPN tunnel is created. This field can be + // set only for Classic VPN tunnels. + optional string target_vpn_gateway = 20 [json_name = "targetVpnGateway"]; + + // URL of the VPN gateway with which this VPN tunnel is associated. Provided + // by the client when the VPN tunnel is created. This must be used (instead of + // target_vpn_gateway) if a High Availability VPN gateway resource is created. + optional string vpn_gateway = 21 [json_name = "vpnGateway"]; + + // The interface ID of the VPN gateway with which this VPN tunnel is + // associated. Possible values are: `0`, `1`. + optional int32 vpn_gateway_interface = 22 [json_name = "vpnGatewayInterface"]; } -// Contains a list of zone resources. -message ZoneList { +message VpnTunnelAggregatedList { // [Output Only] Unique identifier for the resource; defined by the server. optional string id = 1 [json_name = "id"]; - // A list of Zone resources. - repeated Zone items = 2 [json_name = "items"]; + // A list of VpnTunnelsScopedList resources. + map items = 2 [json_name = "items"]; - // Type of resource. + // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + // [Output Only] Unreachable resources. + repeated string unreachables = 6 [json_name = "unreachables"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 7 [json_name = "warning"]; +} + +// Contains a list of VpnTunnel resources. +message VpnTunnelList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of VpnTunnel resources. + repeated VpnTunnel items = 2 [json_name = "items"]; + + // [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels. optional string kind = 3 [json_name = "kind"]; // [Output Only] This token allows you to get the next page of results for @@ -172,3 +394,95 @@ message ZoneList { // [Output Only] Informational warning message. optional Warning warning = 6 [json_name = "warning"]; } + +message VpnTunnelsScopedList { + // A list of VPN tunnels contained in this scope. + repeated VpnTunnel vpn_tunnels = 1 [json_name = "vpnTunnels"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // Informational warning which replaces the list of addresses when the list is + // empty. + optional Warning warning = 2 [json_name = "warning"]; +} diff --git a/protos/google/cloud/compute/v1/internal/common_150.proto b/protos/google/cloud/compute/v1/internal/common_150.proto index 9c9b454bca2b6..0839cda71bd3b 100644 --- a/protos/google/cloud/compute/v1/internal/common_150.proto +++ b/protos/google/cloud/compute/v1/internal/common_150.proto @@ -15,20 +15,160 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -message ZoneSetLabelsRequest { - // The fingerprint of the previous set of labels for this resource, used to - // detect conflicts. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels. - // Make a get() request to the resource to get the latest fingerprint. - optional string label_fingerprint = 1 [json_name = "labelFingerprint"]; +import "google/cloud/compute/v1/internal/common_023.proto"; - // The labels to set for this resource. - map labels = 2 [json_name = "labels"]; +// Represents a Zone resource. A zone is a deployment area. These deployment +// areas are subsets of a region. For example the zone us-east1-b is located in +// the us-east1 region. For more information, read Regions and Zones. +message Zone { + // [Output Only] Available cpu/platform selections for the zone. + repeated string available_cpu_platforms = 1 + [json_name = "availableCpuPlatforms"]; + + // [Output Only] Creation timestamp in RFC3339 text format. + optional string creation_timestamp = 2 [json_name = "creationTimestamp"]; + + // [Output Only] The deprecation status associated with this zone. + optional DeprecationStatus deprecated = 3 [json_name = "deprecated"]; + + // [Output Only] Textual description of the resource. + optional string description = 4 [json_name = "description"]; + + // [Output Only] The unique identifier for the resource. This identifier is + // defined by the server. + optional string id = 5 [json_name = "id"]; + + // [Output Only] Type of the resource. Always compute#zone for zones. + optional string kind = 6 [json_name = "kind"]; + + // [Output Only] Name of the resource. + optional string name = 7 [json_name = "name"]; + + // [Output Only] Full URL reference to the region which hosts the zone. + optional string region = 8 [json_name = "region"]; + + // [Output Only] Server-defined URL for the resource. + optional string self_link = 9 [json_name = "selfLink"]; + + // [Output Only] Status of the zone, either UP or DOWN. + // DOWN: + // UP: + optional string status = 10 [json_name = "status"]; + + // [Output Only] Reserved for future use. + optional bool supports_pzs = 11 [json_name = "supportsPzs"]; +} + +// Contains a list of zone resources. +message ZoneList { + // [Output Only] Unique identifier for the resource; defined by the server. + optional string id = 1 [json_name = "id"]; + + // A list of Zone resources. + repeated Zone items = 2 [json_name = "items"]; + + // Type of resource. + optional string kind = 3 [json_name = "kind"]; + + // [Output Only] This token allows you to get the next page of results for + // list requests. If the number of results is larger than maxResults, use the + // nextPageToken as a value for the query parameter pageToken in the next list + // request. Subsequent list requests will have their own nextPageToken to + // continue paging through the results. + optional string next_page_token = 4 [json_name = "nextPageToken"]; + + // [Output Only] Server-defined URL for this resource. + optional string self_link = 5 [json_name = "selfLink"]; + + message Warning { + // [Output Only] A warning code, if applicable. For example, Compute Engine + // returns NO_RESULTS_ON_PAGE if there are no results in the response. + // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by + // a failed operation. + // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created. + // DEPRECATED_TYPE_USED: When deploying and at least one of the resources + // has a type marked as deprecated + // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is + // larger than image size. + // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources + // has a type marked as experimental + // EXTERNAL_API_WARNING: Warning that is present in an external api call + // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden. + // Deprecated unused field. + // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected + // kernel, which is deprecated. + // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend + // service is associated with a health check that is not of type + // HTTP/HTTPS/HTTP2. + // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly + // large number of resources + // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list + // overhead quota exceed which captures the amount of resources filtered out + // by user-defined list filter. + // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type + // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not + // assigned to an instance on the network. + // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip + // forward. + // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL + // refers to an instance that does not have an ipv6 interface on the same + // network as the route. + // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an + // instance that does not exist. + // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers + // to an instance that is not on the same network as the route. + // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a + // status of RUNNING. + // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue + // the process despite the mentioned error. + // NO_RESULTS_ON_PAGE: No results are present on a particular list page. + // PARTIAL_SUCCESS: Success is reported, but some results may be missing due + // to errors + // QUOTA_INFO_UNAVAILABLE: Quota information is not available to client + // requests (e.g: regions.list). + // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that + // requires a TOS they have not accepted. + // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in + // use. + // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete + // could not be deleted because they were in use. + // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored. + // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance + // group manager is valid as such, but its application does not make a lot + // of sense, because it allows only single instance in instance group. + // UNDECLARED_PROPERTIES: When undeclared properties in the schema are + // present + // UNREACHABLE: A given scope cannot be reached. + optional string code = 1 [json_name = "code"]; + + message DataItem { + // [Output Only] A key that provides more detail on the warning being + // returned. For example, for warnings where there are no results in a + // list request for a particular zone, this key might be scope and the key + // value might be the zone name. Other examples might be a key indicating + // a deprecated resource and a suggested replacement, or a warning about + // invalid network settings (for example, if an instance attempts to + // perform IP forwarding but is not enabled for IP forwarding). + optional string key = 1 [json_name = "key"]; + + // [Output Only] A warning data value corresponding to the key. + optional string value = 2 [json_name = "value"]; + } + + // [Output Only] Metadata about this warning in key: value format. For + // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } + repeated DataItem data = 2 [json_name = "data"]; + + // [Output Only] A human-readable description of the warning code. + optional string message = 3 [json_name = "message"]; + } + + // [Output Only] Informational warning message. + optional Warning warning = 6 [json_name = "warning"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_151.proto b/protos/google/cloud/compute/v1/internal/common_151.proto index e4470c7cac464..858e1f568bb43 100644 --- a/protos/google/cloud/compute/v1/internal/common_151.proto +++ b/protos/google/cloud/compute/v1/internal/common_151.proto @@ -15,25 +15,20 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; package google.cloud.cpp.compute.v1; -import "google/cloud/compute/v1/internal/common_007.proto"; +message ZoneSetLabelsRequest { + // The fingerprint of the previous set of labels for this resource, used to + // detect conflicts. The fingerprint is initially generated by Compute Engine + // and changes after every request to modify or update labels. You must always + // provide an up-to-date fingerprint hash in order to update or change labels. + // Make a get() request to the resource to get the latest fingerprint. + optional string label_fingerprint = 1 [json_name = "labelFingerprint"]; -message ZoneSetPolicyRequest { - // Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use - // 'policy' to specify bindings. - repeated Binding bindings = 1 [json_name = "bindings"]; - - // Flatten Policy to create a backward compatible wire-format. Deprecated. Use - // 'policy' to specify the etag. - optional string etag = 2 [json_name = "etag"]; - - // REQUIRED: The complete policy to be applied to the 'resource'. The size of - // the policy is limited to a few 10s of KB. An empty policy is in general a - // valid policy but certain services (like Projects) might reject them. - optional Policy policy = 3 [json_name = "policy"]; + // The labels to set for this resource. + map labels = 2 [json_name = "labels"]; } diff --git a/protos/google/cloud/compute/v1/internal/common_152.proto b/protos/google/cloud/compute/v1/internal/common_152.proto new file mode 100644 index 0000000000000..61a0049298125 --- /dev/null +++ b/protos/google/cloud/compute/v1/internal/common_152.proto @@ -0,0 +1,39 @@ +// 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 +// +// https://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. + +// Generated by the C++ microgenerator. +// If you make any local changes, they will be lost. +// file:///workspace/generator/discovery/compute_public_google_rest_v1.json +// revision: 20250601 + +syntax = "proto3"; + +package google.cloud.cpp.compute.v1; + +import "google/cloud/compute/v1/internal/common_007.proto"; + +message ZoneSetPolicyRequest { + // Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use + // 'policy' to specify bindings. + repeated Binding bindings = 1 [json_name = "bindings"]; + + // Flatten Policy to create a backward compatible wire-format. Deprecated. Use + // 'policy' to specify the etag. + optional string etag = 2 [json_name = "etag"]; + + // REQUIRED: The complete policy to be applied to the 'resource'. The size of + // the policy is limited to a few 10s of KB. An empty policy is in general a + // valid policy but certain services (like Projects) might reject them. + optional Policy policy = 3 [json_name = "policy"]; +} diff --git a/protos/google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto b/protos/google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto index 57b59981115c7..06c14ad44d240 100644 --- a/protos/google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto +++ b/protos/google/cloud/compute/vpn_gateways/v1/vpn_gateways.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,8 +26,8 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; -import "google/cloud/compute/v1/internal/common_144.proto"; -import "google/cloud/compute/v1/internal/common_147.proto"; +import "google/cloud/compute/v1/internal/common_145.proto"; +import "google/cloud/compute/v1/internal/common_148.proto"; import "google/cloud/extended_operations.proto"; // Service for the vpnGateways resource. diff --git a/protos/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto b/protos/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto index 3771382682cd7..ddcb628f185cd 100644 --- a/protos/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto +++ b/protos/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -26,7 +26,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/cloud/compute/v1/internal/common_016.proto"; import "google/cloud/compute/v1/internal/common_107.proto"; -import "google/cloud/compute/v1/internal/common_148.proto"; +import "google/cloud/compute/v1/internal/common_149.proto"; import "google/cloud/extended_operations.proto"; // Service for the vpnTunnels resource. diff --git a/protos/google/cloud/compute/zone_operations/v1/zone_operations.proto b/protos/google/cloud/compute/zone_operations/v1/zone_operations.proto index eab4cf5f719dc..56ec4eef45567 100644 --- a/protos/google/cloud/compute/zone_operations/v1/zone_operations.proto +++ b/protos/google/cloud/compute/zone_operations/v1/zone_operations.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; diff --git a/protos/google/cloud/compute/zones/v1/zones.proto b/protos/google/cloud/compute/zones/v1/zones.proto index 8b4c3e0bb73e0..1140672ffc0d7 100644 --- a/protos/google/cloud/compute/zones/v1/zones.proto +++ b/protos/google/cloud/compute/zones/v1/zones.proto @@ -15,7 +15,7 @@ // Generated by the C++ microgenerator. // If you make any local changes, they will be lost. // file:///workspace/generator/discovery/compute_public_google_rest_v1.json -// revision: 20250511 +// revision: 20250601 syntax = "proto3"; @@ -24,7 +24,7 @@ package google.cloud.cpp.compute.zones.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -import "google/cloud/compute/v1/internal/common_149.proto"; +import "google/cloud/compute/v1/internal/common_150.proto"; // Service for the zones resource. // https://cloud.google.com/compute/docs/reference/rest/v1/zones