@@ -24,6 +24,7 @@ import "google/cloud/alloydb/v1alpha/gemini.proto";
2424import "google/protobuf/duration.proto" ;
2525import "google/protobuf/timestamp.proto" ;
2626import "google/protobuf/wrappers.proto" ;
27+ import "google/type/date.proto" ;
2728import "google/type/dayofweek.proto" ;
2829import "google/type/timeofday.proto" ;
2930
@@ -355,13 +356,20 @@ message ContinuousBackupInfo {
355356 google.protobuf.Timestamp enabled_time = 2
356357 [(google.api.field_behavior ) = OUTPUT_ONLY ];
357358
358- // Output only. Days of the week on which a continuous backup is taken. Output
359- // only field. Ignored if passed into the request.
359+ // Output only. Days of the week on which a continuous backup is taken.
360360 repeated google.type.DayOfWeek schedule = 3
361361 [(google.api.field_behavior ) = OUTPUT_ONLY ];
362362
363- // Output only. The earliest restorable time that can be restored to. Output
364- // only field.
363+ // Output only. The earliest restorable time that can be restored to. If
364+ // continuous backups and recovery was recently enabled, the earliest
365+ // restorable time is the creation time of the earliest eligible backup within
366+ // this cluster's continuous backup recovery window. After a cluster has had
367+ // continuous backups enabled for the duration of its recovery window, the
368+ // earliest restorable time becomes "now minus the recovery window". For
369+ // example, assuming a point in time recovery is attempted at 04/16/2025
370+ // 3:23:00PM with a 14d recovery window, the earliest restorable time would be
371+ // 04/02/2025 3:23:00PM. This field is only visible if the
372+ // CLUSTER_VIEW_CONTINUOUS_BACKUP cluster view is provided.
365373 google.protobuf.Timestamp earliest_restorable_time = 4
366374 [(google.api.field_behavior ) = OUTPUT_ONLY ];
367375}
@@ -405,8 +413,34 @@ message MaintenanceUpdatePolicy {
405413 google.type.TimeOfDay start_time = 2 ;
406414 }
407415
416+ // DenyMaintenancePeriod definition. Excepting emergencies, maintenance
417+ // will not be scheduled to start within this deny period. The start_date must
418+ // be less than the end_date.
419+ message DenyMaintenancePeriod {
420+ // Deny period start date.
421+ // This can be:
422+ // * A full date, with non-zero year, month and day values OR
423+ // * A month and day value, with a zero year for recurring
424+ google.type.Date start_date = 1 ;
425+
426+ // Deny period end date.
427+ // This can be:
428+ // * A full date, with non-zero year, month and day values OR
429+ // * A month and day value, with a zero year for recurring
430+ google.type.Date end_date = 2 ;
431+
432+ // Time in UTC when the deny period starts on start_date and ends on
433+ // end_date. This can be:
434+ // * Full time OR
435+ // * All zeros for 00:00:00 UTC
436+ google.type.TimeOfDay time = 3 ;
437+ }
438+
408439 // Preferred windows to perform maintenance. Currently limited to 1.
409440 repeated MaintenanceWindow maintenance_windows = 1 ;
441+
442+ // Periods to deny maintenance. Currently limited to 1.
443+ repeated DenyMaintenancePeriod deny_maintenance_periods = 2 ;
410444}
411445
412446// MaintenanceSchedule stores the maintenance schedule generated from
@@ -706,10 +740,10 @@ message Cluster {
706740 MaintenanceSchedule maintenance_schedule = 37
707741 [(google.api.field_behavior ) = OUTPUT_ONLY ];
708742
709- // Optional. Configuration parameters related to the Gemini in Databases
710- // add-on .
743+ // Optional. Deprecated and unused. This field will be removed in the near
744+ // future .
711745 GeminiClusterConfig gemini_config = 36
712- [(google.api.field_behavior ) = OPTIONAL ];
746+ [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
713747
714748 // Optional. Subscription type of the cluster.
715749 SubscriptionType subscription_type = 38
@@ -729,6 +763,12 @@ message Cluster {
729763 (google.api.field_behavior ) = IMMUTABLE ,
730764 (google.api.field_behavior ) = OPTIONAL
731765 ];
766+
767+ // Output only. AlloyDB per-cluster service agent email. This service account
768+ // is created per-cluster per-project, and is different from that of the
769+ // primary service agent which is created per-project. The service account
770+ // naming format is subject to change.
771+ string service_account_email = 46 [(google.api.field_behavior ) = OUTPUT_ONLY ];
732772}
733773
734774// An Instance is a computing unit that an end customer can connect to.
@@ -835,6 +875,9 @@ message Instance {
835875 // Track client address for an instance.
836876 // If not set, default value is "off".
837877 optional bool track_client_address = 9 ;
878+
879+ // Whether assistive experiences are enabled for this AlloyDB instance.
880+ optional bool assistive_experiences_enabled = 10 ;
838881 }
839882
840883 // Configuration for a read pool instance.
@@ -902,9 +945,33 @@ message Instance {
902945 ];
903946
904947 // Output only. The status of the PSC service automation connection.
948+ // Possible values:
949+ // "STATE_UNSPECIFIED" - An invalid state as the default case.
950+ // "ACTIVE" - The connection has been created successfully.
951+ // "FAILED" - The connection is not functional since some resources on the
952+ // connection fail to be created.
953+ // "CREATING" - The connection is being created.
954+ // "DELETING" - The connection is being deleted.
955+ // "CREATE_REPAIRING" - The connection is being repaired to complete
956+ // creation.
957+ // "DELETE_REPAIRING" - The connection is being repaired to complete
958+ // deletion.
905959 string status = 4 [(google.api.field_behavior ) = OUTPUT_ONLY ];
906960
907961 // Output only. The status of the service connection policy.
962+ // Possible values:
963+ // "STATE_UNSPECIFIED" - Default state, when Connection Map is created
964+ // initially.
965+ // "VALID" - Set when policy and map configuration is valid, and their
966+ // matching can lead to allowing creation of PSC Connections subject to
967+ // other constraints like connections limit.
968+ // "CONNECTION_POLICY_MISSING" - No Service Connection Policy found for
969+ // this network and Service Class
970+ // "POLICY_LIMIT_REACHED" - Service Connection Policy limit reached for
971+ // this network and Service Class
972+ // "CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED" - The consumer instance
973+ // project is not in AllowedGoogleProducersResourceHierarchyLevels of the
974+ // matching ServiceConnectionPolicy.
908975 string consumer_network_status = 5
909976 [(google.api.field_behavior ) = OUTPUT_ONLY ];
910977 }
@@ -958,6 +1025,46 @@ message Instance {
9581025 // Optional. Enabling an outbound public IP address to support a database
9591026 // server sending requests out into the internet.
9601027 bool enable_outbound_public_ip = 3 [(google.api.field_behavior ) = OPTIONAL ];
1028+
1029+ // Output only. The resource link for the VPC network in which instance
1030+ // resources are created and from which they are accessible via Private IP.
1031+ // This will be the same value as the parent cluster's network. It is
1032+ // specified in the form: //
1033+ // `projects/{project_number}/global/networks/{network_id}`.
1034+ string network = 4 [
1035+ (google.api.field_behavior ) = OUTPUT_ONLY ,
1036+ (google.api.resource_reference ) = {
1037+ type : "compute.googleapis.com/Network"
1038+ }
1039+ ];
1040+
1041+ // Optional. Name of the allocated IP range for the private IP AlloyDB
1042+ // instance, for example: "google-managed-services-default". If set, the
1043+ // instance IPs will be created from this allocated range and will override
1044+ // the IP range used by the parent cluster. The range name must comply with
1045+ // [RFC 1035](http://datatracker.ietf.org/doc/html/rfc1035). Specifically,
1046+ // the name must be 1-63 characters long and match the regular expression
1047+ // [a-z]([-a-z0-9]*[a-z0-9])?.
1048+ string allocated_ip_range_override = 5
1049+ [(google.api.field_behavior ) = OPTIONAL ];
1050+ }
1051+
1052+ // Configuration for Managed Connection Pool (MCP).
1053+ message ConnectionPoolConfig {
1054+ // The pool mode. Defaults to `POOL_MODE_TRANSACTION`.
1055+ enum PoolMode {
1056+ // The pool mode is not specified. Defaults to `POOL_MODE_TRANSACTION`.
1057+ POOL_MODE_UNSPECIFIED = 0 ;
1058+
1059+ // Server is released back to pool after a client disconnects.
1060+ POOL_MODE_SESSION = 1 ;
1061+
1062+ // Server is released back to pool after a transaction finishes.
1063+ POOL_MODE_TRANSACTION = 2 ;
1064+ }
1065+
1066+ // Optional. Whether to enable Managed Connection Pool (MCP).
1067+ bool enabled = 12 [(google.api.field_behavior ) = OPTIONAL ];
9611068 }
9621069
9631070 // Instance State
@@ -1033,6 +1140,18 @@ message Instance {
10331140 REGIONAL = 2 ;
10341141 }
10351142
1143+ // Specifies whether an instance needs to spin up.
1144+ enum ActivationPolicy {
1145+ // The policy is not specified.
1146+ ACTIVATION_POLICY_UNSPECIFIED = 0 ;
1147+
1148+ // The instance is running.
1149+ ALWAYS = 1 ;
1150+
1151+ // The instance is not running.
1152+ NEVER = 2 ;
1153+ }
1154+
10361155 // Output only. The name of the instance resource with the format:
10371156 // * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id}
10381157 // where the cluster and instance ID segments should satisfy the regex
@@ -1180,17 +1299,31 @@ message Instance {
11801299 InstanceNetworkConfig network_config = 29
11811300 [(google.api.field_behavior ) = OPTIONAL ];
11821301
1183- // Optional. Configuration parameters related to the Gemini in Databases
1184- // add-on .
1302+ // Optional. Deprecated and unused. This field will be removed in the near
1303+ // future .
11851304 GeminiInstanceConfig gemini_config = 33
1186- [(google.api.field_behavior ) = OPTIONAL ];
1305+ [deprecated = true , (google.api.field_behavior ) = OPTIONAL ];
11871306
11881307 // Output only. All outbound public IP addresses configured for the instance.
11891308 repeated string outbound_public_ip_addresses = 34 [
11901309 (google.api.field_info ).format = IPV4 ,
11911310 (google.api.field_behavior ) = OUTPUT_ONLY
11921311 ];
11931312
1313+ // Optional. Specifies whether an instance needs to spin up. Once the instance
1314+ // is active, the activation policy can be updated to the `NEVER` to stop the
1315+ // instance. Likewise, the activation policy can be updated to `ALWAYS` to
1316+ // start the instance.
1317+ // There are restrictions around when an instance can/cannot be activated (for
1318+ // example, a read pool instance should be stopped before stopping primary
1319+ // etc.). Please refer to the API documentation for more details.
1320+ ActivationPolicy activation_policy = 35
1321+ [(google.api.field_behavior ) = OPTIONAL ];
1322+
1323+ // Optional. The configuration for Managed Connection Pool (MCP).
1324+ ConnectionPoolConfig connection_pool_config = 37
1325+ [(google.api.field_behavior ) = OPTIONAL ];
1326+
11941327 // Output only. Configuration parameters related to Gemini Cloud Assist.
11951328 GCAInstanceConfig gca_config = 38 [(google.api.field_behavior ) = OUTPUT_ONLY ];
11961329}
@@ -1327,13 +1460,20 @@ message Backup {
13271460 [(google.api.field_behavior ) = OUTPUT_ONLY ];
13281461
13291462 // Output only. Update time stamp
1463+ //
1464+ // Users should not infer any meaning from this field. Its value is generally
1465+ // unrelated to the timing of the backup creation operation.
13301466 google.protobuf.Timestamp update_time = 5
13311467 [(google.api.field_behavior ) = OUTPUT_ONLY ];
13321468
13331469 // Output only. Delete time stamp
13341470 google.protobuf.Timestamp delete_time = 15
13351471 [(google.api.field_behavior ) = OUTPUT_ONLY ];
13361472
1473+ // Output only. Timestamp when the resource finished being created.
1474+ google.protobuf.Timestamp create_completion_time = 26
1475+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
1476+
13371477 // Labels as key value pairs
13381478 map <string , string > labels = 6 ;
13391479
0 commit comments