@@ -17,6 +17,7 @@ syntax = "proto3";
1717package google.cloud.alloydb.v1beta ;
1818
1919import "google/api/field_behavior.proto" ;
20+ import "google/api/field_info.proto" ;
2021import "google/api/resource.proto" ;
2122import "google/protobuf/duration.proto" ;
2223import "google/protobuf/timestamp.proto" ;
@@ -386,14 +387,14 @@ message Cluster {
386387
387388 // Metadata related to network configuration.
388389 message NetworkConfig {
389- // Required . The resource link for the VPC network in which cluster
390+ // Optional . The resource link for the VPC network in which cluster
390391 // resources are created and from which they are accessible via Private IP.
391392 // The network must belong to the same project as the cluster. It is
392393 // specified in the form:
393394 // "projects/{project_number}/global/networks/{network_id}". This is
394395 // required to create a cluster.
395396 string network = 1 [
396- (google.api.field_behavior ) = REQUIRED ,
397+ (google.api.field_behavior ) = OPTIONAL ,
397398 (google.api.resource_reference ) = {
398399 type : "compute.googleapis.com/Network"
399400 }
@@ -404,8 +405,8 @@ message Cluster {
404405 // instance IPs for this cluster will be created in the allocated range. The
405406 // range name must comply with RFC 1035. Specifically, the name must be 1-63
406407 // characters long and match the regular expression
407- // [a-z]([-a-z0-9]*[a-z0-9])?.
408- // Field name is intended to be consistent with CloudSQL .
408+ // ` [a-z]([-a-z0-9]*[a-z0-9])?` .
409+ // Field name is intended to be consistent with Cloud SQL .
409410 string allocated_ip_range = 2 [(google.api.field_behavior ) = OPTIONAL ];
410411 }
411412
@@ -606,6 +607,9 @@ message Cluster {
606607
607608 // Output only. Cross Region replication config specific to PRIMARY cluster.
608609 PrimaryConfig primary_config = 23 [(google.api.field_behavior ) = OUTPUT_ONLY ];
610+
611+ // Output only. Reserved for future use.
612+ bool satisfies_pzs = 30 [(google.api.field_behavior ) = OUTPUT_ONLY ];
609613}
610614
611615// An Instance is a computing unit that an end customer can connect to.
@@ -698,6 +702,79 @@ message Instance {
698702 SslConfig ssl_config = 2 [(google.api.field_behavior ) = OPTIONAL ];
699703 }
700704
705+ // Configuration for setting up a PSC interface. This information needs to be
706+ // provided by the customer.
707+ // PSC interfaces will be created and added to VMs via SLM (adding a network
708+ // interface will require recreating the VM). For HA instances this will be
709+ // done via LDTM.
710+ message PscInterfaceConfig {
711+ // A list of endpoints in the consumer VPC the interface might initiate
712+ // outbound connections to. This list has to be provided when the PSC
713+ // interface is created.
714+ repeated string consumer_endpoint_ips = 1 ;
715+
716+ // The NetworkAttachment resource created in the consumer VPC to which the
717+ // PSC interface will be linked, in the form of:
718+ // `projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}`.
719+ // NetworkAttachment has to be provided when the PSC interface is created.
720+ string network_attachment = 2 ;
721+ }
722+
723+ // PscInstanceConfig contains PSC related configuration at an
724+ // instance level.
725+ message PscInstanceConfig {
726+ // Output only. The service attachment created when Private
727+ // Service Connect (PSC) is enabled for the instance.
728+ // The name of the resource will be in the format of
729+ // `projects/<alloydb-tenant-project-number>/regions/<region-name>/serviceAttachments/<service-attachment-name>`
730+ string service_attachment_link = 1
731+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
732+
733+ // Optional. List of consumer projects that are allowed to create
734+ // PSC endpoints to service-attachments to this instance.
735+ repeated string allowed_consumer_projects = 2
736+ [(google.api.field_behavior ) = OPTIONAL ];
737+
738+ // Optional. List of consumer networks that are allowed to create
739+ // PSC endpoints to service-attachments to this instance.
740+ repeated string allowed_consumer_networks = 3
741+ [(google.api.field_behavior ) = OPTIONAL ];
742+
743+ // Optional. Configurations for setting up PSC interfaces attached to the
744+ // instance which are used for outbound connectivity. Only primary instances
745+ // can have PSC interface attached. All the VMs created for the primary
746+ // instance will share the same configurations. Currently we only support 0
747+ // or 1 PSC interface.
748+ repeated PscInterfaceConfig psc_interface_configs = 4
749+ [(google.api.field_behavior ) = OPTIONAL ];
750+
751+ // Optional. List of service attachments that this instance has created
752+ // endpoints to connect with. Currently, only a single outgoing service
753+ // attachment is supported per instance.
754+ repeated string outgoing_service_attachment_links = 5
755+ [(google.api.field_behavior ) = OPTIONAL ];
756+
757+ // Optional. Whether PSC connectivity is enabled for this instance.
758+ // This is populated by referencing the value from the parent cluster.
759+ bool psc_enabled = 6 [(google.api.field_behavior ) = OPTIONAL ];
760+ }
761+
762+ // Metadata related to instance level network configuration.
763+ message InstanceNetworkConfig {
764+ // AuthorizedNetwork contains metadata for an authorized network.
765+ message AuthorizedNetwork {
766+ // CIDR range for one authorzied network of the instance.
767+ string cidr_range = 1 [(google.api.field_info ).format = IPV4 ];
768+ }
769+
770+ // Optional. A list of external network authorized to access this instance.
771+ repeated AuthorizedNetwork authorized_external_networks = 1
772+ [(google.api.field_behavior ) = OPTIONAL ];
773+
774+ // Optional. Enabling public ip for the instance.
775+ bool enable_public_ip = 2 [(google.api.field_behavior ) = OPTIONAL ];
776+ }
777+
701778 // Instance State
702779 enum State {
703780 // The state of the instance is unknown.
@@ -857,13 +934,19 @@ message Instance {
857934 // Configuration for query insights.
858935 QueryInsightsInstanceConfig query_insights_config = 21 ;
859936
860- // Read pool specific config.
937+ // Read pool instance configuration.
938+ // This is required if the value of instanceType is READ_POOL.
861939 ReadPoolConfig read_pool_config = 14 ;
862940
863941 // Output only. The IP address for the Instance.
864942 // This is the connection endpoint for an end-user application.
865943 string ip_address = 15 [(google.api.field_behavior ) = OUTPUT_ONLY ];
866944
945+ // Output only. The public IP addresses for the Instance. This is available
946+ // ONLY when enable_public_ip is set. This is the connection endpoint for an
947+ // end-user application.
948+ string public_ip_address = 27 [(google.api.field_behavior ) = OUTPUT_ONLY ];
949+
867950 // Output only. Reconciling (https://google.aip.dev/128#reconciliation).
868951 // Set to true if the current state of Instance does not match the user's
869952 // intended state, and the service is actively updating the resource to
@@ -888,6 +971,18 @@ message Instance {
888971 // Optional. Client connection specific configurations
889972 ClientConnectionConfig client_connection_config = 23
890973 [(google.api.field_behavior ) = OPTIONAL ];
974+
975+ // Output only. Reserved for future use.
976+ bool satisfies_pzs = 24 [(google.api.field_behavior ) = OUTPUT_ONLY ];
977+
978+ // Optional. The configuration for Private Service Connect (PSC) for the
979+ // instance.
980+ PscInstanceConfig psc_instance_config = 28
981+ [(google.api.field_behavior ) = OPTIONAL ];
982+
983+ // Optional. Instance level network configuration.
984+ InstanceNetworkConfig network_config = 29
985+ [(google.api.field_behavior ) = OPTIONAL ];
891986}
892987
893988// ConnectionInfo singleton resource.
@@ -908,13 +1003,24 @@ message ConnectionInfo {
9081003 // is set). This is the connection endpoint for an end-user application.
9091004 string ip_address = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
9101005
1006+ // Output only. The public IP addresses for the Instance. This is available
1007+ // ONLY when enable_public_ip is set. This is the connection endpoint for an
1008+ // end-user application.
1009+ string public_ip_address = 5 [
1010+ (google.api.field_info ).format = IPV4 ,
1011+ (google.api.field_behavior ) = OUTPUT_ONLY
1012+ ];
1013+
9111014 // Output only. The pem-encoded chain that may be used to verify the X.509
9121015 // certificate. Expected to be in issuer-to-root order according to RFC 5246.
9131016 repeated string pem_certificate_chain = 3
9141017 [deprecated = true , (google.api.field_behavior ) = OUTPUT_ONLY ];
9151018
9161019 // Output only. The unique ID of the Instance.
9171020 string instance_uid = 4 [(google.api.field_behavior ) = OUTPUT_ONLY ];
1021+
1022+ // Output only. The DNS name to use with PSC for the Instance.
1023+ string psc_dns_name = 6 [(google.api.field_behavior ) = OUTPUT_ONLY ];
9181024}
9191025
9201026// Message describing Backup object
@@ -1077,6 +1183,9 @@ message Backup {
10771183 QuantityBasedExpiry expiry_quantity = 20
10781184 [(google.api.field_behavior ) = OUTPUT_ONLY ];
10791185
1186+ // Output only. Reserved for future use.
1187+ bool satisfies_pzs = 21 [(google.api.field_behavior ) = OUTPUT_ONLY ];
1188+
10801189 // Output only. The database engine major version of the cluster this backup
10811190 // was created from. Any restored cluster created from this backup will have
10821191 // the same database version.
@@ -1200,3 +1309,28 @@ message User {
12001309 // Optional. Type of this user.
12011310 UserType user_type = 5 [(google.api.field_behavior ) = OPTIONAL ];
12021311}
1312+
1313+ // Message describing Database object.
1314+ message Database {
1315+ option (google.api.resource ) = {
1316+ type : "alloydb.googleapis.com/Database"
1317+ pattern : "projects/{project}/locations/{location}/clusters/{cluster}/databases/{database}"
1318+ plural : "databases"
1319+ singular : "database"
1320+ style : DECLARATIVE_FRIENDLY
1321+ };
1322+
1323+ // Identifier. Name of the resource in the form of
1324+ // `projects/{project}/locations/{location}/clusters/{cluster}/databases/{database}`.
1325+ string name = 1 [(google.api.field_behavior ) = IDENTIFIER ];
1326+
1327+ // Optional. Charset for the database.
1328+ // This field can contain any PostgreSQL supported charset name.
1329+ // Example values include "UTF8", "SQL_ASCII", etc.
1330+ string charset = 2 [(google.api.field_behavior ) = OPTIONAL ];
1331+
1332+ // Optional. Collation for the database.
1333+ // Name of the custom or native collation for postgres.
1334+ // Example values include "C", "POSIX", etc
1335+ string collation = 3 [(google.api.field_behavior ) = OPTIONAL ];
1336+ }
0 commit comments