Skip to content

Commit 55319b0

Browse files
Google APIscopybara-github
authored andcommitted
feat: Expand Oracle Database v1 API to add support for Exadata Exascale (ExadbVmCluster, ExascaleDbStorageVault), Base Database (DbSystem, Database, PluggableDatabase), and Networking (OdbNetwork, OdbSubnet). Adds enhancements for Autonomous Database, including Update, Switchover, and Failover operations, CMEK support, and improved disaster recovery fields. Also includes new helper resources for versions and configurations
docs: Updated comments for clarity and fixed typos PiperOrigin-RevId: 821933017
1 parent 1b5c448 commit 55319b0

20 files changed

+3413
-61
lines changed

google/cloud/oracledatabase/v1/BUILD.bazel

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,25 @@ proto_library(
2929
"autonomous_db_backup.proto",
3030
"autonomous_db_version.proto",
3131
"common.proto",
32+
"database.proto",
33+
"database_character_set.proto",
3234
"db_node.proto",
3335
"db_server.proto",
36+
"db_system.proto",
37+
"db_system_initial_storage_size.proto",
3438
"db_system_shape.proto",
39+
"db_version.proto",
3540
"entitlement.proto",
3641
"exadata_infra.proto",
42+
"exadb_vm_cluster.proto",
43+
"exascale_db_storage_vault.proto",
3744
"gi_version.proto",
3845
"location_metadata.proto",
46+
"minor_version.proto",
47+
"odb_network.proto",
48+
"odb_subnet.proto",
3949
"oracledatabase.proto",
50+
"pluggable_database.proto",
4051
"vm_cluster.proto",
4152
],
4253
deps = [
@@ -52,6 +63,7 @@ proto_library(
5263
"//google/type:timeofday_proto",
5364
"@com_google_protobuf//:duration_proto",
5465
"@com_google_protobuf//:empty_proto",
66+
"@com_google_protobuf//:field_mask_proto",
5567
"@com_google_protobuf//:timestamp_proto",
5668
],
5769
)
@@ -138,11 +150,12 @@ load(
138150
"@com_google_googleapis_imports//:imports.bzl",
139151
"go_gapic_assembly_pkg",
140152
"go_gapic_library",
141-
"go_grpc_library",
153+
"go_proto_library",
142154
)
143155

144-
go_grpc_library(
156+
go_proto_library(
145157
name = "oracledatabase_go_proto",
158+
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
146159
importpath = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb",
147160
protos = [":oracledatabase_proto"],
148161
deps = [
@@ -250,7 +263,6 @@ php_gapic_library(
250263
migration_mode = "NEW_SURFACE_ONLY",
251264
rest_numeric_enums = True,
252265
service_yaml = "oracledatabase_v1.yaml",
253-
gapic_yaml = "oracledatabase_gapic.yaml",
254266
transport = "grpc+rest",
255267
deps = [
256268
":oracledatabase_php_proto",
@@ -358,6 +370,7 @@ load(
358370

359371
csharp_proto_library(
360372
name = "oracledatabase_csharp_proto",
373+
extra_opts = [],
361374
deps = [":oracledatabase_proto"],
362375
)
363376

google/cloud/oracledatabase/v1/autonomous_database.proto

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,74 @@ message AutonomousDatabase {
202202
(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
203203
];
204204

205-
// Optional. The subnet CIDR range for the Autonmous Database.
205+
// Optional. The subnet CIDR range for the Autonomous Database.
206206
string cidr = 10 [(google.api.field_behavior) = OPTIONAL];
207207

208+
// Optional. The name of the OdbNetwork associated with the Autonomous
209+
// Database. Format:
210+
// projects/{project}/locations/{location}/odbNetworks/{odb_network} It is
211+
// optional but if specified, this should match the parent ODBNetwork of the
212+
// OdbSubnet.
213+
string odb_network = 16 [
214+
(google.api.field_behavior) = OPTIONAL,
215+
(google.api.resource_reference) = {
216+
type: "oracledatabase.googleapis.com/OdbNetwork"
217+
}
218+
];
219+
220+
// Optional. The name of the OdbSubnet associated with the Autonomous
221+
// Database. Format:
222+
// projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet}
223+
string odb_subnet = 17 [
224+
(google.api.field_behavior) = OPTIONAL,
225+
(google.api.resource_reference) = {
226+
type: "oracledatabase.googleapis.com/OdbSubnet"
227+
}
228+
];
229+
230+
// Optional. The source Autonomous Database configuration for the standby
231+
// Autonomous Database. The source Autonomous Database is configured while
232+
// creating the Peer Autonomous Database and can't be updated after creation.
233+
SourceConfig source_config = 11 [(google.api.field_behavior) = OPTIONAL];
234+
235+
// Output only. The peer Autonomous Database names of the given Autonomous
236+
// Database.
237+
repeated string peer_autonomous_databases = 12 [
238+
(google.api.field_behavior) = OUTPUT_ONLY,
239+
(google.api.resource_reference) = {
240+
type: "oracledatabase.googleapis.com/AutonomousDatabase"
241+
}
242+
];
243+
208244
// Output only. The date and time that the Autonomous Database was created.
209245
google.protobuf.Timestamp create_time = 13
210246
[(google.api.field_behavior) = OUTPUT_ONLY];
247+
248+
// Output only. List of supported GCP region to clone the Autonomous Database
249+
// for disaster recovery. Format: `project/{project}/locations/{location}`.
250+
repeated string disaster_recovery_supported_locations = 15 [
251+
(google.api.field_behavior) = OUTPUT_ONLY,
252+
(google.api.resource_reference) = {
253+
type: "locations.googleapis.com/Location"
254+
}
255+
];
256+
}
257+
258+
// The source configuration for the standby Autonomous Database.
259+
message SourceConfig {
260+
// Optional. The name of the primary Autonomous Database that is used to
261+
// create a Peer Autonomous Database from a source.
262+
string autonomous_database = 1 [
263+
(google.api.field_behavior) = OPTIONAL,
264+
(google.api.resource_reference) = {
265+
type: "oracledatabase.googleapis.com/AutonomousDatabase"
266+
}
267+
];
268+
269+
// Optional. This field specifies if the replication of automatic backups is
270+
// enabled when creating a Data Guard.
271+
bool automatic_backups_replication_enabled = 2
272+
[(google.api.field_behavior) = OPTIONAL];
211273
}
212274

213275
// The properties of an Autonomous Database.
@@ -605,13 +667,80 @@ message AutonomousDatabaseProperties {
605667
google.protobuf.Timestamp next_long_term_backup_time = 60
606668
[(google.api.field_behavior) = OUTPUT_ONLY];
607669

670+
// Output only. The date and time the Autonomous Data Guard role was changed
671+
// for the standby Autonomous Database.
672+
google.protobuf.Timestamp data_guard_role_changed_time = 61
673+
[(google.api.field_behavior) = OUTPUT_ONLY];
674+
675+
// Output only. The date and time the Disaster Recovery role was changed for
676+
// the standby Autonomous Database.
677+
google.protobuf.Timestamp disaster_recovery_role_changed_time = 62
678+
[(google.api.field_behavior) = OUTPUT_ONLY];
679+
608680
// Output only. The date and time when maintenance will begin.
609681
google.protobuf.Timestamp maintenance_begin_time = 65
610682
[(google.api.field_behavior) = OUTPUT_ONLY];
611683

612684
// Output only. The date and time when maintenance will end.
613685
google.protobuf.Timestamp maintenance_end_time = 66
614686
[(google.api.field_behavior) = OUTPUT_ONLY];
687+
688+
// Optional. The list of allowlisted IP addresses for the Autonomous Database.
689+
repeated string allowlisted_ips = 67 [(google.api.field_behavior) = OPTIONAL];
690+
691+
// Optional. The encryption key used to encrypt the Autonomous Database.
692+
// Updating this field will add a new entry in the
693+
// `encryption_key_history_entries` field with the former version.
694+
EncryptionKey encryption_key = 68 [(google.api.field_behavior) = OPTIONAL];
695+
696+
// Output only. The history of the encryption keys used to encrypt the
697+
// Autonomous Database.
698+
repeated EncryptionKeyHistoryEntry encryption_key_history_entries = 69
699+
[(google.api.field_behavior) = OUTPUT_ONLY];
700+
701+
// Output only. An Oracle-managed Google Cloud service account on which
702+
// customers can grant roles to access resources in the customer project.
703+
string service_agent_email = 70 [(google.api.field_behavior) = OUTPUT_ONLY];
704+
}
705+
706+
// The history of the encryption keys used to encrypt the Autonomous Database.
707+
message EncryptionKeyHistoryEntry {
708+
// Output only. The encryption key used to encrypt the Autonomous Database.
709+
EncryptionKey encryption_key = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
710+
711+
// Output only. The date and time when the encryption key was activated on the
712+
// Autonomous Database..
713+
google.protobuf.Timestamp activation_time = 2
714+
[(google.api.field_behavior) = OUTPUT_ONLY];
715+
}
716+
717+
// The encryption key used to encrypt the Autonomous Database.
718+
message EncryptionKey {
719+
// The provider of the encryption key.
720+
enum Provider {
721+
// Default unspecified value.
722+
PROVIDER_UNSPECIFIED = 0;
723+
724+
// Google Managed KMS key, if selected, please provide the KMS key name.
725+
GOOGLE_MANAGED = 1;
726+
727+
// Oracle Managed.
728+
ORACLE_MANAGED = 2;
729+
}
730+
731+
// Optional. The provider of the encryption key.
732+
Provider provider = 1 [(google.api.field_behavior) = OPTIONAL];
733+
734+
// Optional. The KMS key used to encrypt the Autonomous Database.
735+
// This field is required if the provider is GOOGLE_MANAGED.
736+
// The name of the KMS key resource in the following format:
737+
// `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
738+
string kms_key = 2 [
739+
(google.api.field_behavior) = OPTIONAL,
740+
(google.api.resource_reference) = {
741+
type: "cloudkms.googleapis.com/CryptoKey"
742+
}
743+
];
615744
}
616745

617746
// Oracle APEX Application Development.

google/cloud/oracledatabase/v1/common.proto

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,71 @@ option java_package = "com.google.cloud.oracledatabase.v1";
2626
option php_namespace = "Google\\Cloud\\OracleDatabase\\V1";
2727
option ruby_package = "Google::Cloud::OracleDatabase::V1";
2828

29+
// The compute model of the Exadata Infrastructure, VM Cluster and Autonomous
30+
// Database.
31+
enum ComputeModel {
32+
// Unspecified compute model.
33+
COMPUTE_MODEL_UNSPECIFIED = 0;
34+
35+
// Abstract measure of compute resources. ECPUs are based on the number of
36+
// cores elastically allocated from a pool of compute and storage servers.
37+
COMPUTE_MODEL_ECPU = 1;
38+
39+
// Physical measure of compute resources. OCPUs are based on the physical
40+
// core of a processor.
41+
COMPUTE_MODEL_OCPU = 2;
42+
}
43+
2944
// The CustomerContact reference as defined by Oracle.
3045
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/CustomerContact
3146
message CustomerContact {
3247
// Required. The email address used by Oracle to send notifications regarding
3348
// databases and infrastructure.
3449
string email = 1 [(google.api.field_behavior) = REQUIRED];
3550
}
51+
52+
// The identity connector details which will allow OCI to securely access
53+
// the resources in the customer project.
54+
message IdentityConnector {
55+
// The various connection states of the WorkloadIdentityPoolConnection.
56+
enum ConnectionState {
57+
// Default unspecified value.
58+
CONNECTION_STATE_UNSPECIFIED = 0;
59+
60+
// The identity pool connection is connected.
61+
CONNECTED = 1;
62+
63+
// The identity pool connection is partially connected.
64+
PARTIALLY_CONNECTED = 2;
65+
66+
// The identity pool connection is disconnected.
67+
DISCONNECTED = 3;
68+
69+
// The identity pool connection is in an unknown state.
70+
UNKNOWN = 4;
71+
}
72+
73+
// Output only. A google managed service account on which customers can grant
74+
// roles to access resources in the customer project. Example:
75+
// `p176944527254-55-75119d87fd8f@gcp-sa-oci.iam.gserviceaccount.com`
76+
string service_agent_email = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
77+
78+
// Output only. The connection state of the identity connector.
79+
ConnectionState connection_state = 2
80+
[(google.api.field_behavior) = OUTPUT_ONLY];
81+
}
82+
83+
// Data collection options for diagnostics.
84+
// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/DataCollectionOptions
85+
message DataCollectionOptionsCommon {
86+
// Optional. Indicates whether to enable data collection for diagnostics.
87+
bool is_diagnostics_events_enabled = 1
88+
[(google.api.field_behavior) = OPTIONAL];
89+
90+
// Optional. Indicates whether to enable health monitoring.
91+
bool is_health_monitoring_enabled = 2
92+
[(google.api.field_behavior) = OPTIONAL];
93+
94+
// Optional. Indicates whether to enable incident logs and trace collection.
95+
bool is_incident_logs_enabled = 3 [(google.api.field_behavior) = OPTIONAL];
96+
}

0 commit comments

Comments
 (0)