diff --git a/BigQueryReservation/metadata/V1/Reservation.php b/BigQueryReservation/metadata/V1/Reservation.php
index c1fa1a5308ad..78a4ccf73d54 100644
--- a/BigQueryReservation/metadata/V1/Reservation.php
+++ b/BigQueryReservation/metadata/V1/Reservation.php
@@ -26,7 +26,7 @@ public static function initOnce() {
\GPBMetadata\Google\Rpc\Status::initOnce();
\GPBMetadata\Google\Type\Expr::initOnce();
$pool->internalAddGeneratedFile(
- "\x0A\xBA\x84\x01\x0A6google/cloud/bigquery/reservation/v1/reservation.proto\x12\$google.cloud.bigquery.reservation.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A\x1Egoogle/iam/v1/iam_policy.proto\x1A\x1Agoogle/iam/v1/policy.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x17google/rpc/status.proto\x1A\x16google/type/expr.proto\"\xFC\x0C\x0A\x0BReservation\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1A\x0A\x0Dslot_capacity\x18\x02 \x01(\x03B\x03\xE0A\x01\x12\x1E\x0A\x11ignore_idle_slots\x18\x04 \x01(\x08B\x03\xE0A\x01\x12S\x0A\x09autoscale\x18\x07 \x01(\x0B2;.google.cloud.bigquery.reservation.v1.Reservation.AutoscaleB\x03\xE0A\x01\x12\x18\x0A\x0Bconcurrency\x18\x10 \x01(\x03B\x03\xE0A\x01\x126\x0A\x0Dcreation_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x09 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\"\x0A\x16multi_region_auxiliary\x18\x0E \x01(\x08B\x02\x18\x01\x12C\x0A\x07edition\x18\x11 \x01(\x0E2-.google.cloud.bigquery.reservation.v1.EditionB\x03\xE0A\x01\x12C\x0A\x10primary_location\x18\x12 \x01(\x09B)\xE0A\x03\xFAA#\x0A!locations.googleapis.com/Location\x12E\x0A\x12secondary_location\x18\x13 \x01(\x09B)\xE0A\x01\xFAA#\x0A!locations.googleapis.com/Location\x12L\x0A\x19original_primary_location\x18\x14 \x01(\x09B)\xE0A\x03\xFAA#\x0A!locations.googleapis.com/Location\x12\x1B\x0A\x09max_slots\x18\x15 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12X\x0A\x0Cscaling_mode\x18\x16 \x01(\x0E2=.google.cloud.bigquery.reservation.v1.Reservation.ScalingModeB\x03\xE0A\x01\x12R\x0A\x06labels\x18\x17 \x03(\x0B2=.google.cloud.bigquery.reservation.v1.Reservation.LabelsEntryB\x03\xE0A\x01\x12\x1E\x0A\x11reservation_group\x18\x19 \x01(\x09B\x03\xE0A\x01\x12d\x0A\x12replication_status\x18\x18 \x01(\x0B2C.google.cloud.bigquery.reservation.v1.Reservation.ReplicationStatusB\x03\xE0A\x03\x12V\x0A\x11scheduling_policy\x18\x1B \x01(\x0B26.google.cloud.bigquery.reservation.v1.SchedulingPolicyB\x03\xE0A\x01\x1A?\x0A\x09Autoscale\x12\x1A\x0A\x0Dcurrent_slots\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x16\x0A\x09max_slots\x18\x02 \x01(\x03B\x03\xE0A\x01\x1A\xF8\x01\x0A\x11ReplicationStatus\x12&\x0A\x05error\x18\x01 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03\x128\x0A\x0Flast_error_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12>\x0A\x15last_replication_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12A\x0A\x18soft_failover_start_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"c\x0A\x0BScalingMode\x12\x1C\x0A\x18SCALING_MODE_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EAUTOSCALE_ONLY\x10\x01\x12\x13\x0A\x0FIDLE_SLOTS_ONLY\x10\x02\x12\x0D\x0A\x09ALL_SLOTS\x10\x03:w\xEAAt\x0A.bigqueryreservation.googleapis.com/Reservation\x12Bprojects/{project}/locations/{location}/reservations/{reservation}B\x0C\x0A\x0A_max_slots\"l\x0A\x10SchedulingPolicy\x12\x1D\x0A\x0Bconcurrency\x18\x01 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12\x1B\x0A\x09max_slots\x18\x02 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01B\x0E\x0A\x0C_concurrencyB\x0C\x0A\x0A_max_slots\"\xD5\x01\x0A\x10ReservationGroup\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08:\xAD\x01\xEAA\xA9\x01\x0A3bigqueryreservation.googleapis.com/ReservationGroup\x12Mprojects/{project}/locations/{location}/reservationGroups/{reservation_group}*\x11reservationGroups2\x10reservationGroup\"\xAA\x08\x0A\x12CapacityCommitment\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Aslot_count\x18\x02 \x01(\x03B\x03\xE0A\x01\x12Z\x0A\x04plan\x18\x03 \x01(\x0E2G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlanB\x03\xE0A\x01\x12R\x0A\x05state\x18\x04 \x01(\x0E2>.google.cloud.bigquery.reservation.v1.CapacityCommitment.StateB\x03\xE0A\x03\x12>\x0A\x15commitment_start_time\x18\x09 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12<\x0A\x13commitment_end_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12/\x0A\x0Efailure_status\x18\x07 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03\x12b\x0A\x0Crenewal_plan\x18\x08 \x01(\x0E2G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlanB\x03\xE0A\x01\x12\"\x0A\x16multi_region_auxiliary\x18\x0A \x01(\x08B\x02\x18\x01\x12C\x0A\x07edition\x18\x0C \x01(\x0E2-.google.cloud.bigquery.reservation.v1.EditionB\x03\xE0A\x01\x12\x19\x0A\x0Cis_flat_rate\x18\x0E \x01(\x08B\x03\xE0A\x03\"\xCA\x01\x0A\x0ECommitmentPlan\x12\x1F\x0A\x1BCOMMITMENT_PLAN_UNSPECIFIED\x10\x00\x12\x08\x0A\x04FLEX\x10\x03\x12\x16\x0A\x0EFLEX_FLAT_RATE\x10\x07\x1A\x02\x08\x01\x12\x0D\x0A\x05TRIAL\x10\x05\x1A\x02\x08\x01\x12\x0B\x0A\x07MONTHLY\x10\x02\x12\x19\x0A\x11MONTHLY_FLAT_RATE\x10\x08\x1A\x02\x08\x01\x12\x0A\x0A\x06ANNUAL\x10\x04\x12\x18\x0A\x10ANNUAL_FLAT_RATE\x10\x09\x1A\x02\x08\x01\x12\x0E\x0A\x0ATHREE_YEAR\x10\x0A\x12\x08\x0A\x04NONE\x10\x06\"C\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03:\x8E\x01\xEAA\x8A\x01\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12Qprojects/{project}/locations/{location}/capacityCommitments/{capacity_commitment}\"\xC2\x01\x0A\x18CreateReservationRequest\x12F\x0A\x06parent\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x12.bigqueryreservation.googleapis.com/Reservation\x12\x16\x0A\x0Ereservation_id\x18\x02 \x01(\x09\x12F\x0A\x0Breservation\x18\x03 \x01(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\"\x88\x01\x0A\x17ListReservationsRequest\x12F\x0A\x06parent\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x12.bigqueryreservation.googleapis.com/Reservation\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"|\x0A\x18ListReservationsResponse\x12G\x0A\x0Creservations\x18\x01 \x03(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"]\x0A\x15GetReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\"`\x0A\x18DeleteReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\"\x93\x01\x0A\x18UpdateReservationRequest\x12F\x0A\x0Breservation\x18\x01 \x01(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"\xB2\x01\x0A\x1AFailoverReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\x12N\x0A\x0Dfailover_mode\x18\x02 \x01(\x0E22.google.cloud.bigquery.reservation.v1.FailoverModeB\x03\xE0A\x01\"\xE7\x01\x0A\x1DCreateReservationGroupRequest\x12K\x0A\x06parent\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x123bigqueryreservation.googleapis.com/ReservationGroup\x12!\x0A\x14reservation_group_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12V\x0A\x11reservation_group\x18\x03 \x01(\x0B26.google.cloud.bigquery.reservation.v1.ReservationGroupB\x03\xE0A\x02\"g\x0A\x1AGetReservationGroupRequest\x12I\x0A\x04name\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x0A3bigqueryreservation.googleapis.com/ReservationGroup\"\x92\x01\x0A\x1CListReservationGroupsRequest\x12K\x0A\x06parent\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x123bigqueryreservation.googleapis.com/ReservationGroup\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"\x8C\x01\x0A\x1DListReservationGroupsResponse\x12R\x0A\x12reservation_groups\x18\x01 \x03(\x0B26.google.cloud.bigquery.reservation.v1.ReservationGroup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"j\x0A\x1DDeleteReservationGroupRequest\x12I\x0A\x04name\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x0A3bigqueryreservation.googleapis.com/ReservationGroup\"\x95\x02\x0A\x1FCreateCapacityCommitmentRequest\x12M\x0A\x06parent\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12U\x0A\x13capacity_commitment\x18\x02 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12,\x0A\$enforce_single_admin_project_per_org\x18\x04 \x01(\x08\x12\x1E\x0A\x16capacity_commitment_id\x18\x05 \x01(\x09\"\x96\x01\x0A\x1EListCapacityCommitmentsRequest\x12M\x0A\x06parent\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"\x92\x01\x0A\x1FListCapacityCommitmentsResponse\x12V\x0A\x14capacity_commitments\x18\x01 \x03(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"k\x0A\x1CGetCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\"}\x0A\x1FDeleteCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x0D\x0A\x05force\x18\x03 \x01(\x08\"\xA9\x01\x0A\x1FUpdateCapacityCommitmentRequest\x12U\x0A\x13capacity_commitment\x18\x01 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"\x81\x01\x0A\x1ESplitCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x12\x0A\x0Aslot_count\x18\x02 \x01(\x03\"\xB4\x01\x0A\x1FSplitCapacityCommitmentResponse\x12G\x0A\x05first\x18\x01 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12H\x0A\x06second\x18\x02 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\"\xB3\x01\x0A\x1FMergeCapacityCommitmentsRequest\x12J\x0A\x06parent\x18\x01 \x01(\x09B:\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12\x1F\x0A\x17capacity_commitment_ids\x18\x02 \x03(\x09\x12#\x0A\x16capacity_commitment_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xF5\x06\x0A\x0AAssignment\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08assignee\x18\x04 \x01(\x09B\x03\xE0A\x01\x12O\x0A\x08job_type\x18\x03 \x01(\x0E28.google.cloud.bigquery.reservation.v1.Assignment.JobTypeB\x03\xE0A\x01\x12J\x0A\x05state\x18\x06 \x01(\x0E26.google.cloud.bigquery.reservation.v1.Assignment.StateB\x03\xE0A\x03\x12(\x0A\x19enable_gemini_in_bigquery\x18\x0A \x01(\x08B\x05\x18\x01\xE0A\x01\x12V\x0A\x11scheduling_policy\x18\x0B \x01(\x0B26.google.cloud.bigquery.reservation.v1.SchedulingPolicyB\x03\xE0A\x01\x12\x16\x0A\x09principal\x18\x0C \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Aprecedence\x18\x0D \x01(\x03B\x03\xE0A\x01\x12)\x0A\x09condition\x18\x0E \x01(\x0B2\x11.google.type.ExprB\x03\xE0A\x01\"\xDC\x01\x0A\x07JobType\x12\x18\x0A\x14JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08PIPELINE\x10\x01\x12\x09\x0A\x05QUERY\x10\x02\x12\x0F\x0A\x0BML_EXTERNAL\x10\x03\x12\x0E\x0A\x0ABACKGROUND\x10\x04\x12\x0E\x0A\x0ACONTINUOUS\x10\x06\x12\"\x0A\x1EBACKGROUND_CHANGE_DATA_CAPTURE\x10\x07\x12\$\x0A BACKGROUND_COLUMN_METADATA_INDEX\x10\x08\x12#\x0A\x1FBACKGROUND_SEARCH_INDEX_REFRESH\x10\x09\"7\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02:\xA9\x01\xEAA\xA5\x01\x0A-bigqueryreservation.googleapis.com/Assignment\x12[projects/{project}/locations/{location}/reservations/{reservation}/assignments/{assignment}*\x0Bassignments2\x0Aassignment\"\xBD\x01\x0A\x17CreateAssignmentRequest\x12E\x0A\x06parent\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12D\x0A\x0Aassignment\x18\x02 \x01(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x15\x0A\x0Dassignment_id\x18\x04 \x01(\x09\"\x86\x01\x0A\x16ListAssignmentsRequest\x12E\x0A\x06parent\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"y\x0A\x17ListAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"^\x0A\x17DeleteAssignmentRequest\x12C\x0A\x04name\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-bigqueryreservation.googleapis.com/Assignment\"\x8B\x01\x0A\x18SearchAssignmentsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x0D\x0A\x05query\x18\x02 \x01(\x09\x12\x11\x0A\x09page_size\x18\x03 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x04 \x01(\x09\"\x8E\x01\x0A\x1BSearchAllAssignmentsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x0D\x0A\x05query\x18\x02 \x01(\x09\x12\x11\x0A\x09page_size\x18\x03 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x04 \x01(\x09\"{\x0A\x19SearchAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"~\x0A\x1CSearchAllAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xBF\x01\x0A\x15MoveAssignmentRequest\x12C\x0A\x04name\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-bigqueryreservation.googleapis.com/Assignment\x12J\x0A\x0Edestination_id\x18\x03 \x01(\x09B2\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x15\x0A\x0Dassignment_id\x18\x05 \x01(\x09\"\x90\x01\x0A\x17UpdateAssignmentRequest\x12D\x0A\x0Aassignment\x18\x01 \x01(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"Y\x0A\x0ETableReference\x12\x17\x0A\x0Aproject_id\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Adataset_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08table_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xAE\x02\x0A\x0DBiReservation\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04size\x18\x04 \x01(\x03B\x03\xE0A\x01\x12S\x0A\x10preferred_tables\x18\x05 \x03(\x0B24.google.cloud.bigquery.reservation.v1.TableReferenceB\x03\xE0A\x01:l\xEAAi\x0A0bigqueryreservation.googleapis.com/BiReservation\x125projects/{project}/locations/{location}/biReservation\"a\x0A\x17GetBiReservationRequest\x12F\x0A\x04name\x18\x01 \x01(\x09B8\xE0A\x02\xFAA2\x0A0bigqueryreservation.googleapis.com/BiReservation\"\x9A\x01\x0A\x1AUpdateBiReservationRequest\x12K\x0A\x0Ebi_reservation\x18\x01 \x01(\x0B23.google.cloud.bigquery.reservation.v1.BiReservation\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask*U\x0A\x07Edition\x12\x17\x0A\x13EDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08STANDARD\x10\x01\x12\x0E\x0A\x0AENTERPRISE\x10\x02\x12\x13\x0A\x0FENTERPRISE_PLUS\x10\x03*A\x0A\x0CFailoverMode\x12\x1D\x0A\x19FAILOVER_MODE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04SOFT\x10\x01\x12\x08\x0A\x04HARD\x10\x022\xA36\x0A\x12ReservationService\x12\xF1\x01\x0A\x11CreateReservation\x12>.google.cloud.bigquery.reservation.v1.CreateReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"i\xDAA!parent,reservation,reservation_id\x82\xD3\xE4\x93\x02?\"0/v1/{parent=projects/*/locations/*}/reservations:\x0Breservation\x12\xD4\x01\x0A\x10ListReservations\x12=.google.cloud.bigquery.reservation.v1.ListReservationsRequest\x1A>.google.cloud.bigquery.reservation.v1.ListReservationsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/reservations\x12\xC1\x01\x0A\x0EGetReservation\x12;.google.cloud.bigquery.reservation.v1.GetReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/reservations/*}\x12\xAC\x01\x0A\x11DeleteReservation\x12>.google.cloud.bigquery.reservation.v1.DeleteReservationRequest\x1A\x16.google.protobuf.Empty\"?\xDAA\x04name\x82\xD3\xE4\x93\x022*0/v1/{name=projects/*/locations/*/reservations/*}\x12\xF3\x01\x0A\x11UpdateReservation\x12>.google.cloud.bigquery.reservation.v1.UpdateReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"k\xDAA\x17reservation,update_mask\x82\xD3\xE4\x93\x02K2/v1/{parent=projects/*/locations/*/reservations/*}/assignments:\x0Aassignment\x12\xDF\x01\x0A\x0FListAssignments\x12<.google.cloud.bigquery.reservation.v1.ListAssignmentsRequest\x1A=.google.cloud.bigquery.reservation.v1.ListAssignmentsResponse\"O\xDAA\x06parent\x82\xD3\xE4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/reservations/*}/assignments\x12\xB8\x01\x0A\x10DeleteAssignment\x12=.google.cloud.bigquery.reservation.v1.DeleteAssignmentRequest\x1A\x16.google.protobuf.Empty\"M\xDAA\x04name\x82\xD3\xE4\x93\x02@*>/v1/{name=projects/*/locations/*/reservations/*/assignments/*}\x12\xE5\x01\x0A\x11SearchAssignments\x12>.google.cloud.bigquery.reservation.v1.SearchAssignmentsRequest\x1A?.google.cloud.bigquery.reservation.v1.SearchAssignmentsResponse\"O\x88\x02\x01\xDAA\x0Cparent,query\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}:searchAssignments\x12\xEE\x01\x0A\x14SearchAllAssignments\x12A.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsRequest\x1AB.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsResponse\"O\xDAA\x0Cparent,query\x82\xD3\xE4\x93\x02:\x128/v1/{parent=projects/*/locations/*}:searchAllAssignments\x12\xE5\x01\x0A\x0EMoveAssignment\x12;.google.cloud.bigquery.reservation.v1.MoveAssignmentRequest\x1A0.google.cloud.bigquery.reservation.v1.Assignment\"d\xDAA\x13name,destination_id\x82\xD3\xE4\x93\x02H\"C/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move:\x01*\x12\xFB\x01\x0A\x10UpdateAssignment\x12=.google.cloud.bigquery.reservation.v1.UpdateAssignmentRequest\x1A0.google.cloud.bigquery.reservation.v1.Assignment\"v\xDAA\x16assignment,update_mask\x82\xD3\xE4\x93\x02W2I/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}:\x0Aassignment\x12\xC6\x01\x0A\x10GetBiReservation\x12=.google.cloud.bigquery.reservation.v1.GetBiReservationRequest\x1A3.google.cloud.bigquery.reservation.v1.BiReservation\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/biReservation}\x12\x81\x02\x0A\x13UpdateBiReservation\x12@.google.cloud.bigquery.reservation.v1.UpdateBiReservationRequest\x1A3.google.cloud.bigquery.reservation.v1.BiReservation\"s\xDAA\x1Abi_reservation,update_mask\x82\xD3\xE4\x93\x02P2>/v1/{bi_reservation.name=projects/*/locations/*/biReservation}:\x0Ebi_reservation\x12\xF4\x01\x0A\x0CGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"\xA8\x01\xDAA\x08resource\x82\xD3\xE4\x93\x02\x96\x01\x12A/v1/{resource=projects/*/locations/*/reservations/*}:getIamPolicyZQ\x12O/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:getIamPolicy\x12\x81\x02\x0A\x0CSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"\xB5\x01\xDAA\x0Fresource,policy\x82\xD3\xE4\x93\x02\x9C\x01\"A/v1/{resource=projects/*/locations/*/reservations/*}:setIamPolicy:\x01*ZT\"O/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:setIamPolicy:\x01*\x12\x9B\x02\x0A\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1A).google.iam.v1.TestIamPermissionsResponse\"\xAF\x01\x82\xD3\xE4\x93\x02\xA8\x01\"G/v1/{resource=projects/*/locations/*/reservations/*}:testIamPermissions:\x01*ZZ\"U/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:testIamPermissions:\x01*\x12\xE7\x01\x0A\x16CreateReservationGroup\x12C.google.cloud.bigquery.reservation.v1.CreateReservationGroupRequest\x1A6.google.cloud.bigquery.reservation.v1.ReservationGroup\"P\x82\xD3\xE4\x93\x02J\"5/v1/{parent=projects/*/locations/*}/reservationGroups:\x11reservation_group\x12\xD5\x01\x0A\x13GetReservationGroup\x12@.google.cloud.bigquery.reservation.v1.GetReservationGroupRequest\x1A6.google.cloud.bigquery.reservation.v1.ReservationGroup\"D\xDAA\x04name\x82\xD3\xE4\x93\x027\x125/v1/{name=projects/*/locations/*/reservationGroups/*}\x12\xBB\x01\x0A\x16DeleteReservationGroup\x12C.google.cloud.bigquery.reservation.v1.DeleteReservationGroupRequest\x1A\x16.google.protobuf.Empty\"D\xDAA\x04name\x82\xD3\xE4\x93\x027*5/v1/{name=projects/*/locations/*/reservationGroups/*}\x12\xE8\x01\x0A\x15ListReservationGroups\x12B.google.cloud.bigquery.reservation.v1.ListReservationGroupsRequest\x1AC.google.cloud.bigquery.reservation.v1.ListReservationGroupsResponse\"F\xDAA\x06parent\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}/reservationGroups\x1A\x7F\xCAA\"bigqueryreservation.googleapis.com\xD2AWhttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xD8\x01\x0A(com.google.cloud.bigquery.reservation.v1B\x10ReservationProtoP\x01ZJcloud.google.com/go/bigquery/reservation/apiv1/reservationpb;reservationpb\xAA\x02\$Google.Cloud.BigQuery.Reservation.V1\xCA\x02\$Google\\Cloud\\BigQuery\\Reservation\\V1b\x06proto3"
+ "\x0A\x9A\x8A\x01\x0A6google/cloud/bigquery/reservation/v1/reservation.proto\x12\$google.cloud.bigquery.reservation.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A\x1Egoogle/iam/v1/iam_policy.proto\x1A\x1Agoogle/iam/v1/policy.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x17google/rpc/status.proto\x1A\x16google/type/expr.proto\"\xA1\x0D\x0A\x0BReservation\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12\x1A\x0A\x0Dslot_capacity\x18\x02 \x01(\x03B\x03\xE0A\x01\x12\x1E\x0A\x11ignore_idle_slots\x18\x04 \x01(\x08B\x03\xE0A\x01\x12S\x0A\x09autoscale\x18\x07 \x01(\x0B2;.google.cloud.bigquery.reservation.v1.Reservation.AutoscaleB\x03\xE0A\x01\x12\x18\x0A\x0Bconcurrency\x18\x10 \x01(\x03B\x03\xE0A\x01\x126\x0A\x0Dcreation_time\x18\x08 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x09 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\"\x0A\x16multi_region_auxiliary\x18\x0E \x01(\x08B\x02\x18\x01\x12C\x0A\x07edition\x18\x11 \x01(\x0E2-.google.cloud.bigquery.reservation.v1.EditionB\x03\xE0A\x01\x12C\x0A\x10primary_location\x18\x12 \x01(\x09B)\xE0A\x03\xFAA#\x0A!locations.googleapis.com/Location\x12E\x0A\x12secondary_location\x18\x13 \x01(\x09B)\xE0A\x01\xFAA#\x0A!locations.googleapis.com/Location\x12L\x0A\x19original_primary_location\x18\x14 \x01(\x09B)\xE0A\x03\xFAA#\x0A!locations.googleapis.com/Location\x12\x1B\x0A\x09max_slots\x18\x15 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12X\x0A\x0Cscaling_mode\x18\x16 \x01(\x0E2=.google.cloud.bigquery.reservation.v1.Reservation.ScalingModeB\x03\xE0A\x01\x12R\x0A\x06labels\x18\x17 \x03(\x0B2=.google.cloud.bigquery.reservation.v1.Reservation.LabelsEntryB\x03\xE0A\x01\x12\x1E\x0A\x11reservation_group\x18\x19 \x01(\x09B\x03\xE0A\x01\x12d\x0A\x12replication_status\x18\x18 \x01(\x0B2C.google.cloud.bigquery.reservation.v1.Reservation.ReplicationStatusB\x03\xE0A\x03\x12V\x0A\x11scheduling_policy\x18\x1B \x01(\x0B26.google.cloud.bigquery.reservation.v1.SchedulingPolicyB\x03\xE0A\x01\x12#\x0A\x16reservation_group_path\x18\x1C \x03(\x09B\x03\xE0A\x03\x1A?\x0A\x09Autoscale\x12\x1A\x0A\x0Dcurrent_slots\x18\x01 \x01(\x03B\x03\xE0A\x03\x12\x16\x0A\x09max_slots\x18\x02 \x01(\x03B\x03\xE0A\x01\x1A\xF8\x01\x0A\x11ReplicationStatus\x12&\x0A\x05error\x18\x01 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03\x128\x0A\x0Flast_error_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12>\x0A\x15last_replication_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12A\x0A\x18soft_failover_start_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A-\x0A\x0BLabelsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12\x0D\x0A\x05value\x18\x02 \x01(\x09:\x028\x01\"c\x0A\x0BScalingMode\x12\x1C\x0A\x18SCALING_MODE_UNSPECIFIED\x10\x00\x12\x12\x0A\x0EAUTOSCALE_ONLY\x10\x01\x12\x13\x0A\x0FIDLE_SLOTS_ONLY\x10\x02\x12\x0D\x0A\x09ALL_SLOTS\x10\x03:w\xEAAt\x0A.bigqueryreservation.googleapis.com/Reservation\x12Bprojects/{project}/locations/{location}/reservations/{reservation}B\x0C\x0A\x0A_max_slots\"l\x0A\x10SchedulingPolicy\x12\x1D\x0A\x0Bconcurrency\x18\x01 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12\x1B\x0A\x09max_slots\x18\x02 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01B\x0E\x0A\x0C_concurrencyB\x0C\x0A\x0A_max_slots\"\x96\x03\x0A\x10ReservationGroup\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x12Q\x0A\x0Cparent_group\x18\x02 \x01(\x09B;\xE0A\x01\xFAA5\x123bigqueryreservation.googleapis.com/ReservationGroup\x126\x0A\x0Dcreation_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x124\x0A\x0Bupdate_time\x18\x04 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03:\xAD\x01\xEAA\xA9\x01\x0A3bigqueryreservation.googleapis.com/ReservationGroup\x12Mprojects/{project}/locations/{location}/reservationGroups/{reservation_group}*\x11reservationGroups2\x10reservationGroup\"\xAE\x08\x0A\x12CapacityCommitment\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x17\x0A\x0Aslot_count\x18\x02 \x01(\x03B\x03\xE0A\x01\x12Z\x0A\x04plan\x18\x03 \x01(\x0E2G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlanB\x03\xE0A\x01\x12R\x0A\x05state\x18\x04 \x01(\x0E2>.google.cloud.bigquery.reservation.v1.CapacityCommitment.StateB\x03\xE0A\x03\x12>\x0A\x15commitment_start_time\x18\x09 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12<\x0A\x13commitment_end_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12/\x0A\x0Efailure_status\x18\x07 \x01(\x0B2\x12.google.rpc.StatusB\x03\xE0A\x03\x12b\x0A\x0Crenewal_plan\x18\x08 \x01(\x0E2G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlanB\x03\xE0A\x01\x12\"\x0A\x16multi_region_auxiliary\x18\x0A \x01(\x08B\x02\x18\x01\x12C\x0A\x07edition\x18\x0C \x01(\x0E2-.google.cloud.bigquery.reservation.v1.EditionB\x03\xE0A\x01\x12\x19\x0A\x0Cis_flat_rate\x18\x0E \x01(\x08B\x03\xE0A\x03\"\xCE\x01\x0A\x0ECommitmentPlan\x12\x1F\x0A\x1BCOMMITMENT_PLAN_UNSPECIFIED\x10\x00\x12\x0C\x0A\x04FLEX\x10\x03\x1A\x02\x08\x01\x12\x16\x0A\x0EFLEX_FLAT_RATE\x10\x07\x1A\x02\x08\x01\x12\x0D\x0A\x05TRIAL\x10\x05\x1A\x02\x08\x01\x12\x0B\x0A\x07MONTHLY\x10\x02\x12\x19\x0A\x11MONTHLY_FLAT_RATE\x10\x08\x1A\x02\x08\x01\x12\x0A\x0A\x06ANNUAL\x10\x04\x12\x18\x0A\x10ANNUAL_FLAT_RATE\x10\x09\x1A\x02\x08\x01\x12\x0E\x0A\x0ATHREE_YEAR\x10\x0A\x12\x08\x0A\x04NONE\x10\x06\"C\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02\x12\x0A\x0A\x06FAILED\x10\x03:\x8E\x01\xEAA\x8A\x01\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12Qprojects/{project}/locations/{location}/capacityCommitments/{capacity_commitment}\"\xC2\x01\x0A\x18CreateReservationRequest\x12F\x0A\x06parent\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x12.bigqueryreservation.googleapis.com/Reservation\x12\x16\x0A\x0Ereservation_id\x18\x02 \x01(\x09\x12F\x0A\x0Breservation\x18\x03 \x01(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\"\x88\x01\x0A\x17ListReservationsRequest\x12F\x0A\x06parent\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x12.bigqueryreservation.googleapis.com/Reservation\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"|\x0A\x18ListReservationsResponse\x12G\x0A\x0Creservations\x18\x01 \x03(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"]\x0A\x15GetReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\"`\x0A\x18DeleteReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\"\x93\x01\x0A\x18UpdateReservationRequest\x12F\x0A\x0Breservation\x18\x01 \x01(\x0B21.google.cloud.bigquery.reservation.v1.Reservation\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"\xB2\x01\x0A\x1AFailoverReservationRequest\x12D\x0A\x04name\x18\x01 \x01(\x09B6\xE0A\x02\xFAA0\x0A.bigqueryreservation.googleapis.com/Reservation\x12N\x0A\x0Dfailover_mode\x18\x02 \x01(\x0E22.google.cloud.bigquery.reservation.v1.FailoverModeB\x03\xE0A\x01\"\xE7\x01\x0A\x1DCreateReservationGroupRequest\x12K\x0A\x06parent\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x123bigqueryreservation.googleapis.com/ReservationGroup\x12!\x0A\x14reservation_group_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x12V\x0A\x11reservation_group\x18\x03 \x01(\x0B26.google.cloud.bigquery.reservation.v1.ReservationGroupB\x03\xE0A\x02\"g\x0A\x1AGetReservationGroupRequest\x12I\x0A\x04name\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x0A3bigqueryreservation.googleapis.com/ReservationGroup\"\x92\x01\x0A\x1CListReservationGroupsRequest\x12K\x0A\x06parent\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x123bigqueryreservation.googleapis.com/ReservationGroup\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"\x8C\x01\x0A\x1DListReservationGroupsResponse\x12R\x0A\x12reservation_groups\x18\x01 \x03(\x0B26.google.cloud.bigquery.reservation.v1.ReservationGroup\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"j\x0A\x1DDeleteReservationGroupRequest\x12I\x0A\x04name\x18\x01 \x01(\x09B;\xE0A\x02\xFAA5\x0A3bigqueryreservation.googleapis.com/ReservationGroup\"\xAD\x01\x0A\x1DUpdateReservationGroupRequest\x12V\x0A\x11reservation_group\x18\x01 \x01(\x0B26.google.cloud.bigquery.reservation.v1.ReservationGroupB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x01\"\x95\x02\x0A\x1FCreateCapacityCommitmentRequest\x12M\x0A\x06parent\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12U\x0A\x13capacity_commitment\x18\x02 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12,\x0A\$enforce_single_admin_project_per_org\x18\x04 \x01(\x08\x12\x1E\x0A\x16capacity_commitment_id\x18\x05 \x01(\x09\"\x96\x01\x0A\x1EListCapacityCommitmentsRequest\x12M\x0A\x06parent\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"\x92\x01\x0A\x1FListCapacityCommitmentsResponse\x12V\x0A\x14capacity_commitments\x18\x01 \x03(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"k\x0A\x1CGetCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\"}\x0A\x1FDeleteCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x0D\x0A\x05force\x18\x03 \x01(\x08\"\xA9\x01\x0A\x1FUpdateCapacityCommitmentRequest\x12U\x0A\x13capacity_commitment\x18\x01 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"\x81\x01\x0A\x1ESplitCapacityCommitmentRequest\x12K\x0A\x04name\x18\x01 \x01(\x09B=\xE0A\x02\xFAA7\x0A5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x12\x0A\x0Aslot_count\x18\x02 \x01(\x03\"\xB4\x01\x0A\x1FSplitCapacityCommitmentResponse\x12G\x0A\x05first\x18\x01 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12H\x0A\x06second\x18\x02 \x01(\x0B28.google.cloud.bigquery.reservation.v1.CapacityCommitment\"\xB3\x01\x0A\x1FMergeCapacityCommitmentsRequest\x12J\x0A\x06parent\x18\x01 \x01(\x09B:\xFAA7\x125bigqueryreservation.googleapis.com/CapacityCommitment\x12\x1F\x0A\x17capacity_commitment_ids\x18\x02 \x03(\x09\x12#\x0A\x16capacity_commitment_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\x9E\x07\x0A\x0AAssignment\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x03\x12\x15\x0A\x08assignee\x18\x04 \x01(\x09B\x03\xE0A\x01\x12O\x0A\x08job_type\x18\x03 \x01(\x0E28.google.cloud.bigquery.reservation.v1.Assignment.JobTypeB\x03\xE0A\x01\x12J\x0A\x05state\x18\x06 \x01(\x0E26.google.cloud.bigquery.reservation.v1.Assignment.StateB\x03\xE0A\x03\x12(\x0A\x19enable_gemini_in_bigquery\x18\x0A \x01(\x08B\x05\x18\x01\xE0A\x01\x12V\x0A\x11scheduling_policy\x18\x0B \x01(\x0B26.google.cloud.bigquery.reservation.v1.SchedulingPolicyB\x03\xE0A\x01\x12\x16\x0A\x09principal\x18\x0C \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Aprecedence\x18\x0D \x01(\x03B\x03\xE0A\x01\x12)\x0A\x09condition\x18\x0E \x01(\x0B2\x11.google.type.ExprB\x03\xE0A\x01\"\x85\x02\x0A\x07JobType\x12\x18\x0A\x14JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08PIPELINE\x10\x01\x12\x09\x0A\x05QUERY\x10\x02\x12\x0F\x0A\x0BML_EXTERNAL\x10\x03\x12\x0E\x0A\x0ABACKGROUND\x10\x04\x12\x0E\x0A\x0ACONTINUOUS\x10\x06\x12\"\x0A\x1EBACKGROUND_CHANGE_DATA_CAPTURE\x10\x07\x12\$\x0A BACKGROUND_COLUMN_METADATA_INDEX\x10\x08\x12#\x0A\x1FBACKGROUND_SEARCH_INDEX_REFRESH\x10\x09\x12'\x0A#AUTOMATIC_MATERIALIZED_VIEW_REFRESH\x10\x0A\"7\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0B\x0A\x07PENDING\x10\x01\x12\x0A\x0A\x06ACTIVE\x10\x02:\xA9\x01\xEAA\xA5\x01\x0A-bigqueryreservation.googleapis.com/Assignment\x12[projects/{project}/locations/{location}/reservations/{reservation}/assignments/{assignment}*\x0Bassignments2\x0Aassignment\"\xBD\x01\x0A\x17CreateAssignmentRequest\x12E\x0A\x06parent\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12D\x0A\x0Aassignment\x18\x02 \x01(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x15\x0A\x0Dassignment_id\x18\x04 \x01(\x09\"\x86\x01\x0A\x16ListAssignmentsRequest\x12E\x0A\x06parent\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x11\x0A\x09page_size\x18\x02 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x03 \x01(\x09\"y\x0A\x17ListAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"^\x0A\x17DeleteAssignmentRequest\x12C\x0A\x04name\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-bigqueryreservation.googleapis.com/Assignment\"\x8B\x01\x0A\x18SearchAssignmentsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x0D\x0A\x05query\x18\x02 \x01(\x09\x12\x11\x0A\x09page_size\x18\x03 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x04 \x01(\x09\"\x8E\x01\x0A\x1BSearchAllAssignmentsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x0D\x0A\x05query\x18\x02 \x01(\x09\x12\x11\x0A\x09page_size\x18\x03 \x01(\x05\x12\x12\x0A\x0Apage_token\x18\x04 \x01(\x09\"{\x0A\x19SearchAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"~\x0A\x1CSearchAllAssignmentsResponse\x12E\x0A\x0Bassignments\x18\x01 \x03(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\"\xBF\x01\x0A\x15MoveAssignmentRequest\x12C\x0A\x04name\x18\x01 \x01(\x09B5\xE0A\x02\xFAA/\x0A-bigqueryreservation.googleapis.com/Assignment\x12J\x0A\x0Edestination_id\x18\x03 \x01(\x09B2\xFAA/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x15\x0A\x0Dassignment_id\x18\x05 \x01(\x09\"\x90\x01\x0A\x17UpdateAssignmentRequest\x12D\x0A\x0Aassignment\x18\x01 \x01(\x0B20.google.cloud.bigquery.reservation.v1.Assignment\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask\"Y\x0A\x0ETableReference\x12\x17\x0A\x0Aproject_id\x18\x01 \x01(\x09B\x03\xE0A\x01\x12\x17\x0A\x0Adataset_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08table_id\x18\x03 \x01(\x09B\x03\xE0A\x01\"\xAE\x02\x0A\x0DBiReservation\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bupdate_time\x18\x03 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12\x11\x0A\x04size\x18\x04 \x01(\x03B\x03\xE0A\x01\x12S\x0A\x10preferred_tables\x18\x05 \x03(\x0B24.google.cloud.bigquery.reservation.v1.TableReferenceB\x03\xE0A\x01:l\xEAAi\x0A0bigqueryreservation.googleapis.com/BiReservation\x125projects/{project}/locations/{location}/biReservation\"a\x0A\x17GetBiReservationRequest\x12F\x0A\x04name\x18\x01 \x01(\x09B8\xE0A\x02\xFAA2\x0A0bigqueryreservation.googleapis.com/BiReservation\"\x9A\x01\x0A\x1AUpdateBiReservationRequest\x12K\x0A\x0Ebi_reservation\x18\x01 \x01(\x0B23.google.cloud.bigquery.reservation.v1.BiReservation\x12/\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMask*U\x0A\x07Edition\x12\x17\x0A\x13EDITION_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08STANDARD\x10\x01\x12\x0E\x0A\x0AENTERPRISE\x10\x02\x12\x13\x0A\x0FENTERPRISE_PLUS\x10\x03*A\x0A\x0CFailoverMode\x12\x1D\x0A\x19FAILOVER_MODE_UNSPECIFIED\x10\x00\x12\x08\x0A\x04SOFT\x10\x01\x12\x08\x0A\x04HARD\x10\x022\xC08\x0A\x12ReservationService\x12\xF1\x01\x0A\x11CreateReservation\x12>.google.cloud.bigquery.reservation.v1.CreateReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"i\xDAA!parent,reservation,reservation_id\x82\xD3\xE4\x93\x02?\"0/v1/{parent=projects/*/locations/*}/reservations:\x0Breservation\x12\xD4\x01\x0A\x10ListReservations\x12=.google.cloud.bigquery.reservation.v1.ListReservationsRequest\x1A>.google.cloud.bigquery.reservation.v1.ListReservationsResponse\"A\xDAA\x06parent\x82\xD3\xE4\x93\x022\x120/v1/{parent=projects/*/locations/*}/reservations\x12\xC1\x01\x0A\x0EGetReservation\x12;.google.cloud.bigquery.reservation.v1.GetReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"?\xDAA\x04name\x82\xD3\xE4\x93\x022\x120/v1/{name=projects/*/locations/*/reservations/*}\x12\xAC\x01\x0A\x11DeleteReservation\x12>.google.cloud.bigquery.reservation.v1.DeleteReservationRequest\x1A\x16.google.protobuf.Empty\"?\xDAA\x04name\x82\xD3\xE4\x93\x022*0/v1/{name=projects/*/locations/*/reservations/*}\x12\xF3\x01\x0A\x11UpdateReservation\x12>.google.cloud.bigquery.reservation.v1.UpdateReservationRequest\x1A1.google.cloud.bigquery.reservation.v1.Reservation\"k\xDAA\x17reservation,update_mask\x82\xD3\xE4\x93\x02K2/v1/{parent=projects/*/locations/*/reservations/*}/assignments:\x0Aassignment\x12\xDF\x01\x0A\x0FListAssignments\x12<.google.cloud.bigquery.reservation.v1.ListAssignmentsRequest\x1A=.google.cloud.bigquery.reservation.v1.ListAssignmentsResponse\"O\xDAA\x06parent\x82\xD3\xE4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/reservations/*}/assignments\x12\xB8\x01\x0A\x10DeleteAssignment\x12=.google.cloud.bigquery.reservation.v1.DeleteAssignmentRequest\x1A\x16.google.protobuf.Empty\"M\xDAA\x04name\x82\xD3\xE4\x93\x02@*>/v1/{name=projects/*/locations/*/reservations/*/assignments/*}\x12\xE5\x01\x0A\x11SearchAssignments\x12>.google.cloud.bigquery.reservation.v1.SearchAssignmentsRequest\x1A?.google.cloud.bigquery.reservation.v1.SearchAssignmentsResponse\"O\x88\x02\x01\xDAA\x0Cparent,query\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}:searchAssignments\x12\xEE\x01\x0A\x14SearchAllAssignments\x12A.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsRequest\x1AB.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsResponse\"O\xDAA\x0Cparent,query\x82\xD3\xE4\x93\x02:\x128/v1/{parent=projects/*/locations/*}:searchAllAssignments\x12\xE5\x01\x0A\x0EMoveAssignment\x12;.google.cloud.bigquery.reservation.v1.MoveAssignmentRequest\x1A0.google.cloud.bigquery.reservation.v1.Assignment\"d\xDAA\x13name,destination_id\x82\xD3\xE4\x93\x02H\"C/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move:\x01*\x12\xFB\x01\x0A\x10UpdateAssignment\x12=.google.cloud.bigquery.reservation.v1.UpdateAssignmentRequest\x1A0.google.cloud.bigquery.reservation.v1.Assignment\"v\xDAA\x16assignment,update_mask\x82\xD3\xE4\x93\x02W2I/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}:\x0Aassignment\x12\xC6\x01\x0A\x10GetBiReservation\x12=.google.cloud.bigquery.reservation.v1.GetBiReservationRequest\x1A3.google.cloud.bigquery.reservation.v1.BiReservation\">\xDAA\x04name\x82\xD3\xE4\x93\x021\x12//v1/{name=projects/*/locations/*/biReservation}\x12\x81\x02\x0A\x13UpdateBiReservation\x12@.google.cloud.bigquery.reservation.v1.UpdateBiReservationRequest\x1A3.google.cloud.bigquery.reservation.v1.BiReservation\"s\xDAA\x1Abi_reservation,update_mask\x82\xD3\xE4\x93\x02P2>/v1/{bi_reservation.name=projects/*/locations/*/biReservation}:\x0Ebi_reservation\x12\xF4\x01\x0A\x0CGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"\xA8\x01\xDAA\x08resource\x82\xD3\xE4\x93\x02\x96\x01\x12A/v1/{resource=projects/*/locations/*/reservations/*}:getIamPolicyZQ\x12O/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:getIamPolicy\x12\x81\x02\x0A\x0CSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1A\x15.google.iam.v1.Policy\"\xB5\x01\xDAA\x0Fresource,policy\x82\xD3\xE4\x93\x02\x9C\x01\"A/v1/{resource=projects/*/locations/*/reservations/*}:setIamPolicy:\x01*ZT\"O/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:setIamPolicy:\x01*\x12\x9B\x02\x0A\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1A).google.iam.v1.TestIamPermissionsResponse\"\xAF\x01\x82\xD3\xE4\x93\x02\xA8\x01\"G/v1/{resource=projects/*/locations/*/reservations/*}:testIamPermissions:\x01*ZZ\"U/v1/{resource=projects/*/locations/*/reservations/*/assignments/*}:testIamPermissions:\x01*\x12\xE7\x01\x0A\x16CreateReservationGroup\x12C.google.cloud.bigquery.reservation.v1.CreateReservationGroupRequest\x1A6.google.cloud.bigquery.reservation.v1.ReservationGroup\"P\x82\xD3\xE4\x93\x02J\"5/v1/{parent=projects/*/locations/*}/reservationGroups:\x11reservation_group\x12\xD5\x01\x0A\x13GetReservationGroup\x12@.google.cloud.bigquery.reservation.v1.GetReservationGroupRequest\x1A6.google.cloud.bigquery.reservation.v1.ReservationGroup\"D\xDAA\x04name\x82\xD3\xE4\x93\x027\x125/v1/{name=projects/*/locations/*/reservationGroups/*}\x12\xBB\x01\x0A\x16DeleteReservationGroup\x12C.google.cloud.bigquery.reservation.v1.DeleteReservationGroupRequest\x1A\x16.google.protobuf.Empty\"D\xDAA\x04name\x82\xD3\xE4\x93\x027*5/v1/{name=projects/*/locations/*/reservationGroups/*}\x12\xE8\x01\x0A\x15ListReservationGroups\x12B.google.cloud.bigquery.reservation.v1.ListReservationGroupsRequest\x1AC.google.cloud.bigquery.reservation.v1.ListReservationGroupsResponse\"F\xDAA\x06parent\x82\xD3\xE4\x93\x027\x125/v1/{parent=projects/*/locations/*}/reservationGroups\x12\x9A\x02\x0A\x16UpdateReservationGroup\x12C.google.cloud.bigquery.reservation.v1.UpdateReservationGroupRequest\x1A6.google.cloud.bigquery.reservation.v1.ReservationGroup\"\x82\x01\xDAA\x1Dreservation_group,update_mask\x82\xD3\xE4\x93\x02\\2G/v1/{reservation_group.name=projects/*/locations/*/reservationGroups/*}:\x11reservation_group\x1A\x7F\xCAA\"bigqueryreservation.googleapis.com\xD2AWhttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xD8\x01\x0A(com.google.cloud.bigquery.reservation.v1B\x10ReservationProtoP\x01ZJcloud.google.com/go/bigquery/reservation/apiv1/reservationpb;reservationpb\xAA\x02\$Google.Cloud.BigQuery.Reservation.V1\xCA\x02\$Google\\Cloud\\BigQuery\\Reservation\\V1b\x06proto3"
, true);
static::$is_initialized = true;
diff --git a/BigQueryReservation/samples/V1/ReservationServiceClient/update_reservation_group.php b/BigQueryReservation/samples/V1/ReservationServiceClient/update_reservation_group.php
new file mode 100644
index 000000000000..4e9f8423b253
--- /dev/null
+++ b/BigQueryReservation/samples/V1/ReservationServiceClient/update_reservation_group.php
@@ -0,0 +1,59 @@
+setReservationGroup($reservationGroup);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ReservationGroup $response */
+ $response = $reservationServiceClient->updateReservationGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END bigqueryreservation_v1_generated_ReservationService_UpdateReservationGroup_sync]
diff --git a/BigQueryReservation/src/V1/Assignment/JobType.php b/BigQueryReservation/src/V1/Assignment/JobType.php
index 8ffad48780b6..a9606645e647 100644
--- a/BigQueryReservation/src/V1/Assignment/JobType.php
+++ b/BigQueryReservation/src/V1/Assignment/JobType.php
@@ -78,6 +78,14 @@ class JobType
* Generated from protobuf enum BACKGROUND_SEARCH_INDEX_REFRESH = 9;
*/
const BACKGROUND_SEARCH_INDEX_REFRESH = 9;
+ /**
+ * Automated materialized view refresh jobs will use the reservation.
+ * Reservations with this job type will take priority over a default QUERY
+ * reservation assignment (if it exists).
+ *
+ * Generated from protobuf enum AUTOMATIC_MATERIALIZED_VIEW_REFRESH = 10;
+ */
+ const AUTOMATIC_MATERIALIZED_VIEW_REFRESH = 10;
private static $valueToName = [
self::JOB_TYPE_UNSPECIFIED => 'JOB_TYPE_UNSPECIFIED',
@@ -89,6 +97,7 @@ class JobType
self::BACKGROUND_CHANGE_DATA_CAPTURE => 'BACKGROUND_CHANGE_DATA_CAPTURE',
self::BACKGROUND_COLUMN_METADATA_INDEX => 'BACKGROUND_COLUMN_METADATA_INDEX',
self::BACKGROUND_SEARCH_INDEX_REFRESH => 'BACKGROUND_SEARCH_INDEX_REFRESH',
+ self::AUTOMATIC_MATERIALIZED_VIEW_REFRESH => 'AUTOMATIC_MATERIALIZED_VIEW_REFRESH',
];
public static function name($value)
diff --git a/BigQueryReservation/src/V1/CapacityCommitment/CommitmentPlan.php b/BigQueryReservation/src/V1/CapacityCommitment/CommitmentPlan.php
index 1ab5419487d7..5a6bf72271c7 100644
--- a/BigQueryReservation/src/V1/CapacityCommitment/CommitmentPlan.php
+++ b/BigQueryReservation/src/V1/CapacityCommitment/CommitmentPlan.php
@@ -22,11 +22,13 @@ class CommitmentPlan
*/
const COMMITMENT_PLAN_UNSPECIFIED = 0;
/**
+ * Deprecated: Flex commitments are deprecated. Please use Edition-based
+ * capacity commitments.
* Flex commitments have committed period of 1 minute after becoming ACTIVE.
* After that, they are not in a committed period anymore and can be removed
* any time.
*
- * Generated from protobuf enum FLEX = 3;
+ * Generated from protobuf enum FLEX = 3 [deprecated = true];
*/
const FLEX = 3;
/**
diff --git a/BigQueryReservation/src/V1/Client/ReservationServiceClient.php b/BigQueryReservation/src/V1/Client/ReservationServiceClient.php
index 48d5c2dfdaa3..a40f3e3dcb62 100644
--- a/BigQueryReservation/src/V1/Client/ReservationServiceClient.php
+++ b/BigQueryReservation/src/V1/Client/ReservationServiceClient.php
@@ -65,6 +65,7 @@
use Google\Cloud\BigQuery\Reservation\V1\UpdateAssignmentRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateBiReservationRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateCapacityCommitmentRequest;
+use Google\Cloud\BigQuery\Reservation\V1\UpdateReservationGroupRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateReservationRequest;
use Google\Cloud\Iam\V1\GetIamPolicyRequest;
use Google\Cloud\Iam\V1\Policy;
@@ -128,6 +129,7 @@
* @method PromiseInterface updateBiReservationAsync(UpdateBiReservationRequest $request, array $optionalArgs = [])
* @method PromiseInterface updateCapacityCommitmentAsync(UpdateCapacityCommitmentRequest $request, array $optionalArgs = [])
* @method PromiseInterface updateReservationAsync(UpdateReservationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateReservationGroupAsync(UpdateReservationGroupRequest $request, array $optionalArgs = [])
*/
final class ReservationServiceClient
{
@@ -1374,4 +1376,33 @@ public function updateReservation(UpdateReservationRequest $request, array $call
{
return $this->startApiCall('UpdateReservation', $request, $callOptions)->wait();
}
+
+ /**
+ * Updates an existing reservation group resource.
+ *
+ * The async variant is
+ * {@see ReservationServiceClient::updateReservationGroupAsync()} .
+ *
+ * @example samples/V1/ReservationServiceClient/update_reservation_group.php
+ *
+ * @param UpdateReservationGroupRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ReservationGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateReservationGroup(
+ UpdateReservationGroupRequest $request,
+ array $callOptions = []
+ ): ReservationGroup {
+ return $this->startApiCall('UpdateReservationGroup', $request, $callOptions)->wait();
+ }
}
diff --git a/BigQueryReservation/src/V1/Reservation.php b/BigQueryReservation/src/V1/Reservation.php
index 44716e51738c..1b03f20c86ee 100644
--- a/BigQueryReservation/src/V1/Reservation.php
+++ b/BigQueryReservation/src/V1/Reservation.php
@@ -217,6 +217,16 @@ class Reservation extends \Google\Protobuf\Internal\Message
* Generated from protobuf field .google.cloud.bigquery.reservation.v1.SchedulingPolicy scheduling_policy = 27 [(.google.api.field_behavior) = OPTIONAL];
*/
protected $scheduling_policy = null;
+ /**
+ * Output only. The reservation group path of the reservation from root to
+ * leaf. The order of elements matters: the first element is the top level
+ * group and the last element is the direct parent reservation group. For
+ * example, if a reservation is under group-1 -> group-2 -> group-3, then the
+ * reservation group path is ["group-1", "group-2", "group-3"].
+ *
+ * Generated from protobuf field repeated string reservation_group_path = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $reservation_group_path;
/**
* Constructor.
@@ -353,6 +363,12 @@ class Reservation extends \Google\Protobuf\Internal\Message
* this reservation. The scheduling policy controls how the reservation's
* resources are distributed.
* This feature is not yet generally available.
+ * @type string[] $reservation_group_path
+ * Output only. The reservation group path of the reservation from root to
+ * leaf. The order of elements matters: the first element is the top level
+ * group and the last element is the direct parent reservation group. For
+ * example, if a reservation is under group-1 -> group-2 -> group-3, then the
+ * reservation group path is ["group-1", "group-2", "group-3"].
* }
*/
public function __construct($data = NULL) {
@@ -1080,5 +1096,39 @@ public function setSchedulingPolicy($var)
return $this;
}
+ /**
+ * Output only. The reservation group path of the reservation from root to
+ * leaf. The order of elements matters: the first element is the top level
+ * group and the last element is the direct parent reservation group. For
+ * example, if a reservation is under group-1 -> group-2 -> group-3, then the
+ * reservation group path is ["group-1", "group-2", "group-3"].
+ *
+ * Generated from protobuf field repeated string reservation_group_path = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return RepeatedField
+ */
+ public function getReservationGroupPath()
+ {
+ return $this->reservation_group_path;
+ }
+
+ /**
+ * Output only. The reservation group path of the reservation from root to
+ * leaf. The order of elements matters: the first element is the top level
+ * group and the last element is the direct parent reservation group. For
+ * example, if a reservation is under group-1 -> group-2 -> group-3, then the
+ * reservation group path is ["group-1", "group-2", "group-3"].
+ *
+ * Generated from protobuf field repeated string reservation_group_path = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string[] $var
+ * @return $this
+ */
+ public function setReservationGroupPath($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->reservation_group_path = $arr;
+
+ return $this;
+ }
+
}
diff --git a/BigQueryReservation/src/V1/ReservationGroup.php b/BigQueryReservation/src/V1/ReservationGroup.php
index c33ac03c6149..3fd80ece9cf0 100644
--- a/BigQueryReservation/src/V1/ReservationGroup.php
+++ b/BigQueryReservation/src/V1/ReservationGroup.php
@@ -25,6 +25,30 @@ class ReservationGroup extends \Google\Protobuf\Internal\Message
* Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
*/
protected $name = '';
+ /**
+ * Optional. The parent reservation group of the reservation group.
+ * Format: `projects/{@*}locations/{@*}reservationGroups/team1-prod` for non-root
+ * reservation groups, or `projects/{@*}locations/*` for root reservation
+ * groups.
+ *
+ * Generated from protobuf field string parent_group = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ */
+ protected $parent_group = '';
+ /**
+ * Output only. Creation time of the reservation group.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp creation_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $creation_time = null;
+ /**
+ * Output only. Last update time of the reservation group via a user
+ * operation. This timestamp is updated only when an update operation
+ * explicitly targets this reservation group directly. It is not updated when
+ * parent or child groups are created, updated, or deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
/**
* Constructor.
@@ -38,6 +62,18 @@ class ReservationGroup extends \Google\Protobuf\Internal\Message
* The reservation_group_id must only contain lower case alphanumeric
* characters or dashes. It must start with a letter and must not end with a
* dash. Its maximum length is 64 characters.
+ * @type string $parent_group
+ * Optional. The parent reservation group of the reservation group.
+ * Format: `projects/{@*}locations/{@*}reservationGroups/team1-prod` for non-root
+ * reservation groups, or `projects/{@*}locations/*` for root reservation
+ * groups.
+ * @type \Google\Protobuf\Timestamp $creation_time
+ * Output only. Creation time of the reservation group.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Last update time of the reservation group via a user
+ * operation. This timestamp is updated only when an update operation
+ * explicitly targets this reservation group directly. It is not updated when
+ * parent or child groups are created, updated, or deleted.
* }
*/
public function __construct($data = NULL) {
@@ -79,5 +115,115 @@ public function setName($var)
return $this;
}
+ /**
+ * Optional. The parent reservation group of the reservation group.
+ * Format: `projects/{@*}locations/{@*}reservationGroups/team1-prod` for non-root
+ * reservation groups, or `projects/{@*}locations/*` for root reservation
+ * groups.
+ *
+ * Generated from protobuf field string parent_group = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParentGroup()
+ {
+ return $this->parent_group;
+ }
+
+ /**
+ * Optional. The parent reservation group of the reservation group.
+ * Format: `projects/{@*}locations/{@*}reservationGroups/team1-prod` for non-root
+ * reservation groups, or `projects/{@*}locations/*` for root reservation
+ * groups.
+ *
+ * Generated from protobuf field string parent_group = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParentGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Creation time of the reservation group.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp creation_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreationTime()
+ {
+ return $this->creation_time;
+ }
+
+ public function hasCreationTime()
+ {
+ return isset($this->creation_time);
+ }
+
+ public function clearCreationTime()
+ {
+ unset($this->creation_time);
+ }
+
+ /**
+ * Output only. Creation time of the reservation group.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp creation_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->creation_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Last update time of the reservation group via a user
+ * operation. This timestamp is updated only when an update operation
+ * explicitly targets this reservation group directly. It is not updated when
+ * parent or child groups are created, updated, or deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Last update time of the reservation group via a user
+ * operation. This timestamp is updated only when an update operation
+ * explicitly targets this reservation group directly. It is not updated when
+ * parent or child groups are created, updated, or deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
}
diff --git a/BigQueryReservation/src/V1/UpdateReservationGroupRequest.php b/BigQueryReservation/src/V1/UpdateReservationGroupRequest.php
new file mode 100644
index 000000000000..30386894743a
--- /dev/null
+++ b/BigQueryReservation/src/V1/UpdateReservationGroupRequest.php
@@ -0,0 +1,137 @@
+google.cloud.bigquery.reservation.v1.UpdateReservationGroupRequest
+ */
+class UpdateReservationGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Content of the reservation group to update.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.reservation.v1.ReservationGroup reservation_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $reservation_group = null;
+ /**
+ * Optional. Standard field mask for the set of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\BigQuery\Reservation\V1\ReservationGroup $reservationGroup Required. Content of the reservation group to update.
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. Standard field mask for the set of fields to be updated.
+ *
+ * @return \Google\Cloud\BigQuery\Reservation\V1\UpdateReservationGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\BigQuery\Reservation\V1\ReservationGroup $reservationGroup, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setReservationGroup($reservationGroup)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\BigQuery\Reservation\V1\ReservationGroup $reservation_group
+ * Required. Content of the reservation group to update.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. Standard field mask for the set of fields to be updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Bigquery\Reservation\V1\Reservation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Content of the reservation group to update.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.reservation.v1.ReservationGroup reservation_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\BigQuery\Reservation\V1\ReservationGroup|null
+ */
+ public function getReservationGroup()
+ {
+ return $this->reservation_group;
+ }
+
+ public function hasReservationGroup()
+ {
+ return isset($this->reservation_group);
+ }
+
+ public function clearReservationGroup()
+ {
+ unset($this->reservation_group);
+ }
+
+ /**
+ * Required. Content of the reservation group to update.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.reservation.v1.ReservationGroup reservation_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\BigQuery\Reservation\V1\ReservationGroup $var
+ * @return $this
+ */
+ public function setReservationGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Reservation\V1\ReservationGroup::class);
+ $this->reservation_group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Standard field mask for the set of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Optional. Standard field mask for the set of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/BigQueryReservation/src/V1/gapic_metadata.json b/BigQueryReservation/src/V1/gapic_metadata.json
index 49a250e00c01..e8a076997bd7 100644
--- a/BigQueryReservation/src/V1/gapic_metadata.json
+++ b/BigQueryReservation/src/V1/gapic_metadata.json
@@ -154,6 +154,11 @@
"methods": [
"updateReservation"
]
+ },
+ "UpdateReservationGroup": {
+ "methods": [
+ "updateReservationGroup"
+ ]
}
}
}
diff --git a/BigQueryReservation/src/V1/resources/reservation_service_client_config.json b/BigQueryReservation/src/V1/resources/reservation_service_client_config.json
index cfb23efbb0f3..49ed3940cae3 100644
--- a/BigQueryReservation/src/V1/resources/reservation_service_client_config.json
+++ b/BigQueryReservation/src/V1/resources/reservation_service_client_config.json
@@ -183,6 +183,11 @@
"timeout_millis": 300000,
"retry_codes_name": "no_retry_1_codes",
"retry_params_name": "no_retry_1_params"
+ },
+ "UpdateReservationGroup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
}
}
}
diff --git a/BigQueryReservation/src/V1/resources/reservation_service_descriptor_config.php b/BigQueryReservation/src/V1/resources/reservation_service_descriptor_config.php
index 2e3511db8386..ac1799ec6e92 100644
--- a/BigQueryReservation/src/V1/resources/reservation_service_descriptor_config.php
+++ b/BigQueryReservation/src/V1/resources/reservation_service_descriptor_config.php
@@ -423,6 +423,19 @@
],
],
],
+ 'UpdateReservationGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\BigQuery\Reservation\V1\ReservationGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'reservation_group.name',
+ 'fieldAccessors' => [
+ 'getReservationGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
'templateMap' => [
'assignment' => 'projects/{project}/locations/{location}/reservations/{reservation}/assignments/{assignment}',
'biReservation' => 'projects/{project}/locations/{location}/biReservation',
diff --git a/BigQueryReservation/src/V1/resources/reservation_service_rest_client_config.php b/BigQueryReservation/src/V1/resources/reservation_service_rest_client_config.php
index 40160d5e6040..2176fab5ad08 100644
--- a/BigQueryReservation/src/V1/resources/reservation_service_rest_client_config.php
+++ b/BigQueryReservation/src/V1/resources/reservation_service_rest_client_config.php
@@ -383,6 +383,19 @@
],
],
],
+ 'UpdateReservationGroup' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{reservation_group.name=projects/*/locations/*/reservationGroups/*}',
+ 'body' => 'reservation_group',
+ 'placeholders' => [
+ 'reservation_group.name' => [
+ 'getters' => [
+ 'getReservationGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
],
],
'numericEnums' => true,
diff --git a/BigQueryReservation/tests/Unit/V1/Client/ReservationServiceClientTest.php b/BigQueryReservation/tests/Unit/V1/Client/ReservationServiceClientTest.php
index b8b1367848ad..30fe43d3bf1d 100644
--- a/BigQueryReservation/tests/Unit/V1/Client/ReservationServiceClientTest.php
+++ b/BigQueryReservation/tests/Unit/V1/Client/ReservationServiceClientTest.php
@@ -64,6 +64,7 @@
use Google\Cloud\BigQuery\Reservation\V1\UpdateAssignmentRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateBiReservationRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateCapacityCommitmentRequest;
+use Google\Cloud\BigQuery\Reservation\V1\UpdateReservationGroupRequest;
use Google\Cloud\BigQuery\Reservation\V1\UpdateReservationRequest;
use Google\Cloud\Iam\V1\GetIamPolicyRequest;
use Google\Cloud\Iam\V1\Policy;
@@ -347,8 +348,10 @@ public function createReservationGroupTest()
$this->assertTrue($transport->isExhausted());
// Mock response
$name = 'name3373707';
+ $parentGroup = 'parentGroup1394981546';
$expectedResponse = new ReservationGroup();
$expectedResponse->setName($name);
+ $expectedResponse->setParentGroup($parentGroup);
$transport->addResponse($expectedResponse);
// Mock request
$formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
@@ -1063,8 +1066,10 @@ public function getReservationGroupTest()
$this->assertTrue($transport->isExhausted());
// Mock response
$name2 = 'name2-1052831874';
+ $parentGroup = 'parentGroup1394981546';
$expectedResponse = new ReservationGroup();
$expectedResponse->setName($name2);
+ $expectedResponse->setParentGroup($parentGroup);
$transport->addResponse($expectedResponse);
// Mock request
$formattedName = $gapicClient->reservationGroupName('[PROJECT]', '[LOCATION]', '[RESERVATION_GROUP]');
@@ -2186,6 +2191,76 @@ public function updateReservationExceptionTest()
$this->assertTrue($transport->isExhausted());
}
+ /** @test */
+ public function updateReservationGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $parentGroup = 'parentGroup1394981546';
+ $expectedResponse = new ReservationGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setParentGroup($parentGroup);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $reservationGroup = new ReservationGroup();
+ $request = (new UpdateReservationGroupRequest())->setReservationGroup($reservationGroup);
+ $response = $gapicClient->updateReservationGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame(
+ '/google.cloud.bigquery.reservation.v1.ReservationService/UpdateReservationGroup',
+ $actualFuncCall
+ );
+ $actualValue = $actualRequestObject->getReservationGroup();
+ $this->assertProtobufEquals($reservationGroup, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateReservationGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode(
+ [
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ],
+ JSON_PRETTY_PRINT
+ );
+ $transport->addResponse(null, $status);
+ // Mock request
+ $reservationGroup = new ReservationGroup();
+ $request = (new UpdateReservationGroupRequest())->setReservationGroup($reservationGroup);
+ try {
+ $gapicClient->updateReservationGroup($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
/** @test */
public function createAssignmentAsyncTest()
{